まず、本発明の実施例に関する用語を紹介する。
仮想環境:アプリケーションプログラムが端末で実行されている際に表示(又は提供)される仮想環境である。該仮想環境は、実世界に対するシミュレーション環境であってもよいし、半シミュレーション及び半架空の環境であってもよいし、純粋な架空の環境であってもよい。仮想環境は、2次元仮想環境、2.5次元仮想環境、及び3次元仮想環境のうちの何れかであってもよいが、本発明はこれらに限定されない。以下の実施例では、仮想環境が3次元仮想環境であることを一例にして説明する。
仮想オブジェクト:仮想環境における移動可能なオブジェクトを意味する。該移動可能なオブジェクトは、仮想キャラクタ、仮想動物、漫画又はアニメーションのキャラクタなどであってもよく、例えば、3次元仮想環境に表示されるキャラクタ、動物である。好ましくは、仮想オブジェクトは、スケルタルアニメーション技術に基づいて作成された3次元立体モデルである。各仮想オブジェクトは、3次元仮想環境において独自の形状及び体積を持ち、3次元仮想環境において空間の一部を占める。
シューティングゲーム:一人称シューティングゲーム及び三人称シューティングゲームを含む。一人称シューティングゲームとは、ユーザが一人称視点でプレイできるシューティングゲームを意味し、ゲーム内の仮想環境の画面は、第1の仮想オブジェクトの視点で仮想環境を観察する画面である。三人称シューティングゲームとは、三人称視点でプレイするシューティングゲームを意味し、ゲーム内の仮想環境の画面は、三人称視点(例えば、第1の仮想オブジェクトの頭部の後方に位置する)で仮想環境を観察する画面である。
ゲームでは、少なくとも2つの仮想オブジェクトが仮想環境でシングルラウンドの対戦モードのゲームを行う。仮想オブジェクトは、仮想環境で生きるために他の仮想オブジェクトにより行われる攻撃や仮想環境にある危険(例えば、毒ガス、沼地など)を回避する。仮想環境内の仮想オブジェクトの生命値がゼロになった場合、仮想環境内の仮想オブジェクトの生命が終了し、最終的に仮想環境内で生きる仮想オブジェクトが勝者となる。好ましくは、該対戦は、最初のクライアントが対戦に参加した時点を開始時点とし、最後のクライアントが対戦を離れる時点を終了時点とし、各クライアントが仮想環境内の1つ又は複数の仮想オブジェクトを制御できる。好ましくは、該対戦の競技モードは、シングルプレイヤの対戦モード、ダブルプレイヤの小規模チーム対戦モード、又はマルチプレイヤの大規模チーム対戦モードを含んでもよいが、本発明の実施例は対戦モードに限定されない。
仮想アイテム:仮想オブジェクトが仮想環境で使用できるアイテムを意味し、他の仮想オブジェクトの属性値を変更できる仮想武器、弾丸などの補給アイテム、盾、鎧、装甲車両などの防御アイテム、仮想ビーム、仮想衝撃波などの仮想オブジェクトがスキルを発動する際に手により表示される仮想アイテム、及び仮想オブジェクトの手、足などの身体の一部を含む。ここで、他の仮想オブジェクトの属性値を変更できる仮想アイテムは、拳銃、ライフル、狙撃銃などの長距離の仮想アイテム、短剣、ナイフ、剣、ロープなどの短距離の仮想アイテム、及び飛行斧、飛行ナイフ、手榴弾、閃光弾、発煙弾などの投擲系の仮想アイテムを含む。
本発明に係る方法は、仮想現実アプリケーションプログラム、3次元地図プログラム、軍事シミュレーションプログラム、一人称/三人称シューティングゲーム、マルチプレイヤオンラインバトルアリーナ(Multiplayer Online Battle Arena:MOBA)ゲームなどに適用されてもよい。以下の実施例では、ゲーム内のアプリケーションを一例として説明する。
仮想環境に基づくゲームは、ゲーム世界の1つ又は複数の地図により構成される場合が多い。ゲーム内の仮想環境は、現実世界のシーンをシミュレートする。ユーザは、ゲーム内の仮想オブジェクトが仮想環境内で歩き、走り、跳び、射撃、格闘、運転、使用される仮想アイテムの切り替え、仮想アイテムを使用して他の仮想オブジェクトなどにダメージを与える動作を行うように操作する。インタラクティブ性が高いゲームでは、複数のユーザがオンラインで競技のゲームを行うためにチームを組むことができる。
関連技術では、仮想環境において単一の体力バーのみを使用して仮想オブジェクトの体力消費状況を表示し、単一の体力値に基づいて仮想オブジェクトが対応する動作を実行するように制御する。図1に示すように、仮想環境内には体力表示アセンブリ101のみが表示されており、プレイヤが仮想環境内の仮想オブジェクトが走るように制御する場合、対応する体力表示アセンブリ101の体力値が減少し、体力表示アセンブリ101の体力値が0になる場合、仮想オブジェクトは走り続けることができず(歩くことしかできず)、体力の回復を待つ必要がある。このため、関連技術では、仮想オブジェクトの体力値の表示形式が単一であり、仮想オブジェクト全体の体力消費のみをシミュレートする。即ち、体力消費の表示形式が単一であり、仮想オブジェクトの体力消費の写実感が低く、対戦ゲームの現実感へ影響を与えてしまう。
関連技術における体力消費の表示形式が単一であるという問題を解決するために、本発明の実施例は、複数の体力表示アセンブリを導入し、複数の体力表示アセンブリにより仮想オブジェクトの異なる身体部位の体力消費状態を示す。例えば、仮想オブジェクトが射撃している際に、射撃動作を実行するための関連する身体部位の体力が変化するため、仮想オブジェクトが動作を実行する際の体力のコストを多様化することができる。また、異なる身体部位の残り体力値に基づいて仮想オブジェクトの動作の実行を制御することで、プレイヤの操作に対する体力消費の制限を増加させ、ゲームの写実感を向上させることができる。
図2は、本発明の1つの例示的な実施例に係る実装環境の概略図である。該実施環境は、第1の端末210、サーバ220及び第2の端末230を含む。
第1の端末210は、仮想環境をサポートするアプリケーションプログラム211を実行している。該アプリケーションプログラム211は、マルチプレイヤのオンライン対戦プログラムであってもよい。第1の端末がアプリケーションプログラム211を実行する際に、第1の端末210のスクリーンにアプリケーションプログラム211のユーザインターフェースが表示される。該アプリケーションプログラム211は、軍事シミュレーションプログラム、MOBAゲーム、バトルロワイヤルシューティングゲーム、シミュレーション戦略ゲーム(Simulation Game:SLG)の何れかであってもよい。本実施例では、該アプリケーションプログラム211がFPSゲームであることを一例として説明する。第1の端末210は、第1のユーザ212により使用される端末であり、第1のユーザ212は、第1の端末210を使用して、仮想環境における第1の仮想オブジェクトが動作を行うように制御する。第1の仮想オブジェクトは、第1のユーザ212の主制御仮想オブジェクトと称されてもよい。第1の仮想オブジェクトの動作は、体の姿勢の調整、這い、歩き、走り、乗り、飛び、跳び、運転、拾い、射撃、攻撃、投擲、スキルの発動のうちの少なくとも1つを含むが、これらに限定されない。例えば、第1の仮想オブジェクトは、例えばシミュレートされたキャラクタ又はアニメーションのキャラクタなどの第1の仮想キャラクタである。
第2の端末230は、仮想環境をサポートするアプリケーションプログラム231を実行している。該アプリケーションプログラム231は、マルチプレイヤのオンライン対戦プログラムであってもよい。第2の端末230がアプリケーションプログラム231を実行する際に、第2の端末230のスクリーンにアプリケーションプログラム231のユーザインターフェースが表示される。該アプリケーションプログラム231は、軍事シミュレーションプログラム、MOBAゲーム、バトルロワイヤルシューティングゲーム、SLGゲームの何れかであってもよい。本実施例では、該アプリケーションプログラム231がFPSゲームであることを一例として説明する。第2の端末230は、第2のユーザ232により使用される端末であり、第2のユーザ232は、第2の端末230を使用して、仮想環境における第2の仮想オブジェクトが動作を行うように制御する。第2の仮想オブジェクトは、第2のユーザ232の主制御仮想オブジェクトと称されてもよい。例えば、第2の仮想オブジェクトは、例えばシミュレートされたキャラクタ又はアニメーションのキャラクタなどの第2の仮想キャラクタである。
好ましくは、第1の仮想オブジェクトと第2の仮想オブジェクトは、同一の仮想世界にある。好ましくは、第1の仮想オブジェクトと第2の仮想オブジェクトは、同一の陣営、同一のチーム、同一の組織に属し、友人関係を持ってもよく、或いは一時的な通信権限を持ってもよい。好ましくは、第1の仮想オブジェクトと第2の仮想オブジェクトは、異なる陣営、異なるチーム、異なる組織に属し、或いは敵対関係を有してもよい。
好ましくは、第1の端末210及び第2の端末230に実行されるアプリケーションプログラムは同一であり、或いは、2つの端末に実行されるアプリケーションプログラムは、異なるオペレーティングシステムプラットフォーム(Android又はIOS)での同一のタイプのアプリケーションプログラムである。第1の端末210は、一般に、複数の端末のうちの1つを意味してもよく、第2の端末230は、一般に、複数の端末のうちの1つを意味してもよく、本実施例では、単に第1の端末210及び第2の端末230を一例として説明する。第1の端末210及び第2の端末230のデバイスタイプは、同一であってもよいし、異なってもよい。該デバイスタイプは、スマートフォン、タブレットコンピュータ、電子書籍リーダ、MP3プレイヤ、MP4プレイヤ、ラップトップコンピュータ及びデスクトップコンピュータのうちの少なくとも1つを含む。
図2には2つの端末のみが示されているが、異なる実施例では、サーバ220にアクセスできる複数の他の端末が存在する。好ましくは、開発者に対応する1つ又は複数の端末がさらに存在し、該端末には仮想環境をサポートするアプリケーションプログラムの開発及び編集のプラットフォームがインストールされ、開発者は、該端末でアプリケーションプログラムを編集して更新し、更新後のアプリケーションプログラムのインストールパッケージを有線又は無線のネットワークを介してサーバ220に伝送することができる。第1の端末210及び第2の端末230は、サーバ220からアプリケーションプログラムのインストールパッケージをダウンロードしてアプリケーションを更新することができる。
第1の端末210、第2の端末230及び他の端末は、無線ネットワーク又は有線ネットワークを介してサーバ220に接続される。
サーバ220は、1つのサーバ、複数のサーバにより構成されたサーバクラスタ、クラウドコンピューティングプラットフォーム、及び仮想化センターのうちの少なくとも1つを含む。サーバ220は、3次元仮想環境をサポートするアプリケーションにバックグラウンドのサービスを提供するために使用される。好ましくは、サーバ220は一次的なコンピューティング作業を行い、端末は二次的なコンピューティング作業を行い、或いは、サーバ220は二次的なコンピューティング作業を行い、端末は一次的なコンピューティング作業を行い、或いは、サーバ220及び端末は、協調コンピューティングを行うために分散型のコンピューティングアーキテクチャを採用する。
1つの例示的な例では、サーバ220は、メモリ221、プロセッサ222、ユーザアカウントデータベース223、対戦サービスモジュール224、及びユーザ指向の入力/出力インターフェース(Input/Output Interface:I/Oインターフェース)225を含む。ここで、プロセッサ222は、サーバ220に記憶された命令をロードし、ユーザアカウントデータベース223及び対戦サービスモジュール224内のデータを処理するために使用される。ユーザアカウントデータベース223は、第1の端末210、第2の端末230及び他の端末により使用されるユーザアカウントのデータ、例えばユーザアカウントのプロファイル画像、ユーザアカウントのニックネーム、ユーザアカウントの戦闘力指数、ユーザアカウントが所在するサービスエリアを記憶するために使用される。対戦サービスモジュール224は、ユーザが例えば1対1の対戦、3対3の対戦、5対5の対戦などの対戦を行うための複数の対戦ルームを提供するために使用される。ユーザ指向のI/Oインターフェース225は、無線ネットワーク又は有線ネットワークを介して第1の端末210及び/又は第2の端末230と通信を確立してデータを交換するために使用される。
図3は、本発明の1つの例示的な実施例に係る仮想オブジェクトの制御方法のフローチャートである。本実施例では、該方法が図2に示す実施環境における第1の端末210、第2の端末230、又は該実施環境における他の端末に適用されることを一例として説明する。該方法は、以下のステップを含む。
ステップ301:仮想オブジェクトに対応する少なくとも2つの体力表示アセンブリを表示する。体力表示アセンブリは、対応する身体部位の体力消費状況を表示するために使用され、異なる体力表示アセンブリは、異なる身体部位に対応する。
本発明の実施例の方法は仮想環境に適用され、仮想環境は第1の仮想オブジェクト及び第2の仮想オブジェクトを含み、第1の仮想オブジェクト及び第2の仮想オブジェクトは異なる陣営に属する。1つの可能な態様では、端末は、仮想環境画面により仮想環境を表示する。好ましくは、仮想環境画面は、仮想オブジェクトの視点で仮想環境を観察する画面である。視点(視角)とは、仮想環境において仮想オブジェクトの一人称視点又は三人称視点で観察を行う際の観察の視点を意味する。好ましくは、本発明の実施例では、視点は、仮想環境においてカメラモデルにより仮想オブジェクトを観察する際の視点である。
好ましくは、カメラモデルは、仮想環境において仮想オブジェクトに自動的に追従し、即ち、仮想環境における仮想オブジェクトの位置が変化すると、カメラモデルが仮想環境において仮想オブジェクトの位置に追従して同時に変化し、該カメラモデルが常に仮想環境において仮想オブジェクトの所定の距離範囲内にある。好ましくは、自動的な追従プロセスでは、カメラモデルと仮想オブジェクトとの相対位置は変化しない。
カメラモデルとは、仮想環境における仮想オブジェクトの周囲に位置する3次元モデルを意味する。一人称視点を採用する場合、該カメラモデルは、仮想オブジェクトの頭の近傍又は仮想オブジェクトの頭に位置する。三人称視点を採用する場合、該カメラモデルは、仮想オブジェクトの後方に位置し、且つ仮想オブジェクトに対して固定されてもよいし、仮想オブジェクトから所定の距離を離れて任意の位置に位置してもよい。該カメラモデルを使用して、様々な角度から仮想環境内に位置する仮想オブジェクトを観察してもよい。好ましくは、該三人称視点は、一人称視点の肩越し視点である場合、カメラモデルは、仮想オブジェクト(例えば仮想オブジェクトの頭及び肩)の後方に位置する。好ましくは、該カメラモデルは、実際には仮想環境に表示されなく、即ち、ユーザインターフェースに表示される仮想環境には該カメラモデルが表示されない。
該カメラモデルが仮想オブジェクトから所定の距離を離れて任意の位置に位置することを一例として説明する。好ましくは、1つの仮想オブジェクトは1つのカメラモデルに対応し、該カメラモデルは、仮想オブジェクトを回転の中心として回転してもよい。例えば、仮想オブジェクトの任意の1つの点を回転の中心としてカメラモデルを回転させ、カメラモデルの回転中、角度で回転することだけでなく、変位でもシフトする。回転の際に、カメラモデルと該回転の中心との間の距離をそのまま維持し、即ち、カメラモデルは、該回転の中心を球の中心として球の表面で回転する。ここで、仮想オブジェクトの任意の1つの点は、仮想オブジェクトの頭、胴体、又は仮想オブジェクトの周囲の任意の1つの点であってもよいが、本発明の実施例はこれらに限定されない。好ましくは、カメラモデルが仮想オブジェクトを観察する際に、該カメラモデルの視点(視角)の中心の向きは、該カメラモデルが位置する球面上の点が球の中心を向く方向である。好ましくは、該カメラモデルは、仮想オブジェクトの様々な方向に沿って所定の角度で仮想オブジェクトを観察することができる。
1つの可能な態様では、端末により表示される仮想環境インターフェースは、少なくとも2つの体力表示アセンブリを含み、体力表示アセンブリは、仮想オブジェクトの体力値を表示するために使用され、異なる体力表示アセンブリは、仮想オブジェクトの異なる身体部位の体力値を表示するために使用される。仮想オブジェクトが対応する動作を行うように制御する際に、体力表示アセンブリは、仮想オブジェクトが動作を実行する際の異なる身体部位の体力消費状況及び体力の残り状況を表示してもよい。ここで、仮想環境インターフェースは、カメラモデルを通じて仮想環境を観察する際の画面(第1の視点の画面又は第3の視点の画面)をさらに含む。
好ましくは、本発明の実施例では、少なくとも2つの体力表示アセンブリは、異なる身体部位の体力消費状況を表示するために使用され、異なる分割規則に従って仮想オブジェクトの身体部位を分割してもよい。例えば、仮想オブジェクトの身体部位を上肢部位と下肢部位に分割してもよく、この場合、体力表示アセンブリは、上肢体力表示アセンブリ及び下肢体力表示アセンブリとを含む。或いは、上肢部位及び下肢部位をさらに細かく分割し、即ち、上肢部位を左上肢部位と右上肢部位とに分割し、下肢部位を左下肢部位と右下肢部位とに分割してもよく、この場合、体力表示アセンブリは、左上肢体力表示アセンブリ、右上肢体力表示アセンブリ、左下肢体力表示アセンブリ及び右下肢体力表示アセンブリを含む。
なお、他の分割規則に従って仮想オブジェクトの身体部位を分割してもよいが、本発明の実施例は、身体部位の分割方法及び体力表示アセンブリの数に限定されない。
好ましくは、本発明の実施例では、体力表示アセンブリ(「コンポーネント」とも呼ばれる)は、仮想環境インターフェースに長方形、円弧形、円環形、人体モデルなどの形で表示されてもよいし、仮想環境インターフェースに数字の形で表示されてもよい。
好ましくは、体力表示アセンブリは、仮想環境インターフェースにおいて、下部の中央位置、下部の左位置又は上部の中央位置に表示されてもよい。本発明の実施例は、体力表示アセンブリの表示形態や表示位置に限定されない。
例えば、図4に示すように、仮想環境インターフェースには上肢体力表示アセンブリ401及び下肢体力表示アセンブリ402が表示されている。上肢体力表示アセンブリ401は、上肢部位の体力値を表示し、仮想オブジェクトが動作を実行する際に、上肢部位の体力消費状況及び体力残り状況を表示するために使用される。同様に、下肢体力表示アセンブリ402は、下肢部位の体力状況を表示するために使用される。
ステップ302:仮想オブジェクトに対する目標制御操作に応じて、目標制御操作に対応する目標体力表示アセンブリを決定する。目標体力表示アセンブリに対応する身体部位は、目標制御操作により示される目標動作に対応する身体部位と一致する。
好ましくは、目標制御操作は、仮想オブジェクトの動作を制御するための動作ウィジェットに対するトリガ操作である。ここで、仮想オブジェクトの動作を制御するための動作ウィジェットは、仮想環境インターフェースに表示されてもよく、端末が動作ウィジェットに対するトリガ操作を受信した場合、仮想オブジェクトに対する目標制御操作が受信されたと決定する。
1つの可能な態様では、仮想環境インターフェースにおける動作ウィジェットをクリックすることによって、仮想オブジェクトが対応する動作を実行するように制御することができる。例えば、図4に示すように、方向ウィジェット403をドラッグした場合、仮想オブジェクトが歩くように制御することができる。照準ウィジェット404をクリックした場合、仮想オブジェクトがスコープ覗きの動作を実行するようにすることができる。ジャンプウィジェット405をクリックした場合、仮想オブジェクトが跳ぶように制御することができる。
仮想オブジェクトが動作するように制御する場合、異なる身体部位が協調するように制御する必要がある。例えば、仮想オブジェクトが歩くように制御する場合、歩きを実現するために左下肢と右下肢が動くように制御する必要がある。仮想オブジェクトが照準を行うように制御する場合、銃で照準を合わせるために左上肢と右下肢を制御する必要がある。仮想オブジェクトが投擲するように制御する場合、仮想アイテムを投擲するために右上肢を制御する必要がある。
仮想オブジェクトが目標動作を実行するように制御する際の体力消費の影響を強化し、体力消費の写実性を強化するために、本発明の実施例では、端末は、仮想オブジェクトに対する目標制御操作を受信した場合、目標制御操作に対応する目標動作を実行するために使用される身体部位、即ち目標身体部位を決定してもよい。これによって、目標身体部位の体力消費状況に基づいて、目標動作を実行する状態を決定する。
好ましくは、端末は、制御操作と身体部位と体力表示アセンブリとの対応関係を事前に設定する。そして、端末は、該対応関係に基づいて、目標制御操作に対応する目標身体部位を決定し、さらに、目標身体部位に対応する目標体力表示アセンブリを決定する。
好ましくは、目標動作は、異なる身体部位の協調により完成する必要がある場合がある。即ち、目標体力表示アセンブリの数は少なくとも1つであり、仮想オブジェクトにより実行される異なる動作は、同一の体力表示アセンブリに対応してもよいし、異なる体力表示アセンブリに対応してもよい。
例えば、体力表示アセンブリが上肢体力表示アセンブリと下肢体力表示アセンブリとに分けられることを一例として、制御操作と身体部位と体力表示アセンブリとの対応関係を表1に示す。
ステップ303:仮想オブジェクトが目標動作を実行するように制御し、目標体力表示アセンブリにより表示される第1の残り体力値を第1の残り体力値よりも小さい第2の残り体力値に更新する。
1つの可能な態様では、目標体力表示アセンブリが決定された後、端末は、目標体力表示アセンブリにより示される残り体力値に基づいて、仮想オブジェクトが目標動作を実行するように制御する。ここで、異なる残り体力値に応じて、仮想オブジェクトが同一の動作を実行する状態は異なる。これによって、現実的に異なる体力により示される動作実行の状態が異なるという効果を達成することができる。
好ましくは、目標体力表示アセンブリにより示される第1の残り体力値に基づいて、端末は、仮想オブジェクトが目標動作を実行するように制御する。ここで、第1の残り体力値とは、目標体力表示アセンブリに対応する身体部位の現在の残り体力値を意味する。第1の残り体力値が異なる場合、目標体力表示アセンブリに対応する身体部位により実行される動作の状態が異なる。即ち、異なる体力表示アセンブリにより示される残り体力値の仮想オブジェクトによる同一の動作への影響は異なり、同一の体力表示アセンブリにより示される残り体力値の仮想オブジェクトによる異なる動作への影響は異なる。
例えば、仮想オブジェクトが射撃動作を実行し、対応する身体部位が上肢であり、目標体力表示アセンブリが上肢体力表示アセンブリである場合、上肢体力表示アセンブリにより示される残り体力値がそれぞれ100点、50点、0点であるとき、射撃の安定性は順次低下する。一方、下肢体力表示アセンブリにより示される残り体力値は、射撃の安定性に影響しない。
仮想オブジェクトが目標動作を実行するように制御した後、端末は、目標動作を実行した後の目標体力表示アセンブリに対応する身体部位の残り体力値、即ち第2の残り体力値を決定する。第2の残り体力値が決定された後、端末は、目標体力表示アセンブリに表示された第1の残り体力値を第2の残り体力値に更新する。これによって、目標体力表示アセンブリにより、目標動作を実行する仮想オブジェクトの体力消費状況を表示する。
そして、対応する身体部位の体力値に基づいて、異なる目標体力表示アセンブリの残り体力値を更新する。例えば、目標動作に対応する身体部位が上肢及び下肢である場合、目標動作の実行後の上肢の残り体力値及び下肢の残り体力値をそれぞれ決定する。これによって、上肢の残り体力値に基づいて、上肢に対応する目標体力表示アセンブリの残り体力値を更新し、下肢の残り体力値に基づいて、下肢に対応する目標体力表示アセンブリの残り体力値を更新する。
上記の態様では、仮想オブジェクトが目標動作を実行するための制御は端末により実行されるが、もう1つの可能な態様では、仮想オブジェクトが目標動作を実行するための制御はサーバにより実行されてもよい。即ち、サーバは、目標体力表示アセンブリにより表示された第1の残り体力値を取得し、第1の残り体力値に基づいて目標動作の実行状態を決定し、実行状態に基づいて仮想オブジェクトが目標動作を実行するように制御し、端末は、仮想オブジェクトが目標動作を実行する画面を表示する。
或いは、もう1つの可能な態様では、仮想オブジェクトが目標動作を実行するための制御は、端末とサーバとのインタラクション及び協調により実行されてもよい。端末が目標体力表示アセンブリにより表示された第1の残り体力値を取得した後、端末は、第1の残り体力値をサーバに送信し、サーバは、第1の残り体力値に基づいて目標動作を実行する仮想オブジェクトの実行状態を決定し、実行状態を端末に送信し、端末は、実行状態に基づいて仮想オブジェクトが目標動作を実行するように制御する。即ち、本実施例では、仮想オブジェクトが目標動作を実行するための制御は、端末のみにより実行されてもよいし、サーバのみにより実行されてもよいし、端末とサーバとのインタラクション及び協働により実行されてもよいが、本実施例はこれらに限定されない。
上述したように、本発明の実施例では、複数の体力表示アセンブリにより、仮想オブジェクトの異なる身体部位の動作を実行する際の体力消費状況を表示することで、関連技術における単一の体力値及び体力消費の表示形式と比べて、仮想オブジェクトの動作を実行する際の体力消費の写実性を向上させることができると共に、異なる身体部位の残り体力に基づいて仮想オブジェクトの動作の実行を制御し、体力消費の様々な動作の実行への影響をシミュレートすることで、仮想オブジェクトの動作の実行の現実感を向上させ、対戦ゲームの現実感をさらに向上させることができる。
図5は、本発明のもう1つの例示的な実施例に係る仮想オブジェクトの制御方法のフローチャートである。本実施例では、該方法が図2に示す実施環境における第1の端末210、第2の端末230、又は該実施環境における他の端末に適用されることを一例として説明する。該方法は、以下のステップを含む。
ステップ501:少なくとも2つの体力表示アセンブリにより示される残り体力値が第2の体力閾値よりも小さい場合、少なくとも2つの体力表示アセンブリを表示する。
1つの可能な態様では、体力表示アセンブリは、仮想環境インターフェースに常に表示される。この表示方式では、体力表示アセンブリが仮想環境画面の一部を遮蔽する場合がある。
仮想環境画面に対する遮蔽を低減させるために、もう1つの可能な態様では、体力表示アセンブリに示される残り体力値が第2の体力閾値よりも小さい場合、少なくとも2つの体力表示アセンブリを表示する。これによって、体力値を提示する効果を達成することができる。一方、残り体力値が第2の体力閾値以上である場合、端末は、体力表示アセンブリの表示をキャンセルし、画面に対する遮蔽を低減させる。例えば、第2の体力閾値は100点であってもよく、仮想オブジェクトの身体部位の体力値が100点よりも小さい場合、端末は、体力表示アセンブリを表示する。
好ましくは、少なくとも2つの体力表示アセンブリは、上肢体力表示アセンブリ及び下肢体力表示アセンブリであってもよい。本発明の実施例では、上肢体力表示アセンブリ及び下肢体力表示アセンブリを一例として詳細に説明するが、この例に限定されない。
ステップ502:仮想オブジェクトに対する目標制御操作に応じて、目標制御操作に対応する目標体力表示アセンブリを決定する。目標体力表示アセンブリに対応する身体部位は、目標制御操作により示される目標動作に対応する身体部位と一致する。
目標制御操作に対応する目標体力表示アセンブリを決定する際に、目標制御操作に対応する目標動作を実行するための主要な身体部位に基づいて決定してもよい。また、体力表示アセンブリに対応する身体分割状況に基づいて当該主要な身体部位を決定する。体力表示アセンブリに上肢体力表示アセンブリと下肢体力表示アセンブリとが含まれる場合、目標動作を実行するための主要な身体部位が上肢であるか、それとも下肢であるかを決定する。主要な身体部位が上肢であると決定された場合、対応する目標体力表示アセンブリが上肢体力表示アセンブリであると決定し、主要な身体部位が下肢であると決定された場合、対応する目標体力表示アセンブリが下肢体力表示アセンブリであると決定し、主要な身体部位が上肢及び下肢であると決定された場合、対応する目標体力表示アセンブリが上肢体力表示アセンブリ及び下肢体力表示アセンブリであると決定する。
好ましくは、端末が目標制御操作に基づいて対応する目標体力表示アセンブリを決定することは、以下のシナリオを含んでもよい。
1.目標制御操作により示される目標動作が照準、投擲、又は近距離攻撃のうちの少なくとも1つである場合、上肢体力表示アセンブリを目標体力表示アセンブリとして決定する。
好ましくは、目標制御操作により示される目標動作が照準である場合、端末は、仮想オブジェクトが照準動作を実行するように制御する。照準動作を実行する際に上肢で拳銃、ライフル、狙撃銃などの仮想アイテムを制御して目標を照準する必要があるため、端末は、上肢体力表示アセンブリを目標体力表示アセンブリとして決定する。例えば、図6に示すように、仮想オブジェクトはスコープ覗き及び照準を行い、端末は上肢体力表示アセンブリ601を目標体力表示アセンブリとして決定する。
好ましくは、目標制御操作により示される目標動作が投擲である場合、端末は、仮想オブジェクトが投擲動作を実行するように制御する。投擲動作を実行する際に上肢で手榴弾、発煙弾などの投擲系のアイテムを目標地点に投擲する必要があるため、端末は、上肢体力表示アセンブリを目標体力表示アセンブリとして決定する。例えば、図7に示すように、仮想オブジェクトが仮想爆弾を投擲する際に、端末は上肢体力表示アセンブリ701を目標体力表示アセンブリとして決定する。
好ましくは、目標制御操作により示される目標動作が近距離攻撃である場合、端末は、仮想オブジェクトが近距離攻撃アイテム(短剣、棒など)を使用して仮想環境内の他の仮想オブジェクトを攻撃するように制御する。近距離攻撃アイテムを制御するための主要な身体部位が上肢であるため、端末は、上肢体力表示アセンブリを目標体力表示アセンブリとして決定する。例えば、図8に示すように、仮想オブジェクトは斧を使用して近距離攻撃を行い、端末は上肢体力表示アセンブリ801を目標体力表示アセンブリとして決定する。
2.目標制御操作により示される目標動作が走り又は跳びのうちの少なくとも1つである場合、下肢体力表示アセンブリを目標体力表示アセンブリとして決定する。
好ましくは、目標制御操作が走り又は跳びである場合、端末は、仮想オブジェクトが走り、或いは跳ぶように制御し、該動作が主に下肢により実行されるため、下肢体力表示アセンブリを目標体力表示アセンブリとして決定する。
3.目標制御操作により示される目標動作が姿勢の切り替え又は登りのうちの少なくとも1つである場合、上肢体力表示アセンブリ及び下肢体力表示アセンブリを目標体力表示アセンブリとして決定する。
好ましくは、目標制御操作が姿勢の切り替えである場合、端末は、仮想オブジェクトが姿勢の切り替えを実行するように制御する。ここで、姿勢の切り替えは、立ち姿勢からしゃがみ姿勢への切り替え、しゃがみ姿勢から伏せ姿勢への切り替え、又は立ち姿勢から伏せ姿勢への切り替えであってもよい。姿勢の切り替えのプロセスでは、上肢と下肢の両方が動作を行う必要があるため、上肢体力表示アセンブリ及び下肢体力表示アセンブリを目標体力表示アセンブリとして決定する。
なお、本発明の実施例では、姿勢切り替えの時の対応する目標体力表示アセンブリについてのみを説明しており、具体的な切り替えの姿勢に限定されない。
好ましくは、目標制御操作が登りである場合、端末は、仮想オブジェクトが登り動作を実行するように制御し、仮想オブジェクトの上肢及び下肢が動作を実行するように制御するため、上肢体力表示アセンブリ及び下肢体力表示アセンブリを目標体力表示アセンブリとして決定する。
ステップ503:目標動作の予想体力消費値を決定する。
ユーザがゲームをプレイする際に、仮想オブジェクトが動作を実行するように制御する時の異なる身体部位の体力値の消費状況をより直感的に知ることができるようにするために、1つの可能な態様では、端末は、異なる動作に対応する予想体力消費値を事前に設定する。これによって、ユーザは、仮想オブジェクトを制御して目標動作を実行する際に、目標動作の予想体力消費値を決定することができる。
予想体力消費値とは、目標体力表示アセンブリに対応する身体部位の予想体力消費値である。好ましくは、目標動作が照準、投擲、又は近距離攻撃のうちの何れかである場合、予想体力消費値は、上肢に対応する体力消費値であり、目標動作が走り又は跳びのうちの何れかである場合、予想体力消費値は、下肢に対応する体力消費値であり、目標動作が姿勢の切り替え又は登りのうちの何れかである場合、予想体力消費値は、上肢及び下肢に対応する体力消費値である。
例えば、様々な動作と予想体力消費値との対応関係を表2に示す。
目標動作が照準である場合、上肢の体力消費値が5であると予想し、目標動作が姿勢の切り替えである場合、上肢及び下肢の体力消費値が5点であると予想する。
なお、本発明の実施例では、目標動作の予想体力消費値とは、1回の動作の予想体力消費値又は単位期間内の動作の予想体力消費値を意味する。例えば、目標動作が照準である場合、1回の照準で消費する上肢体力値は5点であり、目標動作が走りである場合、単位期間内の走りの予想体力消費値は10点であり、単位期間は、30秒、1分間、5分間などであってもよいが、本発明の実施例はこれらに限定されない。
仮想オブジェクトが動作を実行する時の体力消費の写実性をさらに向上させるために、1つの可能な態様では、仮想オブジェクトの現在の姿勢に基づいて目標動作の予想体力消費値を決定してもよい。具体的には、以下のステップを含む。
ステップ1:仮想オブジェクトの姿勢を取得する。仮想オブジェクトの姿勢は、立ち姿勢、しゃがみ姿勢、及び伏せ姿勢のうちの少なくとも1つを含む。
1つの可能な態様では、端末は、目標動作に基づいて固定の体力消費値を決定する。この方式では、実環境においてオブジェクトが異なる姿勢で動作を実行する際に消費する体力が異なるという現象をシミュレートすることはできない。従って、ゲームの写実性をさらに向上させるために、もう1つの可能な態様では、仮想オブジェクトの現在の姿勢に基づいて目標動作の予想体力消費値を決定してもよい。従って、目標動作の予想体力消費値を決定する際に、まず、立ち姿勢、しゃがみ姿勢及び伏せ姿勢のうちの少なくとも1つを含む仮想オブジェクトの現在の姿勢を取得してもよい。
ステップ2:姿勢に基づいて目標動作の予想体力消費値を決定する。ここで、異なる姿勢で同一の動作を実行する場合の予想体力消費値は異なる。
1つの可能な態様では、異なる姿勢で同一の動作を実行する場合の仮想オブジェクトの予想体力消費値は異なる。例えば、仮想オブジェクトが立ち状態で照準動作を行う場合、上肢の予想体力消費値は、仮想オブジェクトが伏せ状態での上肢の予想体力消費値よりも大きい。別の例では、仮想オブジェクトが立ち状態で飛び動作を行う場合、下肢の予想体力消費値は、仮想オブジェクトがしゃがみ状態での下肢の予想体力消費値よりも小さい。例えば、仮想オブジェクトが同一の動作を実行する場合、異なる状態での動作の予想体力消費値を表3に示す。
以上は、異なる姿勢で予想体力消費値が異なることを説明した。実生活では、オブジェクトの負荷、即ち所持している物品の重さが異なる場合、同一の動作を実行する際に消費する体力値も異なる。従って、もう1つの可能な態様では、体力消費の写実性をさらに向上させるために、仮想オブジェクトが現在所持している仮想物品の数に基づいて、目標動作の予想体力消費値を決定してもよい。
好ましくは、仮想バックパックの充填率に基づいて目標動作の予想体力消費値を決定してもよい。ここで、仮想バックパックの充填率は、予想体力消費値と正の相関関係がある。また、異なる容量の仮想バックパックの充填率が同一である場合、仮想オブジェクトが目標動作を実行する際の予想体力消費値も異なる。また、端末は、様々な容量の仮想バックパック及び充填率と予想体力消費値との対応関係を事前に記憶してもよい。これによって、仮想オブジェクトの現在の仮想バックパックにおける仮想アイテムの充填率を決定することで、対応する予想体力消費値を決定することができる。
例えば、端末に記憶された最大容量の仮想バックパックの充填率と予想体力消費値との対応関係を表4に示す。
例えば、仮想オブジェクトが現在所持している仮想バックパックの容量の50%が充填さている場合、仮想オブジェクトが照準動作を実行するように制御する際に、上肢の予想体力消費値は5点である。
ステップ504:目標体力表示アセンブリにより予想体力消費値を表示する。予想体力消費値の表示方式は、消費済み体力値及び現在の残り体力値の表示方式とは異なる。
1つの可能な態様では、目標動作の予想体力消費値を決定した後、端末は、目標体力表示アセンブリにより予想体力消費値を表示する。こここで、予想体力消費値の表示方式は、消費済み体力値及び現在の残り体力値の表示方式とは異なる。
例えば、仮想オブジェクトが目標動作を実行したと検出された場合、体力表示アセンブリは、図9に示すように変化する。目標動作を実行する前に、体力表示アセンブリは、第1の方式で表示される残り体力値901、及び第2の方式で表示される消費済み体力値902を含む。目標動作の予想体力消費値を決定した後、体力表示アセンブリは、第1の方式で表示される残り体力値901、第3の方式で表示される予想体力消費値903、及び第2の方式で表示される消費済み体力値902を含む。ここで、残り体力値901はバー状の影で表示され、予想体力消費値903はブロック状の影で表示され、消費済み体力値902は透明の形で表示される。図9に示されるものは、単なる一例であり、この態様に限定されない。実際の応用では、残り体力値、予想体力消費値及び消費済み体力値は、異なる色、異なる形状などで表示されてもよい。
なお、仮想オブジェクトが目標動作を実行するように制御した後、予想体力消費値の表示を停止する。
上記のステップの例では、目標動作が照準である場合、上肢体力表示アセンブリは5点の予想体力消費値を表示し、目標動作が登りである場合、上肢体力表示アセンブリ及び下肢体力表示アセンブリは、10点の予想体力消費値を表示する。
ステップ505:目標体力表示アセンブリにより示される第1の残り体力値が第1の体力閾値よりも大きい場合、仮想オブジェクトが第1のパラメータで目標動作を実行するように制御する。
本発明の実施例では、第1の体力閾値を導入することで、残り体力値が異なる場合、仮想オブジェクトが異なる状態で同一の動作を実行するように制御することを実現する。
好ましくは、第1の体力閾値は、所定値であり、例えば0であってもよい。仮想オブジェクトの残り体力値が0より大きい場合、仮想オブジェクトが第1のパラメータで目標動作を実行するように制御する。
好ましくは、第1のパラメータは、仮想オブジェクトの動作を実行する速度、強さ及び安定性のうちの少なくとも1つを含んでもよいが、本発明の実施例は、第1のパラメータの具体的なタイプに限定されない。
ステップ506:第1の残り体力値が第1の体力閾値よりも小さい場合、仮想オブジェクトが第2のパラメータで目標動作を実行するように制御する。
1つの可能な態様では、体力表示アセンブリにより示される残り体力値が第1の体力閾値よりも小さい場合、仮想オブジェクトに対応する身体部位により消費された体力が多いことを意味し、この場合、仮想のオブジェクトが第2のパラメータで目標動作を実行するように制御する。ここで、第2のパラメータでの目標動作の実行効果は、第1のパラメータでの目標動作の実行効果よりも低い。これによって、実際の環境で体力が多く消費した際に動作の実行が遅くなり、苦労するという効果をシミュレートすることができる。
例えば、残り体力値が0よりも小さい場合、体力表示アセンブリに対応する身体部位の体力がなくなることを意味し、この場合、仮想オブジェクトが第2のパラメータで動作を実行するように制御する。
関連技術では、仮想オブジェクトの体力がなくなると、対応する動作を実行することができず、ゲームの進行に影響を与えてしまう。一方、本発明の実施例では、特定のタイプの動作について、体力が不足している場合、パラメータによって仮想オブジェクトが異なる実行効果で動作を実行するように制御することができる。1つの可能な態様では、仮想オブジェクトの実行可能な動作は、2つの種類、即ち残り体力値が第1の体力閾値よりも小さい場合でも実行できる動作と、残り体力値が第1の体力閾値よりも小さい場合に実行できない動作とに分けられる。これによって、仮想オブジェクトの制御に対する体力消費の制限を多様化することができる。
1つの可能な態様では、現在の残り体力値が第1の体力閾値よりも小さく、且つ目標動作が第1の種類の動作に属する場合、端末は、仮想オブジェクトが第2のパラメータで目標動作を実行するように制御する。第1の種類の動作は、照準、投擲、及び姿勢の切り替えのうちの少なくとも1つを含む。
1つの可能な態様では、目標動作が照準、投擲及び姿勢の切り替えのうちの少なくとも1つを含む第1の種類の動作である場合、ゲームを引き続き正常にプレイできることを保証し、操作前に体力値が回復するまで待つことによりゲームの時機を失ってしまうことを回避するために、仮想オブジェクトが第2のパラメータで目標動作を実行するように制御する。
好ましくは、目標動作が照準である場合、第1のパラメータは第1の照準パラメータであり、第2のパラメータは第2の照準パラメータであり、第2の照準パラメータでの照準安定性は第1の照準パラメータでの照準安定性よりも低い。
1つの可能な態様では、目標動作が照準である場合、対応する体力表示アセンブリは上肢体力表示アセンブリであり、上肢体力表示アセンブリの現在の残り体力値が第1の体力閾値よりも小さいとき、照準安定性パラメータを変更することで、仮想オブジェクトの実行効果を低減させ、実際に上肢が疲労した場合に銃を不安定に保持する状態をシミュレートすることができる。
好ましくは、照準パラメータはレンズ振れ振幅であってもよく、第2の照準パラメータのレンズ振れ振幅は、第1の照準パラメータのレンズ振れ振幅より大きい。例えば、第1の照準パラメータでは、仮想オブジェクトが照準する際のレンズ振れ振幅は-5°~+5°の範囲内であり、第2の照準パラメータでは、仮想オブジェクトが照準する際のレンズ振れ振幅は-10°~+10°の範囲内である。
好ましくは、目標動作が投擲である場合、第1のパラメータは第1の投擲パラメータであり、第2のパラメータは第2の投擲パラメータであり、第2の投擲パラメータでの投擲速度及び/又は投擲距離は第1の投擲パラメータでの投擲速度及び/又は投擲距離よりも低い。
1つの可能な態様では、目標動作が投擲である場合、対応する体力表示アセンブリが上肢体力表示アセンブリであり、上肢体力表示アセンブリの現在の残り体力値が第1の体力閾値よりも小さいとき、投擲パラメータを変更することで、仮想オブジェクトの実行効果を低減させることができる。
好ましくは、投擲パラメータは投擲速度であってもよく、第2の投擲パラメータの投擲速度は、第1の投擲パラメータの投擲速度よりも遅い。例えば、仮想オブジェクトの投擲開始から投擲終了までの時間を2秒から4秒に増加させてもよい。
好ましくは、投擲パラメータは投擲距離であってもよく、第2の投擲パラメータの投擲距離は、第1の投擲パラメータの投擲距離よりも小さい。例えば、第1の投擲パラメータでは、仮想オブジェクトが投擲する際の最大投擲範囲は100mであり、第2の投擲パラメータでは、仮想オブジェクトが投擲する際の最大投擲範囲は僅か50mである。
好ましくは、投擲パラメータは投擲速度と投擲距離との組み合わせであってもよく、例えば、第1の投擲パラメータでは、仮想オブジェクトの投擲開始から投擲終了までの時間が2秒であり、投擲範囲が100mに達することができるように制御し、第2の投擲パラメータでは、仮想オブジェクトの投擲開始から投擲終了までの時間が4秒であり、投擲距離が僅か50mであるように制御してもよい。
好ましくは、目標動作が姿勢の切り替えである場合、第1のパラメータは第1の切り替えパラメータであり、第2のパラメータは第2の切り替えパラメータであり、第2の切り替えパラメータでの姿勢の切り替え速度は第1の切り替えパラメータでの姿勢の切り替え速度よりも低い。
1つの可能な態様では、目標動作が姿勢の切り替えである場合、対応する体力表示アセンブリが上肢体力表示アセンブリ及び下肢体力表示アセンブリであり、上肢体力表示アセンブリ及び下肢体力表示アセンブリの現在の残り体力値が第1の体力閾値よりも小さいとき、姿勢の切り替えのパラメータを変更することで、仮想オブジェクトの実行効果を低減させることができる。
好ましくは、切り替えパラメータは姿勢の切り替え遅延であってもよく、第1の切り替えパラメータの遅延は、第2の切り替えパラメータの遅延よりも小さい。例えば、仮想オブジェクトが伏せ姿勢からしゃがみ姿勢に切り替えるように制御する場合、遅延を1秒から2秒に増加させてもよく、仮想オブジェクトがしゃがみ姿勢から立ち姿勢に切り替える場合、遅延を1秒から2秒に切り替えてもよく、仮想オブジェクトが伏せ姿勢から立ち姿勢に切り替えた場合、遅延を2秒から4秒に切り替えてもよい。
ステップ507:第1の残り体力値が第1の体力閾値よりも小さく、且つ目標動作が第2の種類の動作に属する場合、目標制御操作への応答をキャンセルする。第2の種類の動作は、走り、跳び、登り、及び近距離攻撃のうちの少なくとも1つを含む。
1つの可能な態様では、目標動作が走り、跳び、登り、及び近距離攻撃のうちの少なくとも1つを含む第2の種類の動作である場合、この種類の動作はゲームへの影響が少ないため、残り体力値が第1の体力閾値よりも小さい場合、該種類の動作の実行を禁止する。このため、仮想オブジェクトがこの種類の動作を実行するように制御することができず、体力がなくなった場合に激しい動作を行うことができないことをシミュレートすることができる。
好ましくは、目標動作が禁止されている期間内に、目標動作の使用が禁止されていることをユーザに提示するために、目標制御操作に対応する操作制御を非トリガ状態に設定してもよい。
好ましくは、目標動作が走り又は跳びである場合、目標体力表示アセンブリが下肢体力表示アセンブリであるため、下肢体力表示アセンブリにより示される現在の残り体力値が第1の体力閾値よりも小さいとき、走り又は跳びを禁止する。目標動作が登りである場合、目標体力表示アセンブリが上肢体力表示アセンブリ及び下肢体力表示アセンブリであるため、上肢体力表示アセンブリ又は下肢体力表示アセンブリのうちの少なくとも1つの体力表示アセンブリにより示される現在の残り体力値が第1の体力閾値よりも小さいとき、登りを禁止する。目標動作が近距離攻撃である場合、目標体力表示アセンブリが上肢体力表示アセンブリであるため、上肢体力表示アセンブリにより示される現在の残り体力値が第1の体力閾値よりも小さいとき、近距離攻撃を禁止する。
ステップ508:第1の残り体力値及び予想体力消費値に基づいて、第2の残り体力値を決定する。
第2の残り体力値は仮想オブジェクトが目標動作を実行した後の目標動作に対応する身体部位の残り体力値であるため、端末は、第1の残り体力値及び予想体力消費値に基づいて、第2の残り体力値を決定してもよい。ここで、第1の残り体力値は、仮想オブジェクトが対象動作を実行するように制御する前の目標動作に対応する身体部位の残り体力値であり、予想体力消費値は、仮想オブジェクトが目標動作を実行するように制御する際の対応する身体部位の予想体力消費値であるため、第1の残り体力値と予想体力消費値との差に基づいて第2の残り体力値を決定する。
ステップ509:第2の残り体力値に基づいて目標体力表示アセンブリを更新する。
好ましくは、第2の残り体力値を決定した後、端末は、目標体力表示アセンブリに第2の残り体力値を表示する。
例えば、図9に示すように、目標動作の実行した後、予想体力消費値903の表示を停止し、目標体力表示アセンブリの残り体力値を第2の残り体力値904に更新する。
本実施例では、第1の体力閾値及び第2の体力閾値を導入し、目標体力表示アセンブリの残り体力値が第1の体力閾値よりも低い場合、目標動作を2つの種類、即ち第1の体力閾値よりも小さい場合でも引き続き実行できる動作と、第1の体力閾値よりも小さい場合に実行できない動作とに分けられる。仮想オブジェクトの体力が不足している場合、引き続き実行できる動作についてパラメータを用いて動作の実行効果を制御することで、実環境における体力が不足する場合にオブジェクトが動作を実行する効果と体力が十分である場合の実行効果との差別をシミュレートし、ゲームの写実感を強化すると共に、ゲームを正常にプレイできることを保証し、体力値が回復するまで待つことによりゲームの時機を失ってしまうことを回避することができる。
本実施例では、仮想オブジェクトが動作を実行する際に予想体力消費値をさらに表示してもよい。これによって、ユーザは、仮想オブジェクトが現在の目標動作を実行する際の様々な身体部位の体力消費値及び残り体力値をより容易に把握することができ、体力表示の直感性を向上させることができる。
好ましくは、仮想オブジェクトが目標動作を実行するように制御した後、端末は、仮想オブジェクトの体力値を自動的に回復してもよいし、仮想補給アイテムの使用操作を受け付けた場合、仮想オブジェクトの体力値を回復してもよい。以下は、例示的な実施例を説明する。
図10は、本発明のもう1つの例示的な実施例に係る仮想オブジェクトの制御方法のフローチャートである。本実施例では、該方法が図2に示す実施環境における第1の端末210、第2の端末230、又は該実施環境における他の端末に適用されることを一例として説明する。該方法は、以下のステップを含む。
ステップ1001:仮想オブジェクトに対応する少なくとも2つの体力表示アセンブリを表示する。
ステップ1002:仮想オブジェクトに対する目標制御操作に応じて、目標制御操作に対応する目標体力表示アセンブリを決定する。
ステップ1003:仮想オブジェクトが目標動作を実行するように制御し、目標体力表示アセンブリにより表示される第1の残り体力値を第2の残り体力値に更新する。
ステップ1001~1003の態様は、上記の実施例を参照してもよく、本実施例ではその説明を省略する。
ステップ1004:仮想補給アイテムに対する使用操作に応じて、仮想補給アイテムに対応する補給身体部位を決定する。仮想補給アイテムは、身体部位の残り体力値を増加させるために使用される。
1つの可能な態様では、仮想オブジェクトが目標動作を実行した後に体力を消費し、この際に、飲み物、一品料理、薬品などの仮想補給アイテムを使用して体力値を回復してもよい。
1つの可能な態様では、仮想オブジェクトは、仮想補給アイテムを使用することによって、全ての身体部位の体力値を高めてもよい。もう1つの可能な態様では、異なる仮想補給アイテムは、異なる身体部位の補給を行ってもよい。例えば、飲み物の補給アイテムは上肢の体力値を回復するために使用され、一品料理の補給アイテムは下肢の体力値を回復するために使用され、薬品の補給アイテムは上肢の体力値と下肢の体力値を同時に補給するために使用される。
固定の仮想補給アイテムに基づいて仮想補給アイテムに対応する補給身体部位を決定することに加えて、異なる身体部位の体力消費状況に基づいて仮想補給アイテムに対応する補給身体部位を決定してもよい。
好ましくは、仮想補給アイテムの使用操作を受け付けた場合、現在の各体力表示アセンブリの現在の残り体力値を取得し、各現在の残り体力値に基づいて対応する補給身体部位を決定する。1つの可能な態様では、端末は、現在の残り体力値が最も少ない補給身体部位を、仮想補給アイテムに対応する補給身体部位として決定してもよい。例えば、上肢体力表示アセンブリにより示される上肢の残り体力値が30点であり、下肢体力表示アセンブリにより示される下肢の残り体力値が50点である場合、補給身体部位が上肢であると決定する。
一方、各体力表示アセンブリにより示される現在の残り体力値が同一である場合、各補給身体部位が仮想補給アイテムに対応する補給身体部位であると決定してもよい。なお、同一の仮想補給アイテムで異なる身体部位を同時に補給する場合、異なる補給身体部位の体力回復値は同一である。例えば、仮想補給アイテムの回復可能な体力値が20点であり、且つ上肢と下肢を同時に補給する場合、上肢と下肢の体力値を同時に10点回復する。
或いは、もう1つの可能な態様では、仮想補給アイテムに対応する補給身体部位は、ユーザにより指定されてもよい。端末は、仮想補給アイテムの使用操作を受け付けた場合、仮想環境画面に各身体部位に対応する選択ウィジェットを表示してもよい。目標選択ウィジェットに対する選択操作を受け付けた場合、目標選択ウィジェットに対応する身体部位を仮想補給アイテムに対する補給身体部位として決定する。
ステップ1005:補給身体部位に対応する体力表示アセンブリにより体力値の補給効果を表示する。
1つの可能な態様では、仮想補給アイテムで身体部位を補給した後、対応する体力表示アセンブリにより対応する補給効果を表示する。ここで、異なる仮想補給アイテムは、異なる体力値の補給を行う。例えば、飲み物の補給アイテムを使用した場合、上肢体力表示アセンブリは体力が5点回復したことを示し、一品料理の補給アイテムを使用した場合、下肢体力表示アセンブリは体力が5点回復したことを示し、薬品の補給アイテムを使用した場合、上肢及び下肢の体力表示アセンブリは体力が10点回復したことを示す。
ステップ1006:目標動作の実行が完了した場合、仮想オブジェクトの姿勢を取得する。
1つの可能な態様では、目標動作の実行が完了した後、端末は、仮想オブジェクトが動作を実行するように制御することを停止し、仮想オブジェクトの身体部位の体力値は固定値で回復し始まる。ゲームの写実性をさらに向上させ、実環境での異なる姿勢でオブジェクトの体力回復が異なる状況をシミュレートするために、もう1つの可能な態様では、実環境でのオブジェクトの体力回復状況をシミュレートするために、仮想オブジェクトの姿勢に基づいて回復速度を決定するように、仮想オブジェクトの現在の姿勢を取得してもよい。例えば、目標動作が照準である場合、動作実行が完了した後の仮想オブジェクトの姿勢は、立ち姿勢、しゃがみ姿勢又は伏せ姿勢などであってもよい。仮想オブジェクトの姿勢を取得することで、その後の仮想オブジェクトの体力回復状態を制御することができる。
ステップ1007:姿勢に基づいて少なくとも2つの体力表示アセンブリのそれぞれに対応する体力値の回復速度を決定する。ここで、異なる姿勢で同一の体力表示アセンブリに対応する体力値の回復速度は異なり、同一の姿勢で異なる体力表示アセンブリに対応する体力値の回復速度は異なる。
1つの可能な態様では、目標動作の実行が完了した後、体力値は自動的に回復し、例えば、単位期間内に5点回復し、単位期間は10秒、20秒などであってもよい。
1つの可能な態様では、取得された現在の姿勢に基づいて、対応する体力値の回復速度を決定する。上肢体力表示アセンブリ及び下肢体力表示アセンブリを一例として説明する。異なる姿勢で同一の体力表示アセンブリに対応する体力値の回復速度は異なる。例えば、上肢体力表示アセンブリの回復速度は、伏せ姿勢>しゃがみ姿勢>立ち姿勢となり、下肢体力表示アセンブリの回復速度は、伏せ姿勢>立ち姿勢>しゃがみ姿勢となる。単位期間内の体力回復値を変更することで回復速度を制御してもよい。例えば、上肢体力表示アセンブリは、伏せ姿勢の状態において単位期間内の体力値は10点回復し、しゃがみ姿勢の状態において単位期間内の体力値は8点回復し、立ち姿勢の状態において単位期間内の体力値は5点回復する。単位期間は、10秒、20秒などであってもよい。
好ましくは、同一の姿勢で異なる体力表示アセンブリに対応する体力値の回復速度は異なる。例えば、仮想オブジェクトの現在の姿勢がしゃがみ姿勢である場合、上肢の体力回復速度は下肢の体力回復速度よりも速く、仮想オブジェクトの現在の姿勢が伏せ姿勢である場合、上肢の体力回復速度は下肢の体力回復速度よりも遅い。
ステップ1008:少なくとも2つの体力表示アセンブリにより示される残り体力値が第2の体力閾値に回復した場合、少なくとも2つの体力表示アセンブリをハイライト表示した後に、少なくとも2つの体力表示アセンブリの表示を停止する。
1つの可能な態様では、少なくとも2つの体力表示アセンブリにより示される現在の残り体力値が第2の体力閾値に回復した後、対応する身体部位が十分に回復したことをプレイヤに提示するために、体力表示アセンブリをハイライト表示する。また、画面に対する遮蔽を低減させるために、ハイライト表示の後に体力表示アセンブリの表示を停止する。
例えば、図11に示すように、仮想環境インターフェース1101に表示された体力表示アセンブリ1102は、体力値が間もなく満点に回復することを示しており、満点に回復した場合、仮想環境インターフェース1101に表示された体力表示アセンブリ1102をハイライト表示し、ハイライト表示後に表示を停止し、仮想環境インターフェース1101における体力表示アセンブリが消える。
好ましくは、少なくとも2つの体力表示アセンブリを仮想環境インターフェースに同時に表示してもよい。即ち、少なくとも2つの体力表示アセンブリに対応する身体部位が全て第2の体力閾値まで回復した後、体力表示アセンブリの表示を停止してもよい。或いは、仮想環境インターフェースに体力表示アセンブリを個別に表示してもよい。即ち、そのうちの1つの体力表示アセンブリに対応する身体部位が第2の体力閾値まで回復した後、該体力表示アセンブリの表示を停止し、残りの体力表示アセンブリを表示し続けてもよい。
本実施例では、仮想オブジェクトの体力が不十分になった場合、仮想補給アイテムを使用して異なる身体部位の体力値を補給し、仮想オブジェクトの異なる姿勢に基づいて体力の回復速度をさらに決定することで、実際の環境で異なる状態でのオブジェクトの体力回復速度が異なることをシミュレートすることができ、ゲームの現実感をさらに向上させることができる。
以上の実施例について、以下は、仮想オブジェクトの身体部位が上肢と下肢とに分けられることを一例として説明する。図12は、仮想オブジェクトの制御方法のフローチャートである。図12に示すように、該方法は、以下のステップを含む。
ステップ1201:仮想オブジェクトが目標動作を実行し、体力を消費する。
ステップ1202:体力を消費した身体部位が上肢であるか否かを検出し、上肢である場合、ステップ1203に進み、そうでない場合、ステップ1204に進む。
ステップ1203:上肢の体力が0であるか否かを検出し、0である場合、ステップ1205に進み、そうでない場合、ステップ1201に進む。
ステップ1204:下肢の体力が0であるか否かを検出し、0である場合、ステップ1206に進み、そうでない場合、ステップ1201に進む。
ステップ1205:上肢のマイナス効果(第2のパラメータで照準、投擲、姿勢の切り替えの動作を実行し、近距離攻撃を禁止する)。
ステップ1206:下肢のマイナスの効果(第2のパラメータで姿勢の切り替えの動作を実行し、走り及び跳びなどの動作の実行を禁止する)。
ステップ1207:上肢の体力の消費が停止したか否かを検出し、停止した場合、ステップ1209に進み、そうでない場合、ステップ1205に進む。
ステップ1208:下肢の体力の消費が停止したか否かを検出し、停止した場合、ステップ1210に進み、そうでない場合、ステップ1206に進む。
ステップ1209:上肢の体力を回復する。
ステップ1210:下肢の体力を回復する。
図13は、本発明の1つの例示的な実施例に係る仮想オブジェクトの制御装置の構成のブロック図である。該装置は、アセンブリ表示モジュール1301、アセンブリ決定モジュール1302及びオブジェクト制御モジュール1303を含む。
アセンブリ表示モジュール1301は、仮想オブジェクトに対応する少なくとも2つの体力表示アセンブリを表示する。体力表示アセンブリは対応する身体部位の体力消費状況を表示するために使用され、異なる体力表示アセンブリは異なる身体部位に対応する。
アセンブリ決定モジュール1302は、仮想オブジェクトに対する目標制御操作に応じて、目標制御操作に対応する目標体力表示アセンブリを決定する。目標体力表示アセンブリに対応する身体部位は目標制御操作により示される目標動作に対応する身体部位と一致する。
オブジェクト制御モジュール1303は、仮想オブジェクトが目標動作を実行するように制御し、目標体力表示アセンブリにより表示される第1の残り体力値を第1の残り体力値よりも小さい第2の残り体力値に更新する。
好ましくは、オブジェクト制御モジュール1303は、第1の制御ユニット及び第2の制御ユニットを含む。
第1の制御ユニットは、第1の残り体力値が第1の体力閾値よりも大きい場合、仮想オブジェクトが第1のパラメータで前記目標動作を実行するように制御する。
第2の制御ユニットは、第1の残り体力値が第1の体力閾値よりも小さい場合、仮想オブジェクトが第2のパラメータで前記目標動作を実行するように制御する。
好ましくは、第2のパラメータでの目標動作の実行効果は、第1のパラメータでの目標動作の実行効果よりも低い。
好ましくは、第2の制御ユニットは、第1の残り体力値が第1の体力閾値よりも小さく、且つ目標動作が第1の種類の動作に属する場合、仮想オブジェクトが第2のパラメータで目標動作を実行するように制御する。第1の種類の動作は、照準、投擲、及び姿勢の切り替えのうちの少なくとも1つを含む。
好ましくは、該装置は、キャンセルモジュールをさらに含む。
キャンセルモジュールは、第1の残り体力値が第1の体力閾値よりも小さく、且つ目標動作が第2の種類の動作に属する場合、目標制御操作への応答をキャンセルする。第2の種類の動作は、走り、跳び、登り、及び近距離攻撃のうちの少なくとも1つを含む。
好ましくは、目標動作が照準である場合、第1のパラメータは第1の照準パラメータであり、第2のパラメータは第2の照準パラメータであり、第2の照準パラメータでの照準安定性は第1の照準パラメータでの照準安定性よりも低い。
好ましくは、目標動作が投擲である場合、第1のパラメータは第1の投擲パラメータであり、第2のパラメータは第2の投擲パラメータであり、第2の投擲パラメータでの投擲速度及び/又は投擲距離は第1の投擲パラメータでの投擲速度及び/又は投擲距離よりも低い。
好ましくは、目標動作が姿勢の切り替えである場合、第1のパラメータは第1の切り替えパラメータであり、第2のパラメータは第2の切り替えパラメータであり、第2の切り替えパラメータでの姿勢の切り替え速度は第1の切り替えパラメータでの姿勢の切り替え速度よりも低い。
好ましくは、該装置は、第1の決定モジュール及び第1の表示モジュールをさらに含む。
第1の決定モジュールは、目標動作の予想体力消費値を決定する。
第1の表示モジュールは、目標体力表示アセンブリにより予想体力消費値を表示する。予想体力消費値の表示方式は、消費済み体力値及び現在の残り体力値の表示方式とは異なる。
好ましくは、オブジェクト制御モジュール1303は、第2の決定モジュール及び更新モジュールをさらに含む。
第2の決定モジュールは、第1の残り体力値及び予想体力消費値に基づいて、第2の残り体力値を決定する。
更新モジュールは、第2の残り体力値に基づいて目標体力表示アセンブリを更新する。
好ましくは、第1の決定モジュールは、第1の取得ユニット及び第1の決定ユニットを含む。
第1の取得ユニットは、仮想オブジェクトの姿勢を取得する。仮想オブジェクトの姿勢は、立ち姿勢、しゃがみ姿勢、及び伏せ姿勢のうちの少なくとも1つを含む。
第1の決定ユニットは、姿勢に基づいて目標動作の予想体力消費値を決定する。異なる姿勢で同一の動作を実行する場合の予想体力消費値は異なる。
好ましくは、該装置は、取得モジュール及び第3の決定モジュールをさらに含む。
取得モジュールは、目標動作の実行が完了した場合、仮想オブジェクトの姿勢を取得する。
第3の決定モジュールは、姿勢に基づいて少なくとも2つの体力表示アセンブリのそれぞれに対応する体力値の回復速度を決定する。ここで、異なる姿勢で同一の体力表示アセンブリに対応する体力値の回復速度は異なり、同一の姿勢で異なる体力表示アセンブリに対応する体力値の回復速度は異なる。
好ましくは、体力表示アセンブリは、上肢体力表示アセンブリ及び下肢体力表示アセンブリを含む。
好ましくは、アセンブリ決定モジュール1302は、第2の決定ユニット、第3の決定ユニット及び第4の決定ユニットを含む。
第2の決定ユニットは、目標制御操作により示される目標動作が照準、投擲、又は近距離攻撃のうちの少なくとも1つである場合、上肢体力表示アセンブリを目標体力表示アセンブリとして決定する。
第3の決定ユニットは、目標制御操作により示される目標動作が走り又は跳びのうちの少なくとも1つである場合、下肢体力表示アセンブリを目標体力表示アセンブリとして決定する。
第4の決定ユニットは、目標制御操作により示される目標動作が姿勢の切り替え又は登りのうちの少なくとも1つである場合、上肢体力表示アセンブリ及び下肢体力表示アセンブリを目標体力表示アセンブリとして決定する。
好ましくは、アセンブリ表示モジュール1301は、少なくとも2つの体力表示アセンブリにより示される残り体力値が第2の体力閾値よりも小さい場合、少なくとも2つの体力表示アセンブリを表示する。
好ましくは、該装置は、表示停止モジュールをさらに含む。
表示停止モジュールは、少なくとも2つの体力表示アセンブリにより示される残り体力値が第2の体力閾値に回復した場合、少なくとも2つの体力表示アセンブリをハイライト表示した後に、少なくとも2つの体力表示アセンブリの表示を停止する。
好ましくは、該装置は、第4の決定モジュール及び第2の表示モジュールをさらに含む。
第4の決定モジュールは、仮想補給アイテムに対する使用操作に応じて、仮想補給アイテムに対応する補給身体部位を決定する。仮想補給アイテムは、身体部位の残り体力値を増加させるために使用される。
第2の表示モジュールは、補給身体部位に対応する体力表示アセンブリにより体力値の補給効果を表示する。
本発明の実施例では、複数の体力表示アセンブリにより、仮想オブジェクトの異なる身体部位の動作を実行する際の体力消費状況を表示することで、関連技術における単一の体力値及び体力消費の表示形式と比べて、仮想オブジェクトの動作を実行する際の体力消費の写実性を向上させることができると共に、異なる身体部位の残り体力に基づいて仮想オブジェクトの動作の実行を制御し、体力消費の様々な動作の実行への影響をシミュレートすることで、仮想オブジェクトの動作の実行の現実感を向上させ、対戦ゲームの現実感をさらに向上させることができる。
本実施例では、第1の体力閾値及び第2の体力閾値を導入し、目標体力表示アセンブリの残り体力値が第1の体力閾値よりも低い場合、目標動作を2つの種類、即ち第1の体力閾値よりも小さい場合でも引き続き実行できる動作と、第1の体力閾値よりも小さい場合に実行できない動作とに分けられる。仮想オブジェクトの体力が不足している場合、引き続き実行できる動作についてパラメータを用いて動作の実行効果を制御することで、実環境における体力が不足する場合にオブジェクトが動作を実行する効果と体力が十分である場合の実行効果との差別をシミュレートし、ゲームの写実感を強化すると共に、ゲームを正常にプレイできることを保証し、体力値が回復するまで待つことによりゲームの時機を失ってしまうことを回避することができる。
本実施例では、仮想オブジェクトが動作を実行する際に予想体力消費値をさらに表示し、目標体力表示アセンブリの残り体力値が第2の体力閾値よりも大きくなる場合、体力表示アセンブリをハイライト表示し、ハイライト表示の後に体力表示アセンブリの表示を停止することで、ユーザは、仮想オブジェクトの現在の様々な身体部位の体力消費値及び残り体力値をより容易に把握することができ、画面に対する遮蔽を低減させることができる。
本実施例では、仮想オブジェクトの体力が不十分になった場合、仮想補給アイテムを使用して異なる身体部位の体力値を補給し、仮想オブジェクトの異なる姿勢に基づいて体力の回復速度をさらに決定することで、実際の環境で異なる状態でのオブジェクトの体力回復速度が異なることをシミュレートすることができ、ゲームの現実感をさらに向上させることができる。
図14は、本発明の1つの例示的な実施例に係る端末の構成のブロック図である。該端末は、例えばスマートフォン、タブレットコンピュータ、MP3(Moving Picture Experts Group Audio Layer III:ムービングピクチャーエキスパートグループオーディオレイヤーIII)プレイヤ、MP4(Moving Picture Experts Group Audio Layer IV:ムービングピクチャーエキスパートグループオーディオレイヤーIV)プレイヤなどの携帯型移動端末であってもよい。端末は、ユーザ装置、携帯型端末などの他の名称とも称される。
一般に、端末は、プロセッサ1401及びメモリ1402を含む。
プロセッサ1401は、4コアプロセッサ、8コアプロセッサなどのような1つ又は複数の処理コアを含んでもよい。プロセッサ1401は、DSP(Digital Signal Processing:デジタル信号処理)、FPGA(Field Programmable Gate Array:フィールドプログラマブルゲートアレイ)、及びPLA(Programmable Logic Array:プログラマブルロジックアレイ)の少なくとも1つのハードウェア形式で実現されてもよい。プロセッサ1401は、メインプロセッサ及びコプロセッサを含んでもよい。メインプロセッサは、アウェイク状態でデータを処理するために使用されるプロセッサであり、CPU(Central Processing Unit:中央処理装置)とも称される。コプロセッサは、スタンバイ状態でデータを処理するために使用される低電力プロセッサである。幾つかの実施例では、プロセッサ1401は、GPU(Graphics Processing Unit:グラフィックスプロセッシングユニット)と統合されてもよく、GPUは、表示画面に表示される必要がある内容をレンダリング及び描画するために使用される。幾つかの実施例では、プロセッサ1401は、AI(Artificial Intelligence:人工知能)プロセッサをさらに含んでもよく、該AIプロセッサは、機械学習に関連する計算操作を処理するために使用される。
メモリ1402は、1つ又は複数のコンピュータ読み取り可能な記憶媒体を含んでもよく、該コンピュータ読み取り可能な記憶媒体は、有形で非一時的であってもよい。メモリ1402は、高速ランダムアクセスメモリ及び不揮発性メモリ、例えば、1つ又は複数の磁気ディスク記憶装置やフラッシュメモリ記憶装置をさらに含んでもよい。幾つかの実施例では、メモリ1402における非一時的なコンピュータ読み取り可能な記憶媒体は、少なくとも1つの命令が記憶され、該少なくとも1つの命令は、本発明の実施例に係る方法を実現するように、プロセッサ1401により実行されるために使用される。
なお、当業者が理解できるように、端末1400は、図14に示す構成に限定されず、図示されているものより多く、又は少ない構成要素を含んでもよいし、特定の構成要素を組み合わせてもよいし、異なる構成要素の配置を採用してもよい。
本発明の実施例は、コンピュータ読み取り可能な記憶媒体をさらに提供する。該記憶媒体には、少なくとも1つの命令が記憶され、該少なくとも1つの命令は、上記の各実施例に記載されている仮想オブジェクトの制御方法を実現するように、プロセッサによりロードされて実行される。
本発明の実施例は、コンピュータ読み取り可能な記憶媒体に記憶されている少なくとも1つの命令を含むコンピュータプログラムプロダクトをさらに提供する。プロセッサは、該命令をロードして実行することで、上記の各実施例に記載されている仮想オブジェクトの制御方法を実現する。