(57)【要約】  仮想環境における仮想オブジェクトの姿勢決定方法、装置及び媒体であって、コンピュータグラフィックス処理の分野に関する。この方法は、仮想オブジェクトの少なくとも一つのサンプリング点を決定することと、少なくとも一つのサンプリング点及び仮想オブジェクトの位置する地面に基づき、地面に対する仮想オブジェクトの法線方向を決定することと、法線方向に基づき仮想環境における仮想オブジェクトの地面張り付き姿勢を決定することと、を含む。サンプリング点に基づき仮想オブジェクトが位置する地面の法線方向を決定し、この法線方向に基づき仮想環境における仮想オブジェクトの地面張り付き姿勢を取得することにより、地面張り付き姿勢は地面の法線方向に基づき決定されるものであるので、この法線方向により、この仮想オブジェクトが位置する地面の近似平面をシミュレートでき、仮想オブジェクトはこの近似平面に平行な姿勢で地面に張り付くことができる。これにより、仮想キャラクターが地面張り付き姿勢にあるときに身体の一部が地面または障害物に沈む状況が軽減され、実際の物理法則により適合する。
2021512413.tif 000002
【特許請求の範囲】
【請求項１】
電子機器が実行する、仮想環境における仮想オブジェクトの姿勢決定方法であって、
前記仮想オブジェクトの少なくとも一つのサンプリング点を決定するステップであって、前記サンプリング点が地面に対する衝突検出に使用される点であるステップと、
前記少なくとも一つのサンプリング点及び前記仮想オブジェクトの位置する地面に基づき、前記地面に対する前記仮想オブジェクトの法線方向を決定するステップと、
前記法線方向に基づき、前記仮想環境における前記仮想オブジェクトの地面張り付き姿勢を決定するステップと、
を含むことを特徴とする方法。
【請求項２】
前記少なくとも一つのサンプリング点及び前記仮想オブジェクトの位置する地面に基づき、前記地面に対する前記仮想オブジェクトの法線方向を決定するステップは、
前記サンプリング点から鉛直下方向で衝突検出を行い、前記仮想オブジェクトが前記地面に衝突する際の衝突点を地面張り付き点として決定するステップと、
前記地面張り付き点に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記サンプリング点は、前記仮想オブジェクトの中心点を含み、
前記の、前記地面張り付き点に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するステップは、
前記地面張り付き点を始点として前記地面に垂直な第１の垂直線に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するステップと、
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記の、前記仮想オブジェクトの少なくとも一つのサンプリング点を決定するステップは、
前記仮想オブジェクトの中心点を、前記仮想オブジェクトの前記サンプリング点として決定するステップ、
を含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記法線に基づき、前記仮想環境における前記仮想オブジェクトの地面張り付き姿勢を決定することは、
地面座標系のｘ軸に対する前記法線方向の第１のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのピッチ角を決定するステップと、
前記地面座標系のｚ軸に対する前記法線方向の第２のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのロール角を決定するステップと、を含み、
前記地面座標系は、前記仮想環境が配置されている世界座標系である、
ことを特徴とする請求項３に記載の方法。
【請求項６】
前記サンプリング点は、前記仮想オブジェクトの前記地面張り付き姿勢での上半分の点を表すための前部サンプリング点と、前記仮想オブジェクトの前記地面張り付き姿勢での下半分の点を表すための後部サンプリング点とを含み、
前記の、前記地面張り付き点に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するステップは、
前記前部サンプリング点から衝突検出した後に得られた点である第１の地面貼合点と、前記後部サンプリング点から衝突検出した後に得られた点である第２の地面貼合点との間の接続線を決定するステップと、
前記接続線に垂直で、かつロール角が０である第２の垂直線に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するステップと、
を含むことを特徴とする請求項２に記載の方法。
【請求項７】
前記仮想オブジェクトの少なくとも一つのサンプリング点を決定するステップは、
前記仮想オブジェクトの中心点の前方の第１の距離にある点を、前記前部サンプリング点として決定するステップと、
前記仮想オブジェクトの中心点の後方の第２の距離にある点を、前記後部サンプリング点として決定するステップと、
前記前部サンプリング点及び前記後部サンプリング点を前記仮想オブジェクトの前記サンプリング点として決定ステップと、を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記法線方向に基づき、前記仮想環境における前記仮想オブジェクトの地面張り付き姿勢を決定するステップは、
地面座標系のｘ軸に対する前記法線方向の第１のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのピッチ角を決定するステップを含み、
前記地面座標系は、前記仮想環境が配置されている世界座標系である、
ことを特徴とする請求項６に記載の方法。
【請求項９】
前記サンプリング点は、前記仮想オブジェクトの前記地面張り付き姿勢での上半分の点を表すための前部サンプリング点と、前記仮想オブジェクトの前記地面張り付き姿勢での下半分の点を表すための後部サンプリング点と、及び前記仮想オブジェクトの前記地面張り付き姿勢での左側または右側の点を表すためのサイドサンプリング点とを含み、
前記地面張り付き点に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するステップは、
前記前部サンプリング点から衝突検出した後に得られた点である第１の地面張り付き点と、前記後部サンプリング点から衝突検出した後に得られた点である第２の地面張り付き点と、前記サイドサンプリング点から衝突検出した後に得られた点である第３の地面張り付き点とが存在する平面を決定することと、
前記平面に垂直で上向きの第３の垂直線に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するステップと、
を含むことを特徴とする請求項２に記載の方法。
【請求項１０】
前記仮想オブジェクトの少なくとも一つのサンプリング点を決定するステップは、
前記仮想オブジェクトの中心点の前方の第１の距離にある点を、前記前部サンプリング点として決定するステップと、
前記仮想オブジェクトの中心点の後方の第２の距離にある点を、前記後部サンプリング点として決定するステップと、
前記仮想オブジェクトの中心点の左側の第３の距離にある点または前記仮想オブジェクトの中心点の右側の第４の距離にある点を、前記サイドサンプリング点として決定するステップと、
前記前部サンプリング点と、前記後部サンプリング点と、前記サイドサンプリング点とを、前記仮想オブジェクトの前記サンプリング点として決定するステップと、
を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記法線方向に基づき、前記仮想環境における前記仮想オブジェクトの地面張り付き姿勢を決定するステップは、
地面座標系のｘ軸に対する前記法線方向の第１のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのピッチ角を決定するステップと、
前記地面座標系のｚ軸に対する前記法線方向の第２のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのロール角を決定するステップと、を含み、
前記地面座標系は、前記仮想環境が配置されている世界座標系である、
ことを特徴とする請求項９に記載の方法。
【請求項１２】
前記地面は、勾配のあるエリアと、曲面エリアと、陥凹エリアと、隆起エリアとのうちの少なくとも一つを含む、
ことを特徴とする請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
仮想環境における仮想キャラクターの姿勢決定方法であって、
第１のユーザーインターフェイスを表示するステップであって、前記第１のユーザーインターフェイスが立位姿勢で前記仮想環境の地面にある仮想キャラクターを含むステップと、
姿勢切替コマンドを受信するステップであって、前記姿勢切替コマンドが、前記立位姿勢から地面張り付き姿勢に切り替えるように前記仮想キャラクターに指示するために使用されるステップと、
前記地面に対する前記仮想キャラクターの法線方向に基づき、前記仮想キャラクターの地面張り付き姿勢を決定するステップと、
第２のユーザーインターフェイスを表示するステップであって、前記第２のユーザーインターフェイスが、前記地面張り付き姿勢で前記仮想環境の前記地面にある仮想キャラクターを含むステップと、
を含むことを特徴とする方法。
【請求項１４】
前記方法は、
前記姿勢切替コマンドを受信した後、前記仮想キャラクターの中心点に基づき、前記仮想キャラクターの少なくとも一つのサンプリング点を決定するステップであって、前記サンプリング点が前記地面に対する衝突検出に使用される点であるステップと、
前記少なくとも一つのサンプリング点及び前記地面に基づき、前記地面に対する前記仮想キャラクターの法線方向を決定するステップと、
をさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
仮想環境における仮想キャラクターの姿勢決定方法であって、
第３のユーザーインターフェイスを表示するステップであって、前記第３のユーザーインターフェイスが、第１の地面張り付き姿勢で前記仮想環境の第１の地面位置にある仮想キャラクターを含むステップと、
移動コマンドを受信するステップであって、前記移動コマンドが、前記第１の地面位置から移動するように前記仮想キャラクターに指示するために使用されるステップと、
第２の地面位置に対する前記仮想キャラクターの法線方向に基づき、前記仮想キャラクターの第２の地面張り付き姿勢を決定するステップと、
第４のユーザーインターフェイスを表示するステップであって、前記第４のユーザーインターフェイスが、前記第２の地面張り付き姿勢で前記仮想環境の第２の地面位置にある前記仮想キャラクターを含むステップと、
を含むことを特徴とする方法。
【請求項１６】
前記方法は、
前記移動コマンドを受信した後、前記仮想キャラクターの中心点に基づき、前記仮想キャラクターの少なくとも一つのサンプリング点を決定するステップであって、前記サンプリング点が前記地面に対する衝突検出に使用される点であるステップと、
前記少なくとも一つのサンプリング点及び前記第２の地面位置に基づき、前記第２の地面位置に対する前記仮想キャラクターの法線方向を決定するステップと、
をさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
仮想環境における仮想キャラクターの姿勢決定方法であって、
第１のユーザーインターフェイスを表示するステップであって、前記第１のユーザーインターフェイスが、立位姿勢で前記仮想環境の地面にある仮想キャラクターを含むステップことと、
姿勢切替コマンドを受信するステップであって、前記姿勢切替コマンドが、前記立位姿勢から地面張り付き姿勢に切り替えるように前記仮想キャラクターに指示するために使用されるステップと、
第２のユーザーインターフェイスを表示するステップであって、前記第２のユーザーインターフェイスが、前記地面張り付き姿勢で前記仮想環境の地面にある仮想キャラクターを含み、前記地面は、角度をなす第１の地面エリア及び第２の地面エリアを含み、前記仮想キャラクターの頭部が前記第１の地面エリアで宙に浮き、前記仮想キャラクターの足部が前記第２の地面エリアで宙に浮き、前記仮想キャラクターの腰部が前記第１の地面エリアと前記第２の地面エリアの境目で地面に埋め込まれるステップと、
を含むことを特徴とする方法。
【請求項１８】
前記の第２のユーザーインターフェイスを表示するステップの前に、
前記仮想キャラクターの中心点に基づき、前記仮想キャラクターの上半身サンプリング点及び下半身サンプリング点を決定するステップと、
前記上半身サンプリング点から衝突検出した後に得られ前記第１の地面エリアにある点である第１の地面張り付き点と、前記下半身サンプリング点から衝突検出した後に得られ前記第２の地面エリアにある点である第２の地面張り付き点との間の接続線を決定するステップと、
前記接続線に垂直で、かつロール角が０である垂直線に基づき、前記地面に対する前記仮想キャラクターの法線方向を決定するステップと、
をさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
仮想環境における仮想オブジェクトの姿勢決定装置であって、
前記仮想オブジェクトの少なくとも一つのサンプリング点を決定するためのサンプリング点決定モジュールであって、前記サンプリング点が地面に対する衝突検出に使用される点であるサンプリング点決定モジュールと、
前記少なくとも一つのサンプリング点及び前記仮想オブジェクトの位置する地面に基づき、前記地面に対する前記仮想オブジェクトの法線方向を決定するための法線決定モジュールと、
前記法線方向に基づき、前記仮想環境における前記仮想オブジェクトの地面張り付き姿勢を決定するための姿勢決定モジュールと、
を含むことを特徴とする装置。
【請求項２０】
前記法線決定モジュールは、
前記サンプリング点から鉛直下方向で衝突検出を行い、前記仮想オブジェクトが前記地面に衝突する際の衝突点を地面張り付き点として決定するための検出ユニットと、
前記地面張り付き点に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するための法線決定ユニットと、
を含むことを特徴とする請求項１９に記載の装置。
【請求項２１】
前記サンプリング点は、前記仮想オブジェクトの中心点を含み、
前記法線決定ユニットは、前記地面張り付き点を始点として前記地面に垂直な第１の垂直線に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するためにも使用される、
ことを特徴とする請求項２０に記載の装置。
【請求項２２】
前記サンプリング点決定モジュールは、前記仮想オブジェクトの中心点を、前記仮想オブジェクトの前記サンプリング点として決定するためにも使用される、
ことを特徴とする請求項２１に記載の装置。
【請求項２３】
前記サンプリング点決定モジュールは、
地面座標系のｘ軸に対する前記法線方向の第１のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのピッチ角を決定するためのヨー角決定ユニットを含み、
前記ヨー角決定ユニットは、前記地面座標系のｚ軸に対する前記法線方向の第２のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのロール角を決定するためにも使用され、
前記地面座標系は、前記仮想環境が配置されている世界座標系である、
ことを特徴とする請求項２２に記載の装置。
【請求項２４】
前記サンプリング点は、前記仮想オブジェクトの前記地面張り付き姿勢での上半分の点を表すための前部サンプリング点と、前記仮想オブジェクトの前記地面張り付き姿勢での下半分の点を表すための後部サンプリング点とを含み、
前記法線決定ユニットは、前記前部サンプリング点から衝突検出した後に得られた点である第１の地面張り付き点と、前記後部サンプリング点から衝突検出した後に得られた点である第２の地面張り付き点との間の接続線を決定するためにも使用され、
前記法線決定ユニットは、前記接続線に垂直で、かつロール角が０である第２の垂直線に基づき、前記地面に対する前記仮想オブジェクトの法線方向を決定するためにも使用される、
ことを特徴とする請求項２０に記載の装置。
【請求項２５】
前記サンプリング点決定モジュールは、前記仮想オブジェクトの中心点の前方の第１の距離にある点を、前記前部サンプリング点として決定するためにも使用され、
前記サンプリング点決定モジュールは、前記仮想オブジェクトの中心点の後方の第２の距離にある点を、前記後部サンプリング点として決定するためにも使用され、
前記サンプリング点決定モジュールは、前記前部サンプリング点及び前記後部サンプリング点を、前記仮想オブジェクトの前記サンプリング点として決定するためにも使用される、
ことを特徴とする請求項２４に記載の装置。
【請求項２６】
前記姿勢決定モジュールは、地面座標系のｘ軸に対する前記法線方向の第１のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのピッチ角を決定するためにも使用され、
前記地面座標系は、前記仮想環境が配置されている世界座標系である、
ことを特徴とする請求項２４に記載の装置。
【請求項２７】
前記サンプリング点は、前記仮想オブジェクトの前記地面張り付き姿勢での上半分の点を表すための前部サンプリング点と、前記仮想オブジェクトの前記地面張り付き姿勢での下半分の点を表すための後部サンプリング点と、及び前記仮想オブジェクトの前記地面張り付き姿勢での左側または右側の点を表すためのサイドサンプリング点と、を含み、
前記法線決定ユニットは、前記前部サンプリング点から衝突検出した後に得られた点である第１の地面張り付き点と、前記後部サンプリング点から衝突検出した後に得られた点である第２の地面張り付き点と、前記サイドサンプリング点から衝突検出した後に得られた点である第３の地面張り付き点とが存在する平面を決定するためにも使用され、
前記法線決定ユニットは、前記平面に垂直で上向きの第３の垂直線に基づき、前記地面に対する前記仮想オブジェクトの前記法線方向を決定するためにも使用される、
ことを特徴とする請求項２０に記載の装置。
【請求項２８】
前記サンプリング点決定モジュールは、前記仮想オブジェクトの中心点の前方の第１の距離にある点を、前記前部サンプリング点として決定するためにも使用され、
前記サンプリング点決定モジュールは、前記仮想オブジェクトの中心点の後方の第２の距離にある点を、前記後部サンプリング点として決定するためにも使用され、
前記サンプリング点決定モジュールは、前記仮想オブジェクトの中心点の左側の第３の距離にある点または前記仮想オブジェクトの中心点の右側の第４の距離にある点を、前記サイドサンプリング点として決定するためにも使用され、
前記サンプリング点決定モジュールは、前記前部サンプリング点と、前記後部サンプリング点と、前記サイドサンプリング点とを、前記仮想オブジェクトの前記サンプリング点として決定するためにも使用される、
ことを特徴とする請求項２７に記載の装置。
【請求項２９】
前記姿勢決定モジュールは、地面座標系のｘ軸に対する前記法線方向の第１のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのピッチ角を決定するためにも使用され、
前記姿勢決定モジュールは、前記地面座標系のｚ軸に対する前記法線方向の第２のヨー角に基づき、前記仮想環境における前記仮想オブジェクトのロール角を決定するためにも使用され、
前記地面座標系は、前記仮想環境が配置されている世界座標系である、
ことを特徴とする請求項２７に記載の装置。
【請求項３０】
前記地面は、勾配のあるエリアと、曲面エリアと、陥凹エリアと、隆起エリアとのうちの少なくとも一つを含む、
ことを特徴とする請求項１９から２９のいずれか１項に記載の装置。
【請求項３１】
仮想環境における仮想キャラクターの姿勢決定装置であって、
第１のユーザーインターフェイスを表示するための第１の表示モジュールであって、前記第１のユーザーインターフェイスが、立位姿勢で前記仮想環境の地面にある仮想キャラクターを含む第１の表示モジュールと、
姿勢切替コマンドを受信するための第１の受信モジュールであって、前記姿勢切替コマンドが、前記立位姿勢から地面張り付き姿勢に切り替えるように前記仮想キャラクターに指示するために使用される第１の受信モジュールと、
前記地面に対する前記仮想キャラクターの法線方向に基づき、前記仮想キャラクターの地面張り付き姿勢を決定するための第１の決定モジュールと、を含み、
前記第１の表示モジュールは、第２のユーザーインターフェイスを表示するためにも使用され、前記第２のユーザーインターフェイスは、前記地面張り付き姿勢で前記仮想環境の地面にある仮想キャラクターを含む、
ことを特徴とする装置。
【請求項３２】
前記第１の決定モジュールは、前記姿勢切替コマンドを受信した後、前記仮想キャラクターの中心点に基づき、前記仮想キャラクターの少なくとも一つのサンプリング点を決定するためにも使用され、前記サンプリング点は、前記地面に対する衝突検出に使用される点であり、
前記第１の決定モジュールは、前記少なくとも一つのサンプリング点及び前記地面に基づき、前記地面に対する前記仮想キャラクターの法線方向を決定するためにも使用される、
ことを特徴とする請求項３１に記載の装置。
【請求項３３】
仮想環境における仮想キャラクターの姿勢決定装置であって、
第３のユーザーインターフェイスを表示するための第２の表示モジュールであって、前記第３のユーザーインターフェイスが、第１の地面張り付き姿勢で前記仮想環境の第１の地面位置にある仮想キャラクターを含む第２の表示モジュールと、
移動コマンドを受信するための第２の受信モジュールであって、前記移動コマンドが、前記第１の地面位置から移動するように前記仮想キャラクターに指示するために使用される第２の受信モジュールと、
第２の地面位置に対する前記仮想キャラクターの法線方向に基づき、前記仮想キャラクターの第２の地面張り付き姿勢を決定するための第２の決定モジュールと、を含み、
前記第２の表示モジュールは、第４のユーザーインターフェイスを表示するためにも使用され、前記第４のユーザーインターフェイスは、前記第２の地面張り付き姿勢で前記仮想環境の第２の地面位置にある前記仮想キャラクターを含む、
ことを特徴とする装置。
【請求項３４】
前記第２の決定モジュールは、前記移動コマンドを受信した後、前記仮想キャラクターの中心点に基づき、前記仮想キャラクターの少なくとも一つのサンプリング点を決定するためにも使用され、前記サンプリング点は、前記地面に対する衝突検出に使用される点であり、
前記第２の決定モジュールは、前記少なくとも一つのサンプリング点及び前記第２の地面位置に基づき、前記第２の地面位置に対する前記仮想キャラクターの法線方向を決定するためにも使用される、
ことを特徴とする請求項３３に記載の装置。
【請求項３５】
仮想環境における仮想キャラクターの姿勢決定装置であって、
第１のユーザーインターフェイスを表示するための第３の表示モジュールであって、前記第３の表示モジュールが、立位姿勢で前記仮想環境の地面にある仮想キャラクターを含む第３の表示モジュールと、
姿勢切替コマンドを受信するための第３の受信モジュールであって、前記姿勢切替コマンドが、前記立位姿勢から地面張り付き姿勢に切り替えるように前記仮想キャラクターに指示するために使用される第３の受信モジュールと、を含み、
前記第３の表示モジュールは、第２のユーザーインターフェイスを表示するためにも使用され、前記第２のユーザーインターフェイスは、前記地面張り付き姿勢で前記仮想環境の地面にある仮想キャラクターを含み、前記地面は、角度をなす第１の地面エリア及び第２の地面エリアを含み、前記仮想キャラクターの頭部が前記第１の地面エリアで宙に浮き、前記仮想キャラクターの足部が前記第２の地面エリアで宙に浮き、前記仮想キャラクターの腰部が前記第１の地面エリアと前記第２の地面エリアの境目で地面に埋め込まれる、
ことを特徴とする装置。
【請求項３６】
前記仮想キャラクターの中心点に基づき、前記仮想キャラクターの上半身サンプリング点及び下半身サンプリング点を決定するための第３の決定モジュールをさらに含み、
前記第３の決定モジュールは、前記上半身サンプリング点から衝突検出した後に得られた前記第１の地面エリアにある点である第１の地面張り付き点と、前記下半身サンプリング点から衝突検出した後に得られた前記第２の地面エリアにある点である第２の地面張り付き点との間の接続線を決定するためにも使用され、
前記第３の決定モジュールは、前記接続線に垂直で、かつロール角が０である垂直線に基づき、前記地面に対する前記仮想キャラクターの法線方向を決定するためにも使用される、
ことを特徴とする請求項３５に記載の装置。
【請求項３７】
メモリとプロセッサとを含む電子機器であって、
前記メモリには、少なくとも１つのコマンド、少なくとも１つのプログラム、コードセットまたはコマンドセットが記憶され、
前記少なくとも１つのコマンド、前記少なくとも１つのプログラム、前記コードセットまたはコマンドセットは、請求項１から１８のいずれか１項に記載の仮想環境における仮想オブジェクトの姿勢決定方法を実現するように、前記プロセッサによってロードされて実行される、
ことを特徴とする電子機器。
【請求項３８】
少なくとも１つのコマンド、少なくとも１つのプログラム、コードセットまたはコマンドセットが記憶されるコンピュータ可読記憶媒体であって、
前記少なくとも１つのコマンド、前記少なくとも１つのプログラム、前記コードセットまたはコマンドセットは、請求項１から１８のいずれか１項に記載の仮想環境における仮想オブジェクトの姿勢決定方法を実現するように、プロセッサによってロードされて実行される、
ことを特徴とする記憶媒体。
【請求項３９】
請求項１から１８のいずれか１項に記載の仮想環境における仮想オブジェクトの姿勢決定方法を実現するように、プロセッサによってロードされて実行される、ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１８年０２月０９日に中国特許庁に提出された、出願番号が２０１８１０１３６８２２．０であって、発明の名称が「三次元仮想環境における仮想オブジェクトの姿勢決定方法、装置及媒体」である中国特許出願に基づく優先権を主張するものであり、その全内容を本出願に参照により援用する。
【０００２】
本出願の実施例は、コンピュータグラフィックス処理分野に関し、特に、仮想環境における仮想オブジェクトの姿勢決定方法、装置及び可読媒体に関する。
【背景技術】
【０００３】
スマートフォン、タブレットコンピュータなどの電子機器には、例えば、仮想現実アプリケーションプログラム、３次元地図プログラム、軍事シミュレーションプログラム、一人称シューティングゲーム（Ｆｉｒｓｔ−ｐｅｒｓｏｎ  ｓｈｏｏｔｉｎｇ  ｇａｍｅ、ＦＰＳ）、マルチプレイヤーオンラインバトルアリーナゲーム（Ｍｕｌｔｉｐｌａｙｅｒ  Ｏｎｌｉｎｅ  Ｂａｔｔｌｅ  Ａｒｅｎａ  Ｇａｍｅｓ、ＭＯＢＡ）などの、３次元仮想環境を有する多くのアプリケーションプログラムがある。
【０００４】
上記アプリケーションプログラムでは、仮想キャラクター、仮想オブジェクト、地面などの表示要素は、３次元立体モデルを使用して３次元効果を実現する。仮想キャラクターは、３次元仮想環境で、歩行、起居、立ち、横になる及び匍匐などの姿勢にあることができる。ユーザーが仮想キャラクターを匍匐姿勢で地面に打ち伏したり前進させたりする必要がある場合、通常、ユーザーがアプリケーションプログラムのユーザーインターフェイスで匍匐コマンドをトリガーした後、仮想キャラクターが３次元仮想環境で水平方向に打ち伏す。
【０００５】
例えば、平坦でない地面、障害物などの、地面の状態がより複雑である場合、水平方向に打ち伏す仮想キャラクターの身体エリアの一部は、地面に沈んだり空中に傾いたりし、現実の物理法則に適合せず、３次元仮想環境の信頼性を低下させる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本出願の実施例は、仮想キャラクターが水平方向に打ち伏す場合、現実の物理法則に適合せず、仮想環境の信頼性を低下させるという問題を解決または緩和できる仮想環境における仮想オブジェクトの姿勢決定方法、装置及び可読媒体を提供する。技術的解決策は次のようになる。
【課題を解決するための手段】
【０００７】
一態様で、本出願の実施例は、仮想環境における仮想オブジェクトの姿勢決定方法を提供し、この方法は、
仮想オブジェクトの少なくとも一つのサンプリング点を決定するステップであって、サンプリング点が地面に対する衝突検出に使用される点であるステップと、
少なくとも一つのサンプリング点及び仮想オブジェクトの位置する地面に基づき、地面に対する仮想オブジェクトの法線方向を決定するステップと、
法線方向に基づき、仮想環境における仮想オブジェクトの地面張り付き姿勢を決定するステップと、
を含む。
【０００８】
別の態様で、仮想環境における仮想キャラクターの姿勢決定方法を提供し、この方法は、
立位姿勢で仮想環境の地面にある仮想キャラクターを含む第１のユーザーインターフェイスを表示するステップと、
立位姿勢から地面張り付き姿勢に切り替えるように仮想キャラクターに指示するための姿勢切替コマンドを受信するステップと、
地面に対する仮想キャラクターの法線方向に基づき、仮想キャラクターの地面張り付き姿勢を決定するステップと、
地面張り付き姿勢で仮想環境の地面にある仮想キャラクターを含む第２のユーザーインターフェイスを表示するステップと、
を含む。
【０００９】
別の態様で、仮想環境における仮想キャラクターの姿勢決定方法を提供し、この方法は、
第１の地面張り付き姿勢で仮想環境の第１の地面位置にある仮想キャラクターを含む第３のユーザーインターフェイスを表示するステップと、
第１の地面位置から移動するように仮想キャラクターに指示するための移動コマンドを受信するステップと、
第２の地面位置に対する仮想キャラクターの法線方向に基づき、仮想キャラクターの第２の地面張り付き姿勢を決定するステップと、
第２の地面張り付き姿勢で仮想環境の第２の地面位置にある仮想キャラクターを含む第４のユーザーインターフェイスを表示するステップと、
を含む。
【００１０】
別の態様で、仮想環境における仮想キャラクターの姿勢決定方法を提供し、この方法は、
立位姿勢で仮想環境の地面にある仮想キャラクターを含む第１のユーザーインターフェイスを表示するステップと、
立位姿勢から地面張り付き姿勢に切り替えるように仮想キャラクターに指示するための姿勢切替コマンドを受信するステップと、
地面張り付き姿勢で仮想環境の地面にある仮想キャラクターを含む第２のユーザーインターフェイスを表示し、地面は、角度をなす第１の地面エリア及び第２の地面エリアを含み、仮想キャラクターの頭部が第１の地面エリアで宙に浮き、仮想キャラクターの足部が第２の地面エリアで宙に浮き、仮想キャラクターの腰部が第１の地面エリアと第２の地面エリアの境目で地面に埋め込まれるステップと、
を含む。
【００１１】
別の態様で、仮想環境における仮想オブジェクトの姿勢決定装置を提供し、この装置は、
仮想オブジェクトの少なくとも一つのサンプリング点を決定するためのサンプリング点決定モジュールであって、サンプリング点が地面に対する衝突検出に使用される点であるサンプリング点決定モジュールと、
少なくとも一つのサンプリング点及び仮想オブジェクトの位置する地面に基づき、地面に対する仮想オブジェクトの法線方向を決定するための法線決定モジュールと、
法線方向に基づき、仮想環境での仮想オブジェクトの地面張り付き姿勢を決定するための姿勢決定モジュールと、
を含む。
【００１２】
別の態様で、仮想環境における仮想キャラクターの姿勢決定装置を提供し、この装置は、
立位姿勢で仮想環境の地面にある仮想キャラクターを含む第１のユーザーインターフェイスを表示するための第１の表示モジュールと、
立位姿勢から地面張り付き姿勢に切り替えるように仮想キャラクターに指示するための姿勢切替コマンドを受信するための第１の受信モジュールと、
地面に対する仮想キャラクターの法線方向に基づき、仮想キャラクターの地面張り付き姿勢を決定するための第１の決定モジュールと、を含み、
第１の表示モジュールは、地面張り付き姿勢で仮想環境の地面にある仮想キャラクターを含む第２のユーザーインターフェイスを表示するためにも使用される。
【００１３】
別の態様で、仮想環境における仮想キャラクターの姿勢決定装置を提供し、この装置は、
第１の地面張り付き姿勢で仮想環境の第１の地面位置にある仮想キャラクターを含む第３のユーザーインターフェイスを表示するための第２の表示モジュールと、
第１の地面位置から移動するように仮想キャラクターに指示するための移動コマンドを受信するための第２の受信モジュールと、
第２の地面位置に対する仮想キャラクターの法線方向に基づき、仮想キャラクターの第２の地面張り付き姿勢を決定するための第２の決定モジュールと、を含み、
第２の表示モジュールは、第２の地面張り付き姿勢で仮想環境の第２の地面位置にある仮想キャラクターを含む第４のユーザーインターフェイスを表示するためにも使用される。
【００１４】
別の態様で、さらに、仮想環境における仮想キャラクターの姿勢決定装置を提供し、この装置は、
立位姿勢で仮想環境の地面にある仮想キャラクターを含む第１のユーザーインターフェイスを表示するための第３の表示モジュールと、
立位姿勢から地面張り付き姿勢に切り替えるように仮想キャラクターに指示するための姿勢切替コマンドを受信するための第３の受信モジュールと、を含み、
第３の表示モジュールは、地面張り付き姿勢で仮想環境の地面にある仮想キャラクターを含む第２のユーザーインターフェイスを表示するためにも使用され、地面は、角度をなす第１の地面エリア及び第２の地面エリアを含み、仮想キャラクターの頭部が第１の地面エリアで宙に浮き、仮想キャラクターの足部が第２の地面エリアで宙に浮き、仮想キャラクターの腰部が第１の地面エリアと第２の地面エリアの境目で地面に埋め込まれる。
【００１５】
別の態様で、メモリとプロセッサとを含む電子機器をさらに提供し、メモリには、少なくとも１つのコマンド、少なくとも１つのプログラム、コードセットまたはコマンドセットが記憶され、少なくとも１つのコマンド、少なくとも１つのプログラム、コードセットまたはコマンドセットは、上記の本出願の第１の態様及びその任意の実施例のいずれか一つに記載される仮想環境における仮想オブジェクトの姿勢決定方法を実現するように、プロセッサによってロードされて実行される。
【００１６】
別の態様で、コンピュータ可読記憶媒体をさらに提供し、このコンピュータ可読記憶媒体には、上記の本出願の第１の態様及びその任意の実施例のいずれか一つに記載される仮想環境における仮想オブジェクトの姿勢決定方法を実現するようにプロセッサによってロードされて実行される、少なくとも１つのコマンド、少なくとも１つのプログラム、コードセットまたはコマンドセットが記憶される。
【００１７】
別の態様で、コンピュータプログラム製品を提供し、コンピュータプログラム製品が電子機器で実行されるときに、電子機器は、上記の本出願の第１の態様及びその任意の実施例のいずれか一つに記載される仮想環境における仮想オブジェクトの姿勢決定方法を実行する。
【発明の効果】
【００１８】
本出願の実施例で提供される技術的解決策によってもたらされる有益な効果には、少なくとも以下が含まれる。
サンプリング点に基づき仮想オブジェクトが位置する地面の法線方向を決定し、この法線方向に基づき仮想環境における仮想オブジェクトの地面張り付き姿勢を取得することにより、地面張り付き姿勢は地面の法線方向に基づき決定されるものであるので、この法線方向により、この仮想オブジェクトが位置する地面の近似平面をシミュレートでき、仮想オブジェクトはこの近似平面に平行な姿勢で地面に張り付きすることができる。それによって、仮想オブジェクトの地面張り付き状態を現実の物理法則により適合させることを達成し、よりリアルな表示効果を提供する。
【図面の簡単な説明】
【００１９】
【図１】本出願の一つの例示的な実施例によって提供される地面座標軸の概略図である。
【図２】本出願の一つの例示的な実施例によって提供されるオブジェクト座標軸の概略図である。
【図３】本出願の一つの例示的な実施例によって提供される実施環境の概略図である。
【図４】本出願の他の例示的な実施例によって提供される実施環境の概略図である。
【図５】本出願の一つの例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。
【図６】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。
【図７】本出願の一つの例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法の原理図である。
【図８】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法の原理図である。
【図９】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法の原理図である。
【図１０】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。
【図１１】本出願の一つの例示的な実施例によって提供されるユーザーインターフェイスの概略図である。
【図１２】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。
【図１３】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法の原理図である。
【図１４】本出願の他の例示的な実施例によって提供されるユーザーインターフェイスの概略図である。
【図１５】本出願の他の例示的な実施例によって提供されるユーザーインターフェイスの概略図である。
【図１６】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。
【図１７】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法の原理図である。
【図１８】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。
【図１９】本出願の他の例示的な実施例によって提供されるユーザーインターフェイスの概略図である。
【図２０】本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。
【図２１】本出願の他の例示的な実施例によって提供されるユーザーインターフェイスの概略図である。
【図２２】本出願の一つの例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定装置の構造ブロック図である。
【図２３】本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定装置の構造ブロック図である。
【図２４】本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定装置の構造ブロック図である。
【図２５】本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定装置の構造ブロック図である。
【図２６】本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定装置の構造ブロック図である。
【図２７】本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定装置の構造ブロック図である。
【図２８】本出願の一つの例示的な実施例によって提供される電子機器の構造ブロック図である。
【発明を実施するための形態】
【００２０】
本出願の目的、技術的解決策及び利点をより明確にするために、以下は、添付の図面を参照して本出願の実施形態をさらに詳細に説明する。
【００２１】
最初に、本出願の実施例に含まれる用語を説明する。
【００２２】
仮想環境：アプリケーションプログラムが電子機器で実行されているときに表示（または提供）される仮想環境である。この仮想環境は、現実世界のシミュレーション環境であってもよく、半シミュレーション半架空の３次元環境であってもよく、純粋に架空の３次元環境であってもよい。仮想環境は、２次元仮想環境、２．５次元仮想環境及び３次元仮想環境のいずれでもよい。以下の実施例は、仮想環境を３次元仮想環境として説明するが、これは限定されない。任意選択で、この仮想環境は、少なくとも２人の仮想役柄間の仮想環境戦闘にも使用される。任意選択で、この仮想環境は、仮想銃器を使用した少なくとも２人の仮想役柄間の戦闘にも使用される。任意選択で、この仮想環境は、仮想環境での時間経過と共に減少し続ける目標エリア範囲内で仮想銃器を使用した少なくとも２人の仮想役柄間の戦闘にも使用される。本出願の実施例では、例えば、この仮想環境を３次元仮想環境として説明する。
【００２３】
仮想オブジェクト：仮想環境における可動オブジェクトを指す。この可動オブジェクトは、例えば、仮想環境に表示されたキャラクター、動物、植物、オイルバレル、壁、石などの仮想キャラクター、仮想動物、アニメキャラクターなどであってもよい。任意選択で、仮想オブジェクトは、アニメーション化された骨テクノロジーに基づいて作成された３次元モデルである。各仮想オブジェクトは、仮想環境に独自の形状と体積を持ち、仮想環境内のスペースの一部を占めす。一般に、一つの仮想オブジェクトは一つの中心点を含む。この仮想オブジェクトが規則的な物体である場合、この中心点はこの仮想オブジェクトの幾何学的中心である。この仮想オブジェクトが不規則な物体である場合、この中心点はこの仮想オブジェクトの運動状態に応じて事前設定されるものである。
【００２４】
サンプリング点：地面に対する仮想オブジェクトの衝突検出に使用される点である。このサンプリング点は、１つ、２つ、３つ、またはそれ以上であってもよい。そして、このサンプリング点の選択方式は、サンプリング点の数に基づき変更することができる。例えば、サンプリング点が１つの場合、仮想オブジェクトの中心点をサンプリング点として決定してもよい。サンプリング点が２つの場合、仮想オブジェクトの中心点に基づき、前部サンプリング点及び後部サンプリング点をサンプリング点として選択してもよい。サンプリング点が３つの場合、仮想オブジェクトの中心点に基づき、前部サンプリング点、後部サンプリング点及びサイドサンプリング点をサンプリング点として選択してもよい。なお、中心点は仮想オブジェクトの中心点であり、前部サンプリング点は、中心点から仮想オブジェクトの前方までの第１の距離にある点であり、後部サンプリング点は、中心点から仮想オブジェクトの後方までの第２の距離にある点であり、サイドサンプリング点は、中心点の左側の第３の距離にある点または右側の第４の距離にある点である。サンプリング点は、仮想オブジェクトの立体モデルの内部にあってもよく、仮想オブジェクトの立体モデルの外部にあってもよい。本出願ではこれを限定しない。
【００２５】
地面張り付き姿勢は、腹臥位姿勢、仰臥位姿勢、匍匐姿勢のうちの少なくとも１つを含むが、これらに限定されない。任意選択で、この地面張り付き姿勢は、上記の仮想環境で仮想オブジェクトが表現する一つの姿勢である。任意選択で、この地面張り付き姿勢には、仮想オブジェクトの立体モデルが地面に張り付くときの地面座標系に対するピッチ角（英語：ｐｉｔｃｈ）、ヨー角（英語：ｙａｗ）及びロール角（英語：ｒｏｌｌ）の少なくとも一つを含む。
【００２６】
地面張り付き点：仮想オブジェクトが仮想環境で地面張り付き姿勢にあるときに、地面との衝突検出を行って得られた点である。任意選択で、この地面張り付き点は、上記のサンプリング点により地面に対して衝突検出を行って、地面で得られた少なくとも一つの点である。
【００２７】
衝突検出：仮想環境において、仮想キャラクターと仮想キャラクターの衝突、仮想キャラクターと壁の衝突、仮想キャラクターと地面の衝突などの、異なる仮想オブジェクトの間の衝突を検出するための技術である。任意選択で、この仮想オブジェクトに基づき一つのサンプリング点を決定し、このサンプリング点によって他の仮想オブジェクトとの衝突検出を行うことができる。
【００２８】
地面座標系：仮想環境における仮想オブジェクトの座標、方向ベクトル、モーションベクトルなどのパラメータを測定するために使用される。一般に、この地面座標系は、図１に示すように、Ｘ軸、Ｙ軸及びＺ軸の３つの座標軸を含む。任意選択で、Ｘ軸とＺ軸が配置されている平面は、水平面、つまり基準地面であり、Ｙ軸の上半分の軸は地面に対する高さを表す。なお、仮想環境における仮想オブジェクトの姿勢パラメータは座標（Ｘ，Ｙ，Ｚ）を含み、ただし、ＸとＺは、地面に対する仮想オブジェクトの座標を表し、Ｙは、地面に対する仮想オブジェクトの高さを表す。
【００２９】
オブジェクト座標系：仮想オブジェクトの中心点を原点として作成された座標系である。このオブジェクト座標系は、地面座標系と組み合わせて、仮想環境に対する仮想オブジェクトの位置、角度、距離などのパラメータを測定するために使用される。一般に、このオブジェクト座標系は、図２に示すように、ｘ軸、ｙ軸及びｚ軸の３つの座標軸を含む。任意選択で、例えば、仮想オブジェクトを仮想キャラクターとして説明し、ｘ軸は、原点から体の左側を指す座標軸であり、ｚ軸は、原点から頭頂部を指す座標軸であり、Ｙ軸は、原点から背中に垂直で上向きの座標軸である。なお、ｘ軸、ｙ軸及びｚ軸は、互いに垂直である。任意選択で、仮想キャラクターが地面張り付き姿勢にあり、背中が上を向いている場合、ｙ軸方向は、仮想キャラクターの地面上の地面張り付き点に応じた法線方向である。
【００３０】
地図座標系とオブジェクト座標系を組み合わせると、ピッチ角、ヨー角及びロール角であるオイラー角とも呼ばれる仮想オブジェクトの３つの回転角を取得ことができる。
ピッチ角：オブジェクト座標系のｚ軸と地図座標系の水平面の間の角度を指す。オブジェクト座標系の正のｚ軸の向きが地図座標系の原点の水平面の上にある場合、ピッチ角は正である。オブジェクト座標系の正のｚ軸の向きが地図座標系の原点の水平面の下にある場合、ピッチ角は負である。
ヨー角：オブジェクト座標系のｚ軸の地面座標系における水平面での投影と、地面座標系のＸ軸の間の角度を指す。
ロール角：オブジェクト座標系のｙ軸と、地面座標系のＸ軸を通過する垂直平面、つまりＸＯＹ平面の間の角度を指す。
【００３１】
本出願に係る電子機器は、携帯電話、タブレットコンピュータ、電子書籍リーダー、ＭＰ３（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ＩＩＩ、動態イメージエキスパート圧縮標準オーディオレイヤー３）プレーヤー、ＭＰ４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ＩＶ、動態イメージエキスパート圧縮標準オーディオレイヤー４）プレーヤー、ラップトップ携帯型コンピュータ、及び卓上型コンピュータなどであってもよい。この電子機器には、仮想環境をサポートするアプリケーションプログラムがインストールされ実行される。
【００３２】
図３に、本出願の一つの例示的な実施例によって提供される電子機器の構造ブロック図を示す。この電子機器３００は、オペレーティングシステム３２０及びアプリケーションプログラム３２２を含む。
【００３３】
オペレーティングシステム３２０は、アプリケーションプログラム３２２にコンピュータハードウェアへの安全なアクセスを提供する基本的なソフトウェアである。
【００３４】
アプリケーションプログラム３２２は、仮想環境をサポートするアプリケーションプログラムである。任意選択で、アプリケーションプログラム３２２は、３次元仮想環境をサポートするアプリケーションプログラムである。このアプリケーションプログラム３２２は、仮想現実アプリケーションプログラム、地図プログラム、軍事シミュレーションプログラム、三人称シューティングゲーム（Ｔｈｉｒｄ−Ｐｅｒｓｏｎａｌ  Ｓｈｏｏｔｉｎｇ  Ｇａｍｅ、ＴＰＳ）、一人称シューティングゲーム（Ｆｉｒｓｔ−ｐｅｒｓｏｎ  ｓｈｏｏｔｉｎｇ  ｇａｍｅ、ＦＰＳ）、ＭＯＢＡゲーム、マルチプレイヤーシューターサバイバルゲームのいずれか一つであってもよい。このアプリケーションプログラム３２２は、シングルユーザーライセンスの３Ｄゲームプログラムような、シングルユーザーライセンスのアプリケーションプログラムであってもよい。
【００３５】
図４に、本出願の一つの例示的な実施例によって提供されるコンピュータシステムの構造ブロック図を示す。このコンピュータシステム４００は、第１のデバイス４２０、サーバ４４０、及び第２のデバイス４６０を含む。
【００３６】
第１のデバイス４２０には、仮想環境をサポートするアプリケーションプログラムがインストールされ実行される。このアプリケーションプログラムは、仮想現実アプリケーションプログラム、３次元地図プログラム、軍事シミュレーションプログラム、ＴＰＳゲーム、ＦＰＳゲーム、ＭＯＢＡゲーム、マルチプレイヤーシューターサバイバルゲームのいずれか一つであってもよい。第１のデバイス４２０は、第１のユーザによって使用されるデバイスである。第１のユーザは、第１のデバイス４２０を使用して、仮想環境にある第１の仮想オブジェクトを制御して、活動を実行する。この活動は、体の姿勢の調整、爬行、行歩、走り、サイクリング、跳躍、運転、ピック、射撃、攻撃、投擲の少なくとも１つを含むが、これらに限定されない。例示的に、第１の仮想オブジェクトは、シミュレーションキャラクター役柄またはアニメキャラクター役柄のような、第１の仮想キャラクターである。
【００３７】
第１のデバイス４２０は、無線ネットワークまたは有線ネットワークを介して、サーバ４４０に接続される。
【００３８】
サーバ４４０は、一つのサーバ、複数のサーバ、クラウドコンピューティングプラットフォーム、及び仮想化センターの少なくとも一つを含む。サーバ４４０は、３次元仮想環境をサポートするアプリケーションプログラムにバックグラウンドサービスを提供するために使用される。任意選択で、サーバ４４０は、主な算出作業を担当し、第１のデバイス４２０と第２のデバイス４６０は、副次的算出作業を担当する。または、サーバ４４０は、副次的算出作業を担当し、第１のデバイス４２０と第２のデバイス４６０は、主な算出作業を担当する。または、サーバ４４０、第１のデバイス４２０、及び第２のデバイス４６０の３つの間は、分散コンピューティングアーキテクチャを採用して協調コンピューティングを実行する。
【００３９】
第２のデバイス４６０には、仮想環境をサポートするアプリケーションプログラムがインストールされ実行されている。このアプリケーションプログラムは、仮想現実アプリケーションプログラム、３次元地図プログラム、軍事シミュレーションプログラム、ＦＰＳゲーム、ＭＯＢＡゲーム、マルチプレイヤーシューターサバイバルゲームのいずれか一つであってもよい。第２のデバイス４６０は、第２のユーザによって使用されるデバイスである。第２のユーザは、第２のデバイス４６０を使用して、仮想環境にある第２の仮想オブジェクトを制御して、活動を実行する。この活動は、体の姿勢の調整、爬行、行歩、走り、サイクリング、跳躍、運転、ピック、射撃、攻撃、投擲の少なくとも１つを含むが、これらに限定されない。例示的に、第２の仮想オブジェクトは、シミュレーションキャラクター役柄またはアニメキャラクター役柄のような、第２の仮想キャラクターである。
【００４０】
任意選択で、第１の仮想キャラクターと第２の仮想キャラクターは、同じ仮想環境にいる。任意選択で、第１の仮想キャラクターと第２の仮想キャラクターは、同じチーム、同じ組織に属している、友達関係を持っている、または一時的な通信権を持っている場合がある。任意選択で、第１の仮想キャラクターと第２の仮想キャラクターは、異なるチーム、異なる組織、または２つの敵対的なグループに属している場合がある。
【００４１】
任意選択で、第１のデバイス４２０及び第２のデバイス４６０にインストールされたアプリケーションプログラムは同じであるか、または２つのデバイスにインストールされたアプリケーションプログラムは、異なる制御システムプラットフォーム上の同じタイプのアプリケーションプログラムである。第１のデバイス４２０は、複数のデバイスの１つを指し、第２のデバイス４６０は複数のデバイスの１つを指すことができ、この実施例では、第１のデバイス４２０及び第２のデバイス４６０のみを例として説明する。第１のデバイス４２０と第２のデバイス４６０のデバイスタイプは、同じかまたは異なる。このデバイスタイプには、ゲームホスト、卓上型コンピュータ、スマートフォン、タブレットコンピュータ、電子書籍リーダー、ＭＰ３プレーヤー、ＭＰ４プレーヤー、及びラップトップ携帯型コンピュータの少なくとも１つを含む。以下の実施例は、例えばデバイスを卓上型コンピュータとして説明する。
【００４２】
当業者は、上記のデバイスの数が多かれ少なかれあり得ることを知っている。例えば、上記デバイスは、一つだけでもよいし、上記のデバイスは数十または数百、それ以上でもよい。本出願の実施例では、デバイスの数及びデバイスタイプを限定しない。
【００４３】
図５は、本出願一つの例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。この実施例では、この仮想オブジェクトの姿勢決定方法を電子機器に適用することを例として説明する。この仮想オブジェクトの姿勢決定方法は、次のステップを含む。
【００４４】
ステップ５０１：仮想オブジェクトの少なくとも一つのサンプリング点を決定する。
【００４５】
任意選択で、このサンプリング点は、地面に対する仮想オブジェクトの衝突検出に使用される点である。
【００４６】
任意選択で、この仮想オブジェクトの少なくとも一つのサンプリング点は、仮想オブジェクトの中心点に基づき決定されてもよく、事前設定されてもよい。
【００４７】
なお、仮想オブジェクトの中心点は、事前設定されてもよい。任意選択で、この仮想オブジェクトが規則的な物体である場合、この中心点は、正方体の幾何学的中心、球体の幾何学的中心、直方体の幾何学的中心などのような、この仮想オブジェクトの幾何学的中心であってもよい。この仮想オブジェクトが不規則的な物体である場合、この中心点は、この仮想オブジェクトの運動状態に応じて事前設定される中心点であってもよい。仮想オブジェクトが仮想キャラクターであることを例として説明し、仮想キャラクターが立位姿勢にあるとき、この仮想キャラクターの中心点は腹部の事前設定点であり、仮想キャラクターがスクワット姿勢にあるとき、この仮想キャラクターの中心点は、胸部の事前設定点である。
【００４８】
任意選択で、このサンプリング点の数は、１つ、２つまたは３つであってもよく、本出願の実施例では、これを限定しない。
【００４９】
ステップ５０２：少なくとも一つのサンプリング点及び仮想オブジェクトの位置する地面に基づき、地面に対する仮想オブジェクトの法線方向を決定する。
【００５０】
任意選択で、電子機器は、少なくとも一つのサンプリング点及び仮想オブジェクトの位置する地面に基づき、この地面に対する仮想オブジェクトの法線方向を決定することができ、この法線方向は上記地面に垂直な方向である。
【００５１】
任意選択で、この地面は、非水平面である。この非水平面は、勾配のあるエリアと、曲面エリアと、陥凹エリアと、隆起エリアとのうちの少なくとも一つを含む。地面が非水平面である場合、この法線方向は、非水平面を一つの近似平面と見なすときに、この近似平面に対する仮想オブジェクトの垂直方向を示すために使用される。
【００５２】
任意選択で、上記法線方向の定義は数学的原理で定義されており、近似平面は必ずしも実際に算出する必要がない。本出願では、法線方向は、サンプリング点に基づき直接に算出でき、この近似平面及び／又は法線方向の決定方法は、本出願に限定されない。
【００５３】
ステップ５０３：法線方向に基づき、仮想環境における仮想オブジェクトの地面張り付き姿勢を決定する。
【００５４】
任意選択で、電子機器は、仮想オブジェクトを法線方向に応じて回転させ、仮想オブジェクトが地面に張り付くときに非水平面に対応する近似平面に平行になるようにして、仮想環境における現実の物理法則により適合するこの仮想オブジェクトの地面張り付き姿勢を取得する。
【００５５】
以上のように、この実施例で提供される仮想環境における仮想オブジェクトの姿勢決定方法は、サンプリング点に基づき仮想オブジェクトが位置する地面の法線方向を決定し、この法線方向に基づき仮想環境における仮想オブジェクトの地面張り付き姿勢を取得することにより、地面張り付き姿勢は地面の法線方向に基づき決定されるものであるので、この法線方向により、この仮想オブジェクトが位置する地面の近似平面をシミュレートでき、仮想オブジェクトはこの近似平面に平行な方向で地面に張り付くことができ、それによって、仮想オブジェクトの地面張り付き状態を現実の物理法則により適合させることを達せし、より現実的な表示効果を提供する。
【００５６】
別のオプションの実施形態では、電子機器は、サンプリング点に応じて地面に対して衝突検出を行って地面張り付き点を取得した後、地面張り付き点に基づき地面に対する仮想オブジェクトの法線方向を決定する必要がある。図６は、本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法フローチャートである。この仮想オブジェクトの姿勢決定方法を電子機器に適用することを例として説明する。図６に示すように、この姿勢決定方法は、次のステップを含む。
【００５７】
ステップ６０１：仮想オブジェクトの少なくとも一つのサンプリング点を決定する。
【００５８】
任意選択で、このサンプリング点は、地面に対する衝突検出に使用される点である。
【００５９】
任意選択で、この仮想オブジェクトの少なくとも一つのサンプリング点は、仮想オブジェクトの中心点に基づき決定されてもよく、事前設定されてもよい。
【００６０】
ステップ６０２：サンプリング点から鉛直下方向で衝突検出を行い、仮想オブジェクトが地面に衝突する際の衝突点を地面張り付き点として決定する。
【００６１】
仮想オブジェクトと地面はそれぞれの立体モデルを有する。衝突検出は、仮想オブジェクトの立体モデルと地面の立体モデルとが地面張り付き状態にあるときの衝突位置を決定するために使用される。
【００６２】
例示的に、サンプリング点が一つの点であることを例として説明する。図１〜図７を参照して、この鉛直下方向は、図１における地面座標軸のＹ軸の逆方向であり、サンプリング点は、図７におけるサンプリング点７１である。このサンプリング点７１からＹ軸の逆方向に衝突検出を行って、仮想オブジェクトと地面との衝突点を地面張り付き点７２として取得し、この地面張り付き点７２は傾斜面７３上の点である。
【００６３】
ステップ６０３：地面張り付き点に基づき、地面に対する仮想オブジェクトの法線方向を決定する。
【００６４】
任意選択で、地面張り付き点が１つの点の場合、この法線方向は、地面張り付き点を始点として地面（または弓形地面の接平面）に垂直な法線方向である。地面張り付き点が２つの点の場合、この法線方向は、当該２つの点の接続線に垂直な方向である。地面張り付き点が３つの点の場合、この法線方向は、当該３つの点によって構成される平面に垂直な方向である。
【００６５】
例示的に、この地面張り付き点が一つの点であることを例として説明する。図７及び図８を参照して、図８では、傾斜面７３は断面の形で表示されており、地面張り付き点７２から傾斜面７３に垂直な法線７４を引き、この法線７４の方向は地面張り付き点７２に基づき決定される法線方向である。
【００６６】
任意選択で、地面が弓形地面である場合、法線方向は、地面張り付き点を始点として地面張り付き点の位置する接平面に垂直な方向であり、この接平面は、地面張り付き点のある地面に接する。図９を参照して、円弧面９５は、地面の断面であり、この円弧面９５には一つの地面張り付き点９６があり、この地面張り付き点９６で円弧面９５に接する接平面９７を決定し、地面張り付き点９６から接平面９７に垂直な法線９８を引き、この法線９８の方向は、地面張り付き点９６に基づき決定される法線方向である。
【００６７】
ステップ６０４：法線方向に基づき、仮想環境における仮想オブジェクトの地面張り付き姿勢を決定する。
【００６８】
任意選択で、仮想オブジェクトを法線方向に応じて回転させ、仮想オブジェクトを法線に垂直な近似平面に平行な状態に回転させて、仮想環境におけるこの仮想オブジェクトの地面張り付き姿勢を取得する。
【００６９】
なお、上記の仮想オブジェクトを法線方向に応じて回転させることは、法線方向に応じて仮想環境における仮想オブジェクトのピッチ角を増加または減少させること、及び／又は、法線方向に応じて仮想環境における仮想オブジェクトのロール角を増加または減少させることを含む。
【００７０】
以上のように、この実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法は、サンプリング点によって鉛直下方向で衝突検出を行って地面張り付き点を取得し、地面張り付き点によって仮想オブジェクトの現在のある地面の法線方向を算出する。これにより、法線方向を算出するときの精度が向上する。
【００７１】
上記によれば、仮想オブジェクトについて電子機器によって決定されるサンプリング点の数は、１つ、２つまたは３つであってもよく、以下では、これらの３つの場合について別個に説明する。
【００７２】
まず、一つのサンプリング点が決定された場合について説明する。図１０は、本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。この仮想オブジェクトの姿勢決定方法を電子機器に適用することを例として説明する。図１０に示すように、この姿勢決定方法は、次のステップを含む。
【００７３】
ステップ１００１：仮想オブジェクトの中心点を仮想オブジェクトのサンプリング点として決定する。
【００７４】
任意選択で、この仮想オブジェクトの中心点は、事前設定されてもよい。
【００７５】
電子機器は、仮想オブジェクトの中心点を、仮想オブジェクトのサンプリング点として決定してもよい。
【００７６】
ステップ１００２：サンプリング点から鉛直下方向で衝突検出を行い、仮想オブジェクトが地面に衝突する際の衝突点を地面張り付き点として決定する。
【００７７】
電子機器は、仮想オブジェクトの中心点から鉛直下方向で衝突検出を行い、仮想オブジェクトが地面に衝突する際の衝突点を地面張り付き点として決定する。
【００７８】
ステップ１００３：地面張り付き点に基づき、地面に対する仮想オブジェクトの法線方向を決定する。
【００７９】
任意選択で、電子機器は、この地面張り付き点を始点として地面に垂直な第１の垂直線を引き、この第１の垂直線に基づき地面に対する仮想オブジェクトの法線方向を決定する。任意選択で、この法線方向はこの第１の垂直線の方向である。
【００８０】
例示的に、地面に対する仮想オブジェクトの法線方向は、ベクトル（ＮｏｒｍａｌＶｅｃｔｏｒ．Ｘ，ＮｏｒｍａｌＶｅｃｔｏｒ．Ｙ，ＮｏｒｍａｌＶｅｃｔｏｒ．Ｚ）で表される。
【００８１】
ステップ１００４：地面座標系に対する法線方向の第１のヨー角に基づき、仮想環境における仮想オブジェクトのピッチ角ｐｉｔｃｈを決定する。
【００８２】
任意選択で、法線方向を仮想オブジェクトのオブジェクト座標系のｙ軸方向として、仮想環境における仮想オブジェクトのピッチ角ｐｉｔｃｈを決定する。
【００８３】
任意選択で、法線方向を仮想オブジェクト座標系のｙ軸方向とした後、オブジェクト座標系の正のｚ軸と地面座標系の水平面、つまりＸＯＺ面との角度を算出し、この角度は上記第１のヨー角であり、ピッチ角は、この第１のヨー角の逆数である。或いは、法線方向を仮想オブジェクト座標系のｙ軸方向とした後、オブジェクト座標系の正のｙ軸と地面座標系の正のＹ軸の間の角度を算出し、この角度は上記第１のヨー角であり、ピッチ角はこの第１のヨー角の逆数である。
【００８４】
例えば、仮想オブジェクトの中心点を原点としてオブジェクト座標系を確立し、この法線をこのオブジェクト座標系のｙ軸とし、ｘ軸とｚ軸をこのｙ軸に垂直にする。なお、例えば、仮想オブジェクトを仮想キャラクターとして説明し、ｘ軸は原点から体の左側を指す座標軸であり、ｚ軸は原点から頭頂部を指す座標軸であり、ｙ軸は原点から背中に垂直で上向きの座標軸である。なお、ｘ軸、ｙ軸及びｚ軸は、互いに垂直である。任意選択で、仮想キャラクターが地面張り付き姿勢にあり、背中が上を向いている場合、ｙ軸方向は、仮想キャラクターの地面上の地面張り付き点に応じた法線方向である。
【００８５】
なお、図１１に示すようなユーザーインターフェイス１１１を参照して、ユーザーインターフェイス１１１における座標軸ｘ、座標軸ｙ及び座標軸ｚはすべて概略図である。実際の実施例では、上記座標軸は必ずしもユーザーインターフェイス１１１に表示される必要はない。
【００８６】
任意選択で、この第１のヨー角は、地面座標系のＹ軸に対するヨー角であり、即ち、ＮｏｒｍａｌＶｅｃｔｏｒ．ＸとＮｏｒｍａｌＶｅｃｔｏｒ．Ｚによって決定されるヨー角であり、ピッチ角ｐｉｔｃｈは、上記第１のヨー角の逆数である。
【００８７】
任意選択で、ピッチ角ｐｉｔｃｈは次のコードによって取得できる。
ｆｌｏａｔ  ｐｉｔｃｈ＝ＦＭａｔｈ：：Ａｔａｎ２（ＮｏｒｍａｌＶｅｃｔｏｒ．Ｘ，ＮｏｒｍａｌＶｅｃｔｏｒ．Ｚ）＊−１．ｆ
【００８８】
ただし、ＦＭａｔｈ：：Ａｔａｎ２はＦＭａｔｈクラスの静的方法Ａｔａｎ２を呼び出し、ｆｌｏａｔは浮動小数点数であり、「＊−１．ｆ」は、取得された第１のヨー角を反転して浮動小数点数を保持するために使用される。
【００８９】
ステップ１００５：地面座標系に対する法線方向の第２のヨー角に基づき、仮想環境における仮想オブジェクトのロール角ｒｏｌｌを決定する。
【００９０】
任意選択で、法線方向を仮想オブジェクト座標系のｙ軸方向とした後、オブジェクト座標系のｙ軸と地面座標系のＸ軸を通る垂直面との間の角度、つまりオブジェクト座標系のｙ軸とＸＯＹ面との間の角度を算出し、この角度は、上記第２のヨー角であり、ロール角は、その第２のヨー角の逆数である。
【００９１】
任意選択で、その第２のヨー角は、法線方向と地面座標系のＸＯＹ面との間のヨー角であり、即ち、ＮｏｒｍａｌＶｅｃｔｏｒ．ＹとＮｏｒｍａｌＶｅｃｔｏｒ．Ｚによって決定されるヨー角であり、ロール角ｒｏｌｌは、上記第２のヨー角の逆数である。
【００９２】
任意選択で、ロール角ｒｏｌｌは次のコードによって取得できる。
ｆｌｏａｔ  ｒｏｌｌ＝ＦＭａｔｈ：：Ａｔａｎ２（ＮｏｒｍａｌＶｅｃｔｏｒ．Ｙ，ＮｏｒｍａｌＶｅｃｔｏｒ．Ｚ）＊−１．ｆ
【００９３】
ただし、ＦＭａｔｈ：：Ａｔａｎ２はＦＭａｔｈクラスの静的方法Ａｔａｎ２を呼び出し、ｆｌｏａｔは浮動小数点数であり、「＊−１．ｆ」は取得されたヨー角を反転して浮動小数点数を保持するために使用される。
【００９４】
任意選択で、仮想オブジェクトのピッチ角ｐｉｔｃｈとロール角ｒｏｌｌを取得した後、このピッチ角とロール角で仮想オブジェクトを回転させ、即ち、仮想オブジェクトの初期ピッチ角をピッチ角に基づいて増加または減少させて、仮想オブジェクトの初期ロール角をロール角に基づいて増加または減少させて、回転された仮想オブジェクトを地面張り付き姿勢で地面に張り付く。
【００９５】
なお、ピッチ角及びロール角の増加または減少は、実際の操作における仮想オブジェクトの回転状況によって決まる。
【００９６】
任意選択で、次のコードによって、上記ピッチ角とロール角で仮想オブジェクトを回転させる。即ち、
ＦＲｏｔａｔｏｒ  ｃｈａｒａｃｔｅｒＲｏｔａｔｉｏｎ  ＝  ＦＲｏｔａｔｏｒ（Ｐｉｔｃｈ，０．０ｆ，Ｒｏｌｌ）
【００９７】
ただし、ＦＲｏｔａｔｏｒは回転方法を示すために使用され、ｃｈａｒａｃｔｅｒＲｏｔａｔｉｏｎは、仮想オブジェクトの回転角度を示すために使用され、０．０ｆは仮想オブジェクトがヨー角に応じて回転する必要がないことを示すために使用される。
【００９８】
以上のように、この実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法は、傾斜が比較的平坦である場合、地面の法線方向を算出することで、仮想オブジェクトが座標軸のさまざまな方向で理想的な地面張り付き状態を実現できることを保証するようになる。これにより、キャラクターが地面張り付き姿勢にあるときの身体の一部が地面または障害物に沈む状況が軽減され、現実の物理法則により適合する。
【００９９】
次に、中心点に基づき２つのサンプリング点を決定する場合を参照しながら説明する。この２つのサンプリング点はそれぞれ、仮想オブジェクトの地面張り付き姿勢での上半分の点を表すための前部サンプリング点と、仮想オブジェクトの地面張り付き姿勢での下半分の点を表すための後部サンプリング点とである。
【０１００】
図１２は、本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。この仮想オブジェクトの姿勢決定方法を電子機器に適用することを例として説明する。図１２に示すように、この姿勢決定方法は、次のステップを含む。
【０１０１】
ステップ１２０１：仮想オブジェクトの中心点の前方の第１の距離にある点を、前部サンプリング点として決定する。
【０１０２】
任意選択で、その中心点の前方は、仮想オブジェクトが向いている方向及び水平方向によって決定される。なお、水平方向は、地面座標系におけるＹ軸の方向に垂直な方向である。その仮想オブジェクトの中心点の前方の第１の距離にある点は、中心点から、水平方向及び仮想オブジェクトが向いている方向に沿って第１の距離だけ前に移動した点である。
【０１０３】
ステップ１２０２：仮想オブジェクトの中心点の後方の第２の距離にある点を、後部サンプリング点として決定する。
【０１０４】
任意選択で、その中心点の後方は、仮想オブジェクトが向いている方向の反対方向である。その仮想オブジェクトの中心点の後方の第２の距離にある点は、中心点から水平方向及び仮想オブジェクトが向いている方向の反対方向に沿って第２の距離だけ前に移動した点である。
【０１０５】
なお、上記第１の距離と第２の距離は、２つの同じ距離長さであってもよく、２つの異なる距離長さであってもよい。
【０１０６】
任意選択で、上記第１の距離と第２の距離は、仮想オブジェクトの長さの半分以下である。
【０１０７】
ステップ１２０３：前部サンプリング点及び後部サンプリング点を仮想オブジェクトのサンプリング点として決定する。
【０１０８】
例示的に、図１３を参照して、仮想オブジェクトの中心点は中心点１３１であり、仮想オブジェクトが向いている方向に基づき、前部サンプリング点１３４及び後部サンプリング点１３５を決定する。
【０１０９】
ステップ１２０４：サンプリング点から鉛直下方向で衝突検出を行って、仮想オブジェクトが地面に衝突する際の衝突点を地面張り付き点として決定する。
【０１１０】
サンプリング点から鉛直下方向で衝突検出を行うことについて、ステップ６０２では既に説明したので、ここで繰り返して説明しない。
【０１１１】
任意選択で、前部サンプリング点から鉛直下方向で衝突検出を行い、仮想オブジェクトが地面に衝突する際の衝突点を第１の地面張り付き点として決定する。後部サンプリング点から鉛直下方向で衝突検出を行って、仮想オブジェクトが地面に衝突する際の衝突点を第２の地面張り付き点として決定する。
【０１１２】
例示的に、図１３を参照して、前部サンプリング点１３４から鉛直下方向で衝突検出を行って、第１の地面張り付き点１３４を取得し、後部サンプリング点１３５から鉛直下方向で衝突検出を行って、第２の地面張り付き点１３５を取得する。
【０１１３】
ステップ１２０５：第１の地面張り付き点と第２の地面張り付き点との接続線を決定する。
【０１１４】
例示的に、図１３を参照して、第１の地面張り付き点１３４と第２の地面張り付き点１３５との間の点線は、第１の地面張り付き点１３４と第２の地面張り付き点１３５との接続線である。
【０１１５】
ステップ１２０６：接続線に垂直で、かつロール角が０である第２の垂直線に基づき、地面に対する仮想オブジェクトの法線方向を決定する。
【０１１６】
任意選択で、その接続線を９０度回転して、この直線に垂直で、かつロール角が０である第２の垂直線を取得する。例示的に、図１３を参照して、当該接続線が第１の地面張り付き点１３４から第２の地面張り付き点１３５を指す有向射線である場合、この法線方向は、その有向射線を地面座標系のｚ軸に周り９０度回転させた方向、つまり法線１３６の方向である。
【０１１７】
任意選択で、上記法線方向は次のコードによって取得できる。
ＦＲｏｔａｔｏｒ  ＮｏｒｍａｌＲｏｔａｔｏｒ  ＝  （Ｔａｒｇｅｔ２  −  Ｔａｒｇｅｔ）．Ｒｏｔａｔｉｏｎ（）；
ＮｏｒｍａｌＲｏｔａｔｏｒ．ｐｉｔｃｈ  ＋＝９０．ｆ；
ＦＶｅｃｔｏｒ  ＮｏｒｍａｌＶｅｃｔｏｒ  ＝  ＮｏｒｍａｌＲｏｔａｔｏｒ．  Ｖｅｃｔｏｒ（）
【０１１８】
ただし、Ｔａｒｇｅｔは第１の地面張り付き点の地面座標系における座標であり、Ｔａｒｇｅｔ２は第２の地面張り付き点の地面座標系における座標であり、ＮｏｒｍａｌＶｅｃｔｏｒは法線を示すために使用され、ＮｏｒｍａｌＲｏｔａｔｏｒは第１の地面張り付き点と第２の地面張り付き点との間の接続線を回転させる方法を示すために使用され、ＮｏｒｍａｌＲｏｔａｔｏｒ．ｐｉｔｃｈ  ＋＝９０．ｆはその接続線を９０度回転させることを示すために使用される。
【０１１９】
ステップ１２０７：地面座標系のＸ軸に対する法線方向の第１のヨー角に基づき、仮想環境における仮想オブジェクトのピッチ角を決定する。
【０１２０】
任意選択で、法線方向を仮想オブジェクト座標系のｙ軸方向とした後、オブジェクト座標系の正のｚ軸と地面座標系の水平面、つまりＸＯＺ面との角度を算出し、この角度は上記第１のヨー角であり、ピッチ角はその第１のヨー角の逆数である。または、法線方向を仮想オブジェクト座標系のｙ軸方向とした後、オブジェクト座標系の正のｙ軸と地面座標系の正のＹ軸正との間の角度を算出し、この角度は上記第１のヨー角であり、ピッチ角はその第１のヨー角の逆数である。
【０１２１】
一つの具体的な実施例に基づいて、図１４と図１５を参照して、ユーザーインターフェイス１４１では、仮想オブジェクトは立位姿勢で斜面に立っており、この仮想オブジェクトの中心点１４２に基づき前部サンプリング点１４３と後部サンプリング点１４４を決定し、前部サンプリング点１４３と後部サンプリング点１４４に対して垂直衝突検出を行って第１の地面張り付き点１４５と第２の地面張り付き点１４６を取得し、第１の地面張り付き点１４５と第２の地面張り付き点１４６との接続線に基づき、法線の方向、つまり図１４の矢印が指す方向を決定し、この法線の方向に基づき、図１５に示すようなユーザーインターフェイス１５１では、地面張り付き姿勢で仮想オブジェクトを表示する。
【０１２２】
なお、図１４及び図１５における上記前部サンプリング点、後部サンプリング点、第１の地面張り付き点、第２の地面張り付き点、中心点、及び各点の間の接続線はすべて概略図であり、実際の実施例では、ユーザーインターフェイスには上記点及び各点の間の接続線が表示されなくてもよい。
【０１２３】
以上のように、この実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法は、地面が勾配の異なる２つの斜面の境目である場合または地面が弓形地面である場合、２つの斜面のそれぞれに１つの点を地面張り付き点として取るか、または弧に２つの地面張り付き点を取ることで、仮想オブジェクトが１つの傾斜角に応じて回転された後に別の傾斜角で宙に浮くという状況が回避され、現実の物理法則により適合する。
【０１２４】
第３、中心点に基づき３つのサンプリング点を決定する場合を参照しながら説明する。この３つのサンプリング点は、仮想オブジェクトの地面張り付き姿勢での上半分の点を表すための前部サンプリング点と、仮想オブジェクトの地面張り付き姿勢での下半分の点を表すための後部サンプリング点と、及び仮想オブジェクトの地面張り付き姿勢での左側または右側の点を表すためのサイドサンプリング点とである。
【０１２５】
図１６は、本出願の他の例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法のフローチャートである。この仮想オブジェクトの姿勢決定方法を電子機器に適用することを例として説明する。図１６に示すように、この姿勢決定方法は、次のステップを含む。
【０１２６】
ステップ１６０１：仮想オブジェクトの中心点の前方の第１の距離にある点を、前部サンプリング点として決定する。
【０１２７】
任意選択で、その中心点の前方は、仮想オブジェクトが向いている方向及び水平方向によって決定される。なお、水平方向は、地面座標系におけるＹ軸の方向に垂直な方向である。その仮想オブジェクトの中心点の前方の第１の距離にある点は、中心点水平方向及び仮想オブジェクトが向いている方向に沿って第１の距離だけ前に移動した点である。
【０１２８】
ステップ１６０２：仮想オブジェクトの中心点の後方の第２の距離にある点を、後部サンプリング点として決定する。
【０１２９】
任意選択で、その中心点の後方は、仮想オブジェクトが向いている方向の反対方向である。その仮想オブジェクトの中心点の後方の第２の距離にある点は、中心点から水平方向及び仮想オブジェクトが向いている方向の反対方向に沿って第２の距離だけ前に移動した点である。
【０１３０】
なお、上記第１の距離と第２の距離は、２つの同じ距離長さであってもよく、２つの異なる距離長さであってもよい。
【０１３１】
任意選択で、上記第１の距離と第２の距離は、仮想オブジェクトの長さの半分以下である。
【０１３２】
ステップ１６０３：仮想オブジェクトの中心点の左側の第３の距離にある点または仮想オブジェクトの右側の第４の距離にある点を、サイドサンプリング点として決定する。
【０１３３】
任意選択で、その中心点の左側はｙ軸の方向に垂直で、仮想オブジェクトが向いている方向に垂直な左への方向である。その中心点の右側は、ｙ軸の方向に垂直で、仮想オブジェクトが向いている方向に垂直な右への方向である。
【０１３４】
任意選択で、上記第３の距離と第４の距離は、仮想オブジェクトの幅の半分以下である。
【０１３５】
ステップ１６０４：前部サンプリング点と、後部サンプリング点と、サイドサンプリング点とを、仮想オブジェクトのサンプリング点として決定する。
【０１３６】
例示的に、図１７を参照して、仮想オブジェクトの中心点１７０１に基づき、前部サンプリング点１７０２、後部サンプリング点１７０３及びサイドサンプリング点１７０４を決定し、上記前部サンプリング点１７０２、後部サンプリング点１７０３及びサイドサンプリング点１７０４を仮想オブジェクトのサンプリング点として決定する。
【０１３７】
ステップ１６０５：サンプリング点から鉛直下方向で衝突検出を行って、仮想オブジェクトが地面に衝突する際の衝突点を地面張り付き点として決定する。
【０１３８】
任意選択で、前部サンプリング点から鉛直下方向で衝突検出を行って、第１の地面張り付き点を決定する。後部サンプリング点から鉛直下方向で衝突検出を行って、第２の地面張り付き点を決定する。サイドサンプリング点から鉛直下方向で衝突検出を行って、第３の地面張り付き点を決定する。
【０１３９】
例示的に、図１７を参照し、前部サンプリング点１７０２から鉛直下方向で衝突検出を行って、第１の地面張り付き点１７０５を取得し、後部サンプリング点１７０３から鉛直下方向で衝突検出を行って、第２の地面張り付き点１７０６を取得し、サイドサンプリング点１７０４から鉛直下方向で衝突検出を行って、第３の地面張り付き点１７０７を取得する。
【０１４０】
ステップ１６０６：第１の地面張り付き点、第２の地面張り付き点、及び第３の地面張り付き点が位置する平面を決定する。
【０１４１】
任意選択で、第１の地面張り付き点、第２の地面張り付き点、及び第３の地面張り付き点をそれぞれ接続して、３つの接続線によって構成される平面は、第１の地面張り付き点、第２の地面張り付き点、および第３の地面張り付き点が位置する平面である。
【０１４２】
例示的に、図１７を参照して、第１の地面張り付き点１７０５、第２の地面張り付き点１７０６及び第３の地面張り付き点１７０７の間の接続線によって構成される影部分は、３つの点が位置する平面である。
【０１４３】
ステップ１６０７：平面に垂直で上向きの第３の垂直線に基づき、地面に対する仮想オブジェクトの法線方向を決定する。
【０１４４】
平面に垂直で上向きとは、当該法線がその３つの点によって構成される平面に垂直で、この法線の方向ベクトルのうち、ｙ軸に対応する座標が正の数であることである。
【０１４５】
ステップ１６０８：地面座標系に対する法線方向の第１のヨー角に基づき、仮想環境における仮想オブジェクトのピッチ角ｐｉｔｃｈを決定する。
【０１４６】
任意選択で、その第１のヨー角は、地面座標系のＹ軸に対する法線方向のヨー角であり、即ち、ＮｏｒｍａｌＶｅｃｔｏｒ．ＸとＮｏｒｍａｌＶｅｃｔｏｒ．Ｚによって決定されるヨー角であり、ピッチ角ｐｉｔｃｈは、上記第１のヨー角の逆数である。任意選択で、ピッチ角ｐｉｔｃｈは次のコードによって取得できる。
ｆｌｏａｔ  ｐｉｔｃｈ＝ＦＭａｔｈ：：Ａｔａｎ２（ＮｏｒｍａｌＶｅｃｔｏｒ．Ｘ，ＮｏｒｍａｌＶｅｃｔｏｒ．Ｚ）＊−１．ｆ
【０１４７】
ただし、ＦＭａｔｈ：：Ａｔａｎ２は、ＦＭａｔｈクラスの静的方法Ａｔａｎ２を呼び出し、ｆｌｏａｔは浮動小数点数であり、「＊−１．ｆ」は取得されたヨー角を反転して浮動小数点数を保持するために使用される。
【０１４８】
ステップ１６０９：地面座標系に対する法線方向の第２のヨー角に基づき、仮想環境における仮想オブジェクトのロール角ｒｏｌｌを決定する。
【０１４９】
任意選択で、法線方向を仮想オブジェクト座標系のｙ軸方向とした後、オブジェクト座標系のｙ軸と地面座標系のＸ軸を通る垂直面との間の角度、つまりオブジェクト座標系のｙ軸とＸＯＹ面との間の角度を算出し、この角度は、上記第２のヨー角であり、ロール角はその第２のヨー角の逆数である。
【０１５０】
任意選択で、その第２のヨー角は、法線方向と地面座標系のＸＯＹ面との間の角度であり、即ち、ＮｏｒｍａｌＶｅｃｔｏｒ．ＹとＮｏｒｍａｌＶｅｃｔｏｒ．Ｚによって決定されるヨー角であり、ロール角ｒｏｌｌは上記第２のヨー角の逆数である。
【０１５１】
任意選択で、ロール角ｒｏｌｌは次のコードによって取得できる。
ｆｌｏａｔ  ｒｏｌｌ＝ＦＭａｔｈ：：Ａｔａｎ２（ＮｏｒｍａｌＶｅｃｔｏｒ．Ｙ，ＮｏｒｍａｌＶｅｃｔｏｒ．Ｚ）＊−１．ｆ；
【０１５２】
ただし、ＦＭａｔｈ：：Ａｔａｎ２はＦＭａｔｈクラスの静的方法Ａｔａｎ２を呼び出し、ｆｌｏａｔは浮動小数点数であり、「＊−１．ｆ」は取得されたヨー角を反転して浮動小数点数を保持するために使用される。
【０１５３】
任意選択で、仮想オブジェクトのピッチ角ｐｉｔｃｈとロール角ｒｏｌｌを取得した後、このピッチ角とロール角で仮想オブジェクトを回転させ、即ち、仮想オブジェクトの初期ピッチ角をピッチ角に基づいて増加または減少させて、仮想オブジェクトの初期ロール角をロール角に基づいて増加または減少させて、回転された仮想オブジェクトを地面張り付き姿勢で地面に張り付く。
【０１５４】
任意選択で、次のコードによって、上記ピッチ角とロール角で仮想オブジェクトを回転させる。
ＦＲｏｔａｔｏｒ  ｃｈａｒａｃｔｅｒＲｏｔａｔｉｏｎ  ＝  ＦＲｏｔａｔｏｒ（Ｐｉｔｃｈ，０．０ｆ，Ｒｏｌｌ）
【０１５５】
ただし、ＦＲｏｔａｔｏｒは、回転方法を示すために使用され、ｃｈａｒａｃｔｅｒＲｏｔａｔｉｏｎは、仮想オブジェクトの回転角度を示すために使用され、０．０ｆは、仮想オブジェクトがヨー角に応じて回転する必要がないことを示すために使用される。
【０１５６】
以上のように、この実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法は、３つの地面張り付き点を取って一つの平面を構成し、平面の法線方向に基づき仮想オブジェクトの地面張り付き姿勢を決定することで、仮想オブジェクトがその平面に平行な方向に地面に張り付く。これにより、キャラクターが地面張り付き姿勢にあるときに体のほとんどの領域が宙に浮くという状況が減少し、算出されたピッチ角とロール角は現実の物理法則により適合する。
【０１５７】
なお、上記の図１から図１６のいずれかに記載の仮想環境における仮想オブジェクトの姿勢決定方法は、電子機器と通信ネットワークを介して接続するサーバに適用してもよい。本出願では、当該仮想環境における仮想オブジェクトの姿勢決定方法を実行する主体について、限定しない。
【０１５８】
図１８は、本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定方法のフローチャートである。この仮想キャラクターの姿勢決定方法を電子機器に適用する例について説明する。図１８に示すように、この姿勢決定方法は、次のステップを含む。
【０１５９】
ステップ１８０１：第１のユーザーインターフェイスを表示する。
【０１６０】
この第１のユーザーインターフェイスは、立位姿勢で仮想環境の地面にある仮想キャラクターを含む。
【０１６１】
ステップ１８０２：姿勢切替コマンドを受信する。
この姿勢切替コマンドは、立位姿勢から地面張り付き姿勢に切り替えるように仮想キャラクターに指示するために使用される。
【０１６２】
ステップ１８０３：地面に対する仮想キャラクターの法線方向に基づき、仮想キャラクターの地面張り付き姿勢を決定する。
【０１６３】
任意選択で、電子機器は、姿勢切替コマンドを受信した後、仮想キャラクターについて、仮想キャラクターの少なくとも一つのサンプリング点を決定し、少なくとも一つのサンプリング点及び地面に基づき、地面に対する仮想キャラクターの法線方向を決定する。
【０１６４】
なお、少なくとも一つのサンプリング点及び地面に基づき、地面に対する仮想キャラクターの法線方向を決定することは、
まず、少なくとも一つのサンプリング点に応じて衝突検出を行って地面張り付き点を取得し、地面張り付き点に基づき地面に対する仮想キャラクターの法線方向を決定することをさらに含む。
【０１６５】
上記法線方向の決定は、３つのケースに分けることもできる。
【０１６６】
第１、仮想キャラクターの一つのサンプリング点を決定し、一つのサンプリング点と地面に基づき、地面に対する仮想キャラクターの法線方向を決定する。
【０１６７】
任意選択で、仮想キャラクターの中心点をサンプリング点として決定し、サンプリング点を介して衝突検出を行って地面張り付き点を取得し、地面張り付き点を始点として地面に垂直な第１の垂直線に基づき、地面に対する仮想キャラクターの法線方向を決定してもよい。対応する技術的詳細については、図７に示す実施例を参照してもよい。
【０１６８】
第２、仮想キャラクターの２つのサンプリング点を決定し、２つのサンプリング点と地面に基づき、地面に対する仮想キャラクターの法線方向を決定する。
【０１６９】
仮想キャラクターの、仮想キャラクターが地面張り付き姿勢にあるときの上半分の点を表すための上半身サンプリング点と、仮想キャラクターが地面張り付き姿勢にあるときの下半分の点を表すための下半身サンプリング点とを決定し、上半身サンプリング点と下半身サンプリング点に応じて衝突検出を行って第１の地面張り付き点及び第２の地面張り付き点を取得し、第１の地面張り付き点と第２の地面張り付き点との接続線を決定し、接続線に垂直で、かつロール角が０である第２の垂直線を地面に対する仮想キャラクターの法線方向として決定する。対応する技術的詳細については、図１２に示す実施例を参照してもよい。
【０１７０】
第３、仮想キャラクターの３つのサンプリング点を決定し、３つのサンプリング点と地面に基づき地面に対する仮想キャラクターの法線方向を決定する。
【０１７１】
仮想キャラクターの、仮想キャラクターが地面張り付き姿勢にあるときの上半分の点を表すための前部サンプリング点と、仮想キャラクターが地面張り付き姿勢にあるときの下半分の点を表すための後部サンプリング点と、仮想キャラクターが地面張り付き姿勢にあるときの左側または右側の点を表すためのサイドサンプリング点とを決定し、前部サンプリング点、後部サンプリング点及びサイドサンプリング点に応じて衝突検出を行って第１の地面張り付き点、第２の地面張り付き点、及び第３の地面張り付き点を取得し、第１の地面張り付き点、第２の地面張り付き点、及び第３の地面張り付き点によって構成される平面を決定し、平面に垂直な第３の垂直線を地面に対する仮想キャラクターの法線方向として決定する。対応する技術的詳細については、図１４に示す実施例を参照してもよい。
【０１７２】
ステップ１８０４：第２のユーザーインターフェイスを表示する。
【０１７３】
任意選択で、この第２のユーザーインターフェイスには、地面張り付き姿勢で仮想環境の地面にある仮想キャラクターを含む。
【０１７４】
任意選択で、第２のユーザーインターフェイスには、前記地面張り付き姿勢で前記仮想環境の地面にある仮想キャラクターを含む。地面は、角度をなす第１の地面エリア及び第２の地面エリアを含み、仮想キャラクターの頭部が第１の地面エリアで宙に浮き、仮想キャラクターの足部が第２の地面エリアで宙に浮き、仮想キャラクターの腰部が第１の地面エリアと第２の地面エリアの境目で地面にはめ込まれる。
【０１７５】
例示的に、図１９を参照して、まず、電子機器は、第１のユーザーインターフェイス１９０１を表示し、この第１のユーザーインターフェイスには、立位姿勢で仮想環境の地面にある仮想キャラクター１９０２を含み、ユーザが姿勢切替ボタン１９０３に触れた後、電子機器は、姿勢切替コマンドを受信し、地面に対する仮想キャラクターの法線方向に基づき、仮想キャラクターの地面張り付き姿勢を決定する。電子機器は、第２のユーザーインターフェイス１９０４を表示し、この第２のユーザーインターフェイスには、地面張り付き姿勢で仮想環境の地面にある仮想キャラクター１９０５を含む。
【０１７６】
図２０は、本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定方法のフローチャートである。この仮想キャラクターの姿勢決定方法を電子機器に適用する例について説明する。図２０に示すように、この姿勢決定方法は、次のステップを含む。
【０１７７】
ステップ２００１：第３のユーザーインターフェイスを表示する。
【０１７８】
この第３のユーザーインターフェイスは、第１の地面張り付き姿勢で仮想環境における第１の地面位置にある仮想キャラクターを含む。
【０１７９】
ステップ２００２：移動コマンドを受信する。
【０１８０】
この移動コマンドは、第１の地面位置から移動するように仮想キャラクターに指示するために使用される。
【０１８１】
ステップ２００３：第２の地面に対する仮想キャラクターの法線方向に基づき、仮想キャラクターの第２の地面張り付き姿勢を決定する。
【０１８２】
任意選択で、電子機器は、移動コマンドを受信した後、仮想キャラクターの中心点に基づき、仮想キャラクターの少なくとも一つのサンプリング点を決定し、少なくとも一つのサンプリング点及び第２の地面位置に基づき、第２の地面位置に対する仮想キャラクターの法線方向を決定する。
【０１８３】
なお、少なくとも一つのサンプリング点及び第２の地面位置に基づき、第２の地面位置に対する仮想キャラクターの法線方向を決定することは、
まず、少なくとも一つのサンプリング点に応じて衝突検出を行って地面張り付き点を取得し、地面張り付き点に基づき第２の地面位置に対する仮想キャラクターの法線方向を決定することをさらに含む。
【０１８４】
上記法線方向の決定は、３つのケースに分けることもできる。
【０１８５】
第１、仮想キャラクターの一つのサンプリング点を決定し、一つのサンプリング点及び地面に基づき、地面に対する仮想キャラクターの法線方向を決定する。
【０１８６】
任意選択で、仮想キャラクターの中心点をサンプリング点として決定し、サンプリング点によって衝突検出を行って地面張り付き点を取得し、地面張り付き点を始点として地面に垂直な第１の垂直線に基づき、地面に対する仮想キャラクターの法線方向を決定すしてもよい。対応する技術的詳細については、図７に示す実施例を参照してもよい。
【０１８７】
第２、仮想キャラクターの２つのサンプリング点を決定し、２つのサンプリング点及び地面に基づき地面に対する仮想キャラクターの法線方向を決定する。
【０１８８】
仮想キャラクターの、仮想キャラクターが地面張り付き姿勢にあるときの上半分の点を表すための上半身サンプリング点と、仮想キャラクターが地面張り付き姿勢にあるときの下半分の点を表すための下半身サンプリング点とを決定し、上半身サンプリング点及び下半身サンプリング点に応じて衝突検出を行って第１の地面張り付き点及び第２の地面張り付き点を取得し、第１の地面張り付き点と第２の地面張り付き点との接続線を決定し、接続線に垂直で、かつロール角が０である第２の垂直線を地面に対する法線方向として決定する。対応する技術的詳細については、図１２に示す実施例を参照してもよい。
【０１８９】
第３、仮想キャラクターの３つのサンプリング点を決定し、３つのサンプリング点及び地面に基づき地面に対する仮想キャラクターの法線方向を決定する。
【０１９０】
仮想キャラクターの、仮想キャラクターが地面張り付き姿勢にあるときの上半分の点を表すための前部サンプリング点と、仮想キャラクターが地面張り付き姿勢にあるときの下半分の点を表すための後部サンプリング点と、仮想キャラクターが地面張り付き姿勢にあるときの左側または右側の点を表すためのサイドサンプリング点とを決定し、前部サンプリング点、後部サンプリング点及びサイドサンプリング点に応じて衝突検出を行って第１の地面張り付き点、第２の地面張り付き点、及び第３の地面張り付き点を取得し、第１の地面張り付き点、第２の地面張り付き点、及び第３の地面張り付き点によって構成される平面を決定し、平面に垂直な第３の垂直線を地面に対する仮想キャラクターの法線方向として決定する。対応する技術的詳細については、図１６に示す実施例を参照してもよい。
【０１９１】
ステップ２００４：第４のユーザーインターフェイスを表示する。
【０１９２】
この第４のユーザーインターフェイスは、第２の地面張り付き姿勢で仮想環境の第２の地面位置にある仮想キャラクターを含む。
【０１９３】
任意選択で、第２のユーザーインターフェイスは、地面張り付き姿勢で仮想環境の地面にある仮想キャラクターを含む。地面は、角度をなす第１の地面エリア及び第２の地面エリアを含み、仮想キャラクターの頭部が第１の地面エリアで宙に浮き、仮想キャラクターの足部が第２の地面エリアで宙に浮き、仮想キャラクターの腰部が第１の地面エリアと第２の地面エリアの境目で地面に埋め込まれる。
【０１９４】
例示的に、図２１を参照して、まず、電子機器は、第３のユーザーインターフェイス２１０１を表示し、この第３のユーザーインターフェイスには、第１の地面張り付き姿勢で仮想環境における第１の地面位置にある仮想オブジェクト２１０２を含み、ユーザが移動ボタン２１０３を触れた後、電子機器は、移動コマンドを受信して、第２の地面２１０４に対する仮想オブジェクトの法線方向に基づき、仮想オブジェクトの地面張り付き姿勢を決定する。電子機器は、第４のユーザーインターフェイス２１０５を表示し、この第４のユーザーインターフェイスには、第２の地面張り付き姿勢で仮想環境の第２の地面位置にある仮想オブジェクト２１０６を含む。
【０１９５】
図２２は、本出願一つの例示的な実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定装置の構造ブロック図である。この装置は、サンプリング点決定モジュール２２０１、法線決定モジュール２２０２、及び姿勢決定モジュール２２０３を含み、
サンプリング点決定モジュール２２０１は、仮想オブジェクトの少なくとも一つのサンプリング点を決定するために使用され、サンプリング点は、地面に対する衝突検出に使用される点であり、
法線決定モジュール２２０２は、少なくとも一つのサンプリング点及び仮想オブジェクトの位置する地面に基づき、地面に対する仮想オブジェクトの法線方向を決定するために使用され、
姿勢決定モジュール２２０３は、法線方向に基づき、仮想環境における仮想オブジェクトの地面張り付き姿勢を決定するために使用される。
【０１９６】
オプションの実施形態では、図２３に示すように、法線決定モジュール２２０２は、
サンプリング点から鉛直下方向で衝突検出を行って、仮想オブジェクトが地面に衝突する際の衝突点を地面張り付き点として決定するための検出ユニット２２１２と、
地面張り付き点に基づき、地面に対する仮想オブジェクトの法線方向を決定するための法線決定ユニット２２２２と、
を含む。
【０１９７】
オプションの実施形態では、サンプリング点は、仮想オブジェクトの中心点を含み、地面張り付き点は、中心点から衝突検出した後に得られた点であり、
法線決定ユニット２２２２は、地面張り付き点を始点として地面に垂直な第１の垂直線に基づき、地面に対する仮想オブジェクトの法線方向を決定するためにも使用される。
【０１９８】
オプションの実施形態では、サンプリング点決定モジュール２２０１は、仮想オブジェクトの中心点を、仮想オブジェクトのサンプリング点として決定するためにも使用される。
【０１９９】
オプションの実施形態では、サンプリング点決定モジュール２２０１は、ヨー角決定ユニット２２１１を含み、
ヨー角決定ユニット２２１１は、地面座標系のｘ軸に対する法線方向の第１のヨー角に基づき、仮想環境における仮想オブジェクトのピッチ角を決定するために使用され、
ヨー角決定ユニット２２１１は、地面座標系のｚ軸に対する法線方向の第２のヨー角に基づき、仮想環境における仮想オブジェクトのロール角を決定するためにも使用され、
なお、地面座標系は、仮想環境が配置されている世界座標系である。
【０２００】
オプションの実施形態では、サンプリング点は、仮想オブジェクトの地面張り付き姿勢での上半分の点を表すための前部サンプリング点と、仮想オブジェクトの地面張り付き姿勢での下半分の点を表すための後部サンプリング点を含み、
法線決定ユニット２２２２は、前部サンプリング点から衝突検出した後に得られた点である第１の地面張り付き点と、後部サンプリング点から衝突検出した得られた点である第２の地面張り付き点との間の接続線を決定するためにも使用され、
法線決定ユニット２２２２は、接続線に垂直で、かつロール角が０である第２の垂直線に基づき、地面に対する仮想オブジェクトの法線方向を決定するためにも使用される。
【０２０１】
オプションの実施形態では、サンプリング点決定モジュール２２０１は、仮想オブジェクトの中心点の前方の第１の距離にある点を、前部サンプリング点として決定するためにも使用され、
サンプリング点決定モジュール２２０１は、仮想オブジェクトの中心点の後方の第２の距離にある点を、後部サンプリング点として決定するためにも使用され、
サンプリング点決定モジュール２２０１は、前部サンプリング点及び後部サンプリング点を仮想オブジェクトのサンプリング点として決定するためにも使用される。
【０２０２】
オプションの実施形態では、姿勢決定モジュール２２０３は、地面座標系のｘ軸に対する法線方向の第１のヨー角に基づき、仮想環境における仮想オブジェクトのピッチ角を決定するためにも使用され、
なお、地面座標系は、仮想環境が配置されている世界座標系である。
【０２０３】
オプションの実施形態では、サンプリング点は、仮想オブジェクトの地面張り付き姿勢での上半分の点を表すための前部サンプリング点と、仮想オブジェクトの地面張り付き姿勢での下半分の点を表すための後部サンプリング点と、及び仮想オブジェクトの地面張り付き姿勢での左側または右側の点を表すためのサイドサンプリング点と、を含み、
法線決定ユニット２２２２は、前部サンプリング点から衝突検出した後に得られた点である第１の地面張り付き点と、後部サンプリング点から衝突検出した後に得られた点である第２の地面張り付き点と、サイドサンプリング点から衝突検出した後に得られた点である第３の地面張り付き点とが存在する平面を決定するためにも使用され、
法線決定ユニット２２２２は、平面に垂直で上向きの第３の垂直線に基づき、地面に対する仮想オブジェクトの法線方向を決定するためにも使用される。
【０２０４】
オプションの実施形態では、サンプリング点決定モジュール２２０１は、仮想オブジェクトの中心点の前方の第１の距離にある点を、前部サンプリング点として決定するためにも使用され、
サンプリング点決定モジュール２２０１は、仮想オブジェクトの中心点の後方の第２の距離にある点を、後部サンプリング点として決定するためにも使用され、
サンプリング点決定モジュール２２０１は、仮想オブジェクトの中心点の左側の第３の距離にある点または仮想オブジェクトの中心点の右側の第４の距離にある点を、サイドサンプリング点として決定するためにも使用され、
サンプリング点決定モジュール２２０１は、前部サンプリング点と、後部サンプリング点と、サイドサンプリング点とを、仮想オブジェクトのサンプリング点として決定するためにも使用される。
【０２０５】
オプションの実施形態では、姿勢決定モジュール２２０３は、地面座標系のｘ軸に対する法線方向の第１のヨー角に基づき、仮想環境における仮想オブジェクトのピッチ角を決定するためにも使用され、
姿勢決定モジュール２２０３は、地面座標系のｚ軸に対する法線方向の第２のヨー角に基づき、仮想環境における仮想オブジェクトのロール角を決定するためにも使用され、
なお、地面座標系は、仮想環境が配置されている世界座標系である。
【０２０６】
オプションの実施形態では、地面は、勾配のあるエリアと、曲面エリアと、陥凹エリアと、隆起エリアとのうちの少なくとも一つを含む。
【０２０７】
図２４は、本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定装置の構造ブロック図である。この装置は、第１の表示モジュール２４０１、第１の受信モジュール２４０２及び第１の決定モジュール２４０３を含み、
第１の表示モジュール２４０１は、立位姿勢で仮想環境の地面にある仮想キャラクターを含む第１のユーザーインターフェイスを表示するために使用され、
第１の受信モジュール２４０２は、立位姿勢から地面張り付き姿勢に切り替えるように仮想キャラクターに指示するための姿勢切替コマンドを受信するために使用され、
第１の決定モジュール２４０３は、地面に対する仮想キャラクターの法線方向に基づき、仮想キャラクターの地面張り付き姿勢を決定するために使用され、
第１の表示モジュール２４０１は、地面張り付き姿勢で仮想環境の地面にある仮想キャラクターを含む第２のユーザーインターフェイスを表示するためにも使用される。
【０２０８】
オプションの実施形態では、第１の決定モジュール２４０３は、姿勢切替コマンドを受信した後、仮想キャラクターの中心点に基づき、仮想キャラクターの少なくとも一つのサンプリング点を決定するためにも使用され、サンプリング点は、地面に対する衝突検出に使用される点であり、
第１の決定モジュール２４０３は、少なくとも一つのサンプリング点及び地面に基づき、地面に対する仮想キャラクターの法線方向を決定するためにも使用される。
【０２０９】
図２５は本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定装置である。この装置は、第２の表示モジュール２５０１、第２の受信モジュール２５０２及び第２の決定モジュール２５０３を含み、
第２の表示モジュール２５０１は、第１の地面張り付き姿勢で仮想環境の第１の地面位置にある仮想キャラクターを含む第３のユーザーインターフェイスを表示するために使用され、
第２の受信モジュール２５０２は、第１の地面位置から移動するように仮想キャラクターに指示するための移動コマンドを受信するために使用され、
第２の決定モジュール２５０３は、第２の地面位置に対する仮想キャラクターの法線方向に基づき、仮想キャラクターの第２の地面張り付き姿勢を決定するために使用され、
第２の表示モジュール２５０１は、第２の地面張り付き姿勢で仮想環境の第２の地面位置にある仮想キャラクターを含む第４のユーザーインターフェイスを表示するためにも使用される。
【０２１０】
オプションの実施形態では、第２の決定モジュール２５０３は、移動コマンドを受信した後、仮想キャラクターの中心点に基づき、仮想キャラクターの少なくとも一つのサンプリング点を決定するためにも使用され、サンプリング点は、地面に対する衝突検出に使用される点であり、
第２の決定モジュール２５０３は、少なくとも一つのサンプリング点及び第２の地面位置に基づき、第２の地面位置に対する仮想キャラクターの法線方向を決定するためにも使用される。
【０２１１】
図２６は、本出願の他の例示的な実施例によって提供される仮想環境における仮想キャラクターの姿勢決定装置である。この装置は、第３の表示モジュール２６０１と第３の受信モジュール２６０２を含み、
第３の表示モジュール２６０１は、立位姿勢で仮想環境の地面にある仮想キャラクターを含む第１のユーザーインターフェイスを表示するために使用され、
第３の受信モジュール２６０２は、立位姿勢から地面張り付き姿勢に切り替えるように仮想キャラクターに指示するための姿勢切替コマンドを受信するために使用され、
第３の表示モジュール２６０１は、地面張り付き姿勢で仮想環境の地面にある仮想キャラクターを含む第２のユーザーインターフェイスを表示するためにも使用され、地面は、角度をなす第１の地面エリア及び第２の地面エリアを含み、仮想キャラクターの頭部が第１の地面エリアで宙に浮き、仮想キャラクターの足部が第２の地面エリアで宙に浮き、仮想キャラクターの腰部が第１の地面エリアと第２の地面エリアの境目で地面に埋め込まれる。
【０２１２】
オプションの実施形態では、図２７に示すように、この装置は、
仮想キャラクターの中心点に基づき、仮想キャラクターの上半身サンプリング点及び下半身サンプリング点を決定するための第３の決定モジュール２６０３をさらに含み、
第３の決定モジュール２６０３は、上半身サンプリング点から衝突検出した後に得られた第１の地面エリアにある点である第１の地面張り付き点と、下半身サンプリング点から衝突検出した後に得られた第２の地面エリアにある点である第２の地面張り付き点との接続線を決定するためにも使用される。
【０２１３】
図２８は、本出願の一つの例示的な実施例によって提供される電子機器２８００の構造ブロック図を示している。この電子機器２８００は、スマートフォン、タブレットコンピュータ、ＭＰ３プレーヤー（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ＩＩＩ、動態イメージエキスパート圧縮標準オーディオレイヤー３）、ＭＰ４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ＩＶ、動態イメージエキスパート圧縮標準オーディオレイヤー４）プレーヤー、ノートパソコン或いは卓上型コンピュータであり得る。電子機器２８００は、ユーザ機器、携帯電子機器、ラップトップ電子機器、卓上型電子機器などの他の名前で呼ばれることもある。
【０２１４】
一般に、電子機器２８００は、プロセッサ２８０１及びメモリ２８０２を含む。
プロセッサ２８０１は、４コアプロセッサ、８コアプロセッサなどの１つまたは複数の処理コアを含むことができる。プロセッサ２８０１は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、デジタル信号処理）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ、フィールドプログラマブルゲートアレイ）、ＰＬＡ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ、プログラマブルロジックアレイ）の少なくとも１つのハードウェアの形で実現できる。プロセッサ２８０１は、メインプロセッサ及びコプロセッサを含むことができる。メインプロセッサは、ウェイクアップ状態でのデータを処理するためのプロセッサであり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理ユニット）とも呼ばれる。コプロセッサは、スタンバイ状態でのデータを処理するための低電力プロセッサである。いくつかの実施例では、プロセッサ２８０１は、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、画像プロセッサ）と統合してもよく、ＧＰＵは、ディスプレイスクリーンに表示される必要があるコンテンツをレンダリング及び描画するために使用される。いくつかの実施例では、プロセッサ２８０１は、ＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ、人工知能）プロセッサをさらに含むことができる。このＡＩプロセッサは、機械学習に関するコンピューティング操作を処理するために使用される。
【０２１５】
メモリ２８０２は、非一時的であり得る１つまたは複数のコンピュータ可読記憶媒体を含むことができる。メモリ２８０２は、高速ランダムアクセスメモリ、及び１つまたは複数の磁気ディスク記憶装置、フラッシュメモリ記憶装置のような不揮発性メモリも含むことができる。いくつかの実施例では、メモリ２８０２のうちの非一時的コンピュータ可読記憶媒体は、本出願における方法実施例によって提供される仮想環境における仮想オブジェクトの姿勢決定方法を実現するようにプロセッサ２８０１によって実行される少なくとも一つのコマンドを記憶するために使用される。
【０２１６】
いくつかの実施例では、電子機器２８００は、オプションとして周辺機器インターフェース２８０３及び少なくとも一つの周辺機器をさらに含んでもよい。プロセッサ２８０１と、メモリ２８０２と、周辺機器インターフェース２８０３とは、バスまたは信号線によって接続することができる。各周辺機器は、バス、信号線または回路基板によって周辺機器インターフェース２８０３に接続することができる。具体的には、周辺機器は、無線周波数回路２８０４と、タッチディスプレイ２８０５と、カメラ２８０６と、オーディオ回路２８０７と、位置決めコンポーネント２８０８と、電源２８０９とのうちの少なくとも１つを含む。
【０２１７】
周辺機器インターフェース２８０３は、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ、入力／出力）に関する少なくとも一つの周辺機器をプロセッサ２８０１及びメモリ２８０２に接続するために使用されることができる。いくつかの実施例では、プロセッサ２８０１、メモリ２８０２及び周辺機器インターフェース２８０３は、同じチップまたは回路基板に集積される。いくつかの別の実施例では、プロセッサ２８０１、メモリ２８０２及び周辺機器インターフェース２８０３の任意の一つまたは二つは、別個のチップまたは回路基板で実現されることができ、この実施例では、これを限定しない。
【０２１８】
無線周波数回路２８０４は、電磁信号とも呼ばれるＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ、無線周波数）信号を送受信するために使用される。無線周波数回路２８０４は、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。無線周波数回路２８０４は、電気信号を電磁信号に変換して送信するか、または受信した電磁信号を電気信号に変換する。任意選択で、無線周波数回路２８０４は、アンテナシステム、ＲＦトランシーバ、１つまたは複数の増幅器、チューナ、発振器、デジタル信号プロセッサ、コーデックチップセット、ユーザ認識モジュールカードなどを含む。無線周波数回路２８０４は、少なくとも１つの無線通信プロトコルを介して他の電子機器と通信することができる。この無線通信プロトコルには、ワールドワイドウェブ、メトロポリタンエリアネットワーク、イントラネット、さまざまな世代の移動通信ネットワーク（２Ｇ、３Ｇ、４Ｇ及び５Ｇ）、無線ＬＡＮ及び／又はＷｉＦｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、ワイヤレスフィデリティ）ネットワークが含まれるが、これらに限定されない。いくつかの実施例では、無線周波数回路２８０４は、ＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ、近距離無線通信）に関する回路を含んでもよく、本出願では、これを限定しない。
【０２１９】
ディスプレイスクリーン２８０５は、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ、ユーザーインターフェイス）を表示するために使用される。このＵＩには、グラフィック、テキスト、アイコン、ビデオ、及びこれらの任意の組み合わせを含むことができる。ディスプレイスクリーン２８０５がタッチディスプレイである場合、ディスプレイスクリーン２８０５は、ディスプレイスクリーン２８０５の表面又は表面の上方におけるタッチ信号を収集する能力をさらに有する。このタッチ信号は、制御信号としてプロセッサ２８０１に入力されて処理されることができる。このとき、ディスプレイスクリーン２８０５は、ソフトボタン及び／又はソフトキーボードとも呼ばれる仮想ボタン及び／又は仮想キーボードを提供するために使用されることもできる。いくつかの実施例では、ディスプレイスクリーン２８０５は、電子機器２８００のフロントパネルに設置される一つがあってもよい。他のいくつかの実施例では、ディスプレイスクリーン２８０５は、電子機器２８００の異なる表面にそれぞれに設置されるか、または折り畳みに設計される、少なくとも二つがあってもよい。さらに他のいくつかの実施例では、ディスプレイスクリーン２８０５は、電子機器２８００の屈曲表面または折り畳み面に設置される、可撓性ディスプレイスクリーンであってもよい。また、ディスプレイスクリーン２８０５は、非矩形の不規則な形状、すなわち、特殊形状のスクリーンとして設置することもできる。ディスプレイスクリーン２８０５は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ、液晶ディスプレイ）、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ−Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ、有機発光ダイオード）などの材料で作ることができる。
【０２２０】
カメラコンポーネント２８０６は、画像またはビデオを収集するために使用される。任意選択で、カメラコンポーネント２８０６は、フロントカメラとリアカメラを含む。一般に、フロントカメラは電子機器のフロントパネルに設置され、リアカメラは電子機器の背面に設置される。いくつかの実施例では、リアカメラは、少なくとも２つあり、それぞれメインカメラ、被写界深度カメラ、広角カメラ、望遠カメラのいずれかであり、メインカメラと被写界深度カメラの融合による背景ぼかし機能、メインカメラと広角カメラの融合によるパノラマ撮影及びＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ、仮想現実）撮影機能または他のフュージョン撮影機能を実現する。いくつかの実施例では、カメラコンポーネント２８０６は、フラッシュをさらに含んでもよい。フラッシュは、単色温度フラッシュであってもよく、二色温度フラッシュであってもよい。二色温度フラッシュとは、暖かい光のフラッシュと冷たい光のフラッシュの組み合わせであり、さまざまな色温度での光の補正に使用されることができる。
【０２２１】
オーディオ回路２８０７は、マイクロフォン及びスピーカーを含むことができる。マイクロフォンは、ユーザ及び環境の音波を収集し、音波を電気信号に変換してプロセッサ２８０１に入力して処理するか、無線周波数回路２８０４に入力して音声通信を実現するために使用される。ステレオ収集またはノイズ低減の目的で、電子機器２８００の異なる部分にそれぞれ配置される複数のマイクロフォンがあってもよい。マイクロフォンは、アレイマイクロフォンまたは無指向性収集型マイクロフォンであってもよい。スピーカーは、プロセッサ２８０１または無線周波数回路２８０４からの電気信号を音波に変換するために使用される。スピーカーは、従来の薄膜スピーカーであってもよく、圧電セラミックススピーカーであってもよい。スピーカーは、圧電セラミックススピーカーである場合、電気信号を人間に聞こえる音波に変換するだけでなく、距離測定などの目的で電気信号を人間に聞こえない音波に変換することもできる。いくつかの実施例では、オーディオ回路２８０７は、ヘッドフォンジャックも含むことができる。
【０２２２】
位置決めコンポーネント２８０８は、ナビゲーションまたはＬＢＳ（Ｌｏｃａｔｉｏｎ  Ｂａｓｅｄ  Ｓｅｒｖｉｃｅ、位置に基づくサービス）を実現するように、電子機器２８００の現在の地理位置を位置決めるために使用される。位置決めコンポーネント２８０８は、米国のＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ、全地球測位システム）、中国の北斗システム、またはロシアのガリレオシステムに基づく位置決めコンポーネントであってもよい。
【０２２３】
電源２８０９は、電子機器２８００における各コンポーネントに電力を供給するために使用される。電源２８０９は、交流電力、直流電力、一次電池または充電式電池であってもよい。電源２８０９が充電式電池である場合、この充電式電池は、有線充電式電池または無線充電式電池であってもよい。有線充電式電池は、有線回線を介して充電される電池であり、無線充電式電池は無線コイルを介して充電される電池である。この充電式電池は、高速充電技術をサポートするためにも使用できる。
【０２２４】
いくつかの実施例では、電子機器２８００は、１つまたは複数のセンサ２８１０も含む。これらの１つまたは複数のセンサ２８１０は、加速度センサ２８１１、ジャイロセンサ２８１２、圧力センサ２８１３、指紋センサ２８１４、光学センサ２８１５、及び近接センサ２８１６が含まれるが、これらに限定されない。
【０２２５】
加速度センサ２８１１は、電子機器２８００によって確立された座標系の３つの座標軸上の加速度の大きさを検出することができる。例えば、加速度センサ２８１１は、３つの座標軸における重力加速度の成分を検出するために使用できる。プロセッサ２８０１は、加速度センサ２８１１により収集された重力加速度信号に基づき、タッチディスプレイ２８０５を制御して、横長ビューまたは縦長ビューでユーザーインターフェイスを表示することができる。加速度センサ２８１１は、ゲームまたはユーザの動きのデータを収集するためにも使用できる。
【０２２６】
ジャイロセンサ２８１２は、電子機器２８００の身体方向及び回転角度を検出することができる。ジャイロセンサ２８１２は、加速度センサ２８１１と協働して、ユーザによる電子機器２８００への３Ｄ動作を収集してもよい。プロセッサ２８０１は、ジャイロセンサ２８１２により収集されたデータに基づき、モーションセンシング（例えば、ユーザの傾き操作に基づきＵＩを変更する）、撮影時の画像安定、ゲーム制御及び慣性ナビゲーションなどの機能を実現できる。
【０２２７】
圧力センサ２８１３は、電子機器２８００のサイドフレーム及び／又はタッチディスプレイ２８０５の下層に設置されてもよい。圧力センサ２８１３が電子機器２８００のサイドフレームに設置されている場合、ユーザによる電子機器２８００への把持信号を検出することができ、プロセッサ２８０１は、圧力センサ２８１３により収集された把持信号に基づき、左右の手認識または迅速な操作を行うことができる。圧力センサ２８１３がタッチディスプレイ２８０５の下層に設置される場合、プロセッサ２８０１は、タッチディスプレイ２８０５に対するユーザの圧力操作に基づき、ＵＩインターフェイスにおける操作性コントロールを制御する。操作性コントロールは、ボタンコントロール、スクロールバーコントロール、アイコンコントロール、メニューコントロールの少なくとも１つを含む。
【０２２８】
指紋センサ２８１４は、ユーザの指紋を収集するために使用され、プロセッサ２８０１が、指紋センサ２８１４により収集された指紋に基づいてユーザの身元を認識するか、または、指紋センサ２８１４が、収集された指紋に基づいてユーザの身元を認識するために使用される。ユーザの身元が信頼できる身元として認識される場合、プロセッサ２８０１は、画面のロック解除、暗号化された情報の表示、ソフトウェアのダウンロード、支払い及び設定の変更など、関連する機密操作を実行することをユーザーに許可する。指紋センサ２８１４は、電子機器２８００の正面、背面または側面に設置されてもよい。物理的なボタンまたは製造業者のロゴが電子機器２８００に設置されている場合、指紋センサ２８１４は、物理的なボタンまたは製造業者のロゴと統合されることができる。
【０２２９】
光学センサ２８１５は、環境光強度を収集するために使用される。一実施例では、プロセッサ２８０１は、光学センサ２８１５により収集された環境光強度に応じて、タッチディスプレイ２８０５のディスプレイ輝度を制御してもよい。具体的には、環境光強度が高い場合、タッチディスプレイ２８０５の表示輝度を上げ、環境光強度が低い場合、タッチディスプレイ２８０５の表示輝度を下げる。別の実施例では、プロセッサ２８０１は、光学センサ２８１５により収集された環境光強度に応じて、カメラコンポーネント２８０６の撮影パラメータを動的に調整することができる。
【０２３０】
距離センサとも呼ばれる近接センサ２８１６は、通常、電子機器２８００のフロントパネルに設置される。近接センサ２８１６は、ユーザと電子機器２８００の正面との間の距離を収集するために使用される。一実施例では、近接センサ２８１６がユーザと電子機器２８００の正面との間の距離が徐々に小さくなっていることを検出すると、プロセッサ２８０１はタッチディスプレイ２８０５を制御してスクリーンオン状態からスクリーンオフ状態に切り替える。近接センサ２８１６がユーザと電子機器２８００の正面の間の距離が徐々に大きくなっていることを検出すると、プロセッサ２８０１はタッチディスプレイ２８０５を制御してスクリーンオフ状態からスクリーンオン状態に切り替える。
【０２３１】
当業者は、図２８に示す構造が電子機器２８００に対する制限を構成せず、図示よりも多いまたは少ないコンポーネントを含むか、いくつかのコンポーネントを組み合わせるか、または異なるコンポーネント配置を使用することを理解できる。
【０２３２】
当業者は、上記実施例を実現するためのステップの全てまたは一部は、ハードウェアによって完了されてもよく、関連するハードウェアを命令するプログラムによって完了されてもよいことを理解できる。前記のプログラムは、読み取り専用メモリ、磁気ディスクまたは光ディスクなどであり得るコンピュータ可読記憶媒体に記憶されてもよい。
【０２３３】
上記は、本出願の好ましい実施例に過ぎず、本出願を限定することを意図していない。本出願の精神及び原理の範囲内で行われた任意の変更、同等の置換、改良などは、いずれも本出願の保護範囲に含まれるべきである。
【符号の説明】
【０２３４】
３００ 電子機器
３２０ オペレーティングシステム
３２２ アプリケーションプログラム
４００ コンピュータシステム
４２０ 第１のデバイス
４４０ サーバ
４６０ 第２のデバイス
７１   サンプリング点
７２   点
７３   傾斜面
７４   法線
９５   円弧面
９６   点
９７   接平面
９８   法線
１１１ ユーザーインターフェイス
１３１ 中心点
１３４ 前部サンプリング点
１３５ 後部サンプリング点
１３６ 法線
１４１ ユーザーインターフェイス
１４２ 中心点
１４３ 前部サンプリング点
１４４ 後部サンプリング点
１４５ 点
１４６ 点
１５１ ユーザーインターフェイス
【図１】
2021512413.tif 000003
【図２】
2021512413.tif 000004
【図３】
2021512413.tif 000005
【図４】
2021512413.tif 000006
【図５】
2021512413.tif 000007
【図６】
2021512413.tif 000008
【図７】
2021512413.tif 000009
【図８】
2021512413.tif 000010
【図９】
2021512413.tif 000011
【図１０】
2021512413.tif 000012
【図１１】
2021512413.tif 000013
【図１２】
2021512413.tif 000014
【図１３】
2021512413.tif 000015
【図１４】
2021512413.tif 000016
【図１５】
2021512413.tif 000017
【図１６】
2021512413.tif 000018
【図１７】
2021512413.tif 000019
【図１８】
2021512413.tif 000020
【図１９】
2021512413.tif 000021
【図２０】
2021512413.tif 000022
【図２１】
2021512413.tif 000023
【図２２】
2021512413.tif 000024
【図２３】
2021512413.tif 000025
【図２４】
2021512413.tif 000026
【図２５】
2021512413.tif 000027
【図２６】
2021512413.tif 000028
【図２７】
2021512413.tif 000029
【図２８】
2021512413.tif 000030
【国際調査報告】
2021512413.tif 000031
2021512413.tif 000032
2021512413.tif 000033
2021512413.tif 000034