(57)【特許請求の範囲】
【請求項１】
仮想対話型シナリオにおけるターゲット位置決め方法であって、
電子機器が、ユーザのターゲット位置決めを行うトリガー操作を監視し、トリガー点のスクリーンでの位置を取得するステップと、
前記電子機器が、前記トリガー点の位置及び仮想ターゲット上の複数の吸引点に基づいて、複数の吸引点位置を決定するステップであって、吸引点位置毎に一つの吸引点に対応するステップと、
前記トリガー点の位置がいずれかの前記吸引点位置によって決定された吸引範囲に位置する場合、前記電子機器が、複数の前記吸引点に対して吸引点重み値を計算して、吸引点に対応する複数の吸引点重み値を得るステップと、
前記電子機器が、最大吸引点重み値に対応する吸引点の所在する吸引点位置に、前記トリガー点を移動するステップとを含み、
前記した前記トリガー点の位置がいずれかの前記吸引点位置によって決定された吸引範囲に位置する場合、複数の前記吸引点に対して吸引点重み値を計算して、吸引点に対応する複数の吸引点重み値を得ることは、
前記電子機器が、設定パラメータファイルから前記吸引点の基礎重み係数を取得するステップと、
前記電子機器が、前記仮想ターゲットに対してレイキャスティング検出を行って前記吸引点の可視係数を得るステップと、
前記電子機器が、前記基礎重み係数及び可視係数により前記吸引点の吸引点重み値を計算するステップとを含む、仮想対話型シナリオにおけるターゲット位置決め方法。
【請求項２】
前記仮想ターゲットはアニメーションキャラクターであり且つ複数のアニメーション骨格点によって表され、前記した前記トリガー点の位置及び前記仮想ターゲット上の複数の吸引点に基づいて、複数の吸引点位置を決定する前に、
前記電子機器が、前記仮想ターゲットから複数のアニメーション骨格点を選択して、それぞれ選択されたアニメーション骨格点と前記吸引点との間の一対一に対応するバインディング関係を確立するステップと、
前記電子機器が、前記バインディング関係を、吸引点位置を決定するための設定パラメータファイルに記憶するステップとを更に含む請求項１に記載の方法。
【請求項３】
前記した前記トリガー点の位置及び前記仮想ターゲット上の複数の吸引点に基づいて、複数の吸引点位置を決定することは、
前記電子機器が、前記設定パラメータファイルから、前記吸引点とバインディング関係を有する前記アニメーション骨格点を取得するステップと、
前記電子機器が、前記アニメーション骨格点の前記スクリーンでの位置を検出するステップと、
前記電子機器が、前記アニメーション骨格点の前記スクリーンでの位置を、前記吸引点に対応する吸引点位置とするステップとを含む請求項２に記載の方法。
【請求項４】
前記した前記トリガー点の位置がいずれかの前記吸引点位置によって決定された吸引範囲に位置する場合、複数の前記吸引点に対して吸引点重み値を計算して、吸引点に対応する複数の吸引点重み値を得る前に、
前記トリガー点の位置といずれかの前記吸引点位置との間の距離が予め設定された間隔より小さい場合、前記電子機器が、前記トリガー点の位置がいずれかの前記吸引点位置によって決定された吸引範囲に位置することを判定する請求項１に記載の方法。
【請求項５】
前記電子機器が、複数の銃器種類に銃器重み係数をそれぞれ設定して、複数の前記銃器種類とその銃器重み係数を前記設定パラメータファイルに関連付けて記憶するステップを更に含み、
対応して、前記した前記基礎重み係数及び可視係数により前記吸引点の吸引点重み値を計算することは、
前記電子機器が、前記設定パラメータファイルから前記ユーザが指定した銃器種類を取得し、前記指定された銃器種類に基づいて前記設定パラメータファイルから銃器重み係数を関連的にサーチするステップと、
前記電子機器が、関連的にサーチして得られた銃器重み係数、前記基礎重み係数及び可視係数に基づき前記吸引点の吸引点重み値を算出するステップとを含む請求項１に記載の方法。
【請求項６】
前記した最大吸引点重み値に対応する吸引点の所在する吸引点位置に、前記トリガー点を移動した後、
前記電子機器が、前記ユーザが指定した銃器種類、及び前記吸引点重み値の計算における基礎重み係数及び可視係数を監視するステップと、
該銃器種類、基礎重み係数及び可視係数のうちのいずれかが変化したことを感知した場合、前記電子機器が、吸引点重み値を再計算するようにトリガーするステップと、
前記電子機器が、再算出された吸引点重み値に基づき前記トリガー点を再移動するステップとを更に含む請求項５に記載の方法。
【請求項７】
仮想対話型シナリオにおけるターゲット位置決め方法であって、
電子機器が、ユーザのターゲット位置決めを行うトリガー操作を監視し、トリガー点のスクリーンでの位置を取得するステップと、
前記電子機器が、前記トリガー点の位置及び仮想ターゲット上の複数の吸引点に基づいて、複数の吸引点位置を決定するステップであって、吸引点位置毎に一つの吸引点に対応するステップと、
前記トリガー点の位置がいずれかの前記吸引点位置によって決定された吸引範囲に位置する場合、前記電子機器が、複数の前記吸引点に対して吸引点重み値を計算して、吸引点に対応する複数の吸引点重み値を得るステップと、
前記電子機器が、最大吸引点重み値に対応する吸引点の所在する吸引点位置に、前記トリガー点を移動するステップとを含み、
前記した最大吸引点重み値に対応する吸引点の所在する吸引点位置に、前記トリガー点を移動する前に、
前記電子機器が、前記仮想ターゲットとユーザ操作対象との水平方向での相対変位を決定するステップと、
前記電子機器が、前記相対変位に基づいて吸引角速度を計算することにより、前記トリガー点の移動を前記吸引角速度に従って行わせるステップとを更に含む、仮想対話型シナリオにおけるターゲット位置決め方法。
【請求項８】
前記した前記仮想ターゲットとユーザ操作対象との水平方向での相対変位により吸引角速度を計算することは、
前記電子機器が、それぞれ前記ユーザ操作対象と仮想ターゲットの移動速度を取得するステップと、
前記電子機器が、前記ユーザ操作対象と仮想ターゲットの水平方向に相対変位するときの移動方向に応じて、前記ユーザ操作対象と仮想ターゲットの移動速度をそれぞれ水平方向での速度ベクトルに分解するステップと、
前記電子機器が、前記ユーザ操作対象と仮想ターゲットの水平方向での速度ベクトルに基づき相対移動速度を決定するステップと、
前記電子機器が、前記ユーザ操作対象と仮想ターゲットの前記スクリーンでの位置を検出して、前記ユーザ操作対象と仮想ターゲットの位置に基づき前記ユーザ操作対象と仮想ターゲットとの間の直線距離を算出するステップと、
前記電子機器が、前記相対移動速度及び直線距離により前記吸引角速度を計算するステップとを含む請求項７に記載の方法。
【請求項９】
前記した前記ユーザ操作対象と仮想ターゲットの水平方向での速度ベクトルに基づき相対移動速度を決定することは、
前記電子機器が、前記ユーザ操作対象と仮想ターゲットの水平方向での速度ベクトルに対して速度差を計算するステップと、
前記電子機器が、算出された速度差、前記仮想ターゲットの水平方向での速度ベクトルのうちの最大値を前記相対移動速度とするステップとを含む請求項８に記載の方法。
【請求項１０】
前記した前記相対移動速度及び直線距離により前記吸引角速度を計算することは、
前記電子機器が、前記ユーザが前記トリガー点を前記仮想ターゲットから引き離すトリガー操作を行うことを感知したときに、ユーザ入力速度を計算するステップと、
前記電子機器が、吸引係数とユーザ入力速度との間の変換関係に応じて、前記ユーザ入力速度を対応する吸引係数に変換するステップと、
前記電子機器が、変換された吸引係数、前記相対移動速度及び直線距離に基づき前記吸引角速度を算出するステップとを含む請求項８に記載の方法。
【請求項１１】
前記した最大吸引点重み値に対応する吸引点の所在する吸引点位置に、前記トリガー点を移動する前に、
前記電子機器が、前記ユーザ入力速度を監視するステップと、
前記電子機器が、前記ユーザ入力速度が変化したことを感知した場合、吸引角速度を再計算するようにトリガーするステップとを更に含む請求項１０に記載の方法。
【請求項１２】
前記仮想対話型シナリオは射撃ゲームシナリオであり、前記仮想ターゲットは前記射撃ゲームシナリオにおける照準可能な仮想対象である請求項１に記載の方法。
【請求項１３】
仮想対話型シナリオにおけるターゲット位置決め装置であって、
ユーザのターゲット位置決めを行うトリガー操作を監視し、トリガー点のスクリーンでの位置を取得するように構成されるトリガー点位置取得モジュールと、
前記トリガー点の位置及び仮想ターゲット上の複数の吸引点に基づいて、複数の吸引点位置を決定するように構成される吸引点位置取得モジュールであって、吸引点位置毎に一つの吸引点に対応する吸引点位置取得モジュールと、
前記トリガー点の位置がいずれかの前記吸引点位置によって決定された吸引範囲に位置する場合、複数の前記吸引点に対して吸引点重み値を計算して、吸引点に対応する複数の吸引点重み値を得るように構成される吸引点重み計算モジュールと、
最大吸引点重み値に対応する吸引点の所在する吸引点位置に、前記トリガー点を移動するように構成されるトリガー点移動モジュールとを備え、
前記吸引点重み計算モジュールは、
設定パラメータファイルから前記吸引点の基礎重み係数を取得するように構成される基礎重み係数取得ユニットと、
前記仮想ターゲットに対してレイキャスティング検出を行って前記吸引点の可視係数を得るように構成される可視係数取得ユニットと、
前記基礎重み係数及び可視係数により前記吸引点の吸引点重み値を計算するように構成される計算ユニットとを備える、仮想対話型シナリオにおけるターゲット位置決め装置。
【請求項１４】
前記仮想ターゲットはアニメーションキャラクターであり且つ複数のアニメーション骨格点によって表され、
前記仮想ターゲットから複数のアニメーション骨格点を選択して、それぞれ選択されたアニメーション骨格点と前記吸引点との間の一対一に対応するバインディング関係を確立するように構成されるバインディング関係確立モジュールと、
前記バインディング関係を、吸引点位置を決定するための設定パラメータファイルに記憶するように構成されるバインディング関係記憶モジュールとを備える請求項１３に記載の装置。
【請求項１５】
前記吸引点位置取得モジュールは、
前記設定パラメータファイルから、前記吸引点とバインディング関係を有する前記アニメーション骨格点を取得するように構成される骨格点取得ユニットと、
前記アニメーション骨格点の前記スクリーンでの位置を検出するように構成される骨格点位置検出ユニットと、
前記アニメーション骨格点の前記スクリーンでの位置を、前記吸引点に対応する吸引点位置とするように構成される吸引点位置決定ユニットとを備える請求項１４に記載の装置。
【請求項１６】
前記トリガー点の位置といずれかの前記吸引点位置との間の距離が予め設定された間隔より小さい場合、前記吸引点重み計算モジュールに通知するように構成される距離判断モジュールを更に備える請求項１３に記載の装置。
【請求項１７】
複数の銃器種類に銃器重み係数をそれぞれ設定して、複数の前記銃器種類とその銃器重み係数を前記設定パラメータファイルに関連付けて記憶するように構成される銃器重み係数設定モジュールを更に備え、
対応して、前記計算ユニットは、
前記設定パラメータファイルから前記ユーザが指定した銃器種類を取得し、前記指定された銃器種類に基づいて前記設定パラメータファイルから銃器重み係数を関連的にサーチするように構成される銃器重み係数サーチサブユニットと、
関連的にサーチして得られた銃器重み係数、前記基礎重み係数及び可視係数に基づき前記吸引点の吸引点重み値を算出するように構成される計算サブユニットとを備える請求項１３に記載の装置。
【請求項１８】
前記ユーザが指定した銃器種類、及び前記吸引点重み値の計算における基礎重み係数及び可視係数を監視するように構成される監視モジュールと、
該銃器種類、基礎重み係数及び可視係数のうちのいずれかが変化したことを感知した場合、吸引点重み値を再計算するようにトリガーするように構成される再計算モジュールと、
再算出された吸引点重み値に基づき前記トリガー点を再移動するように構成される再移動モジュールとを備える請求項１７に記載の装置。
【請求項１９】
仮想対話型シナリオにおけるターゲット位置決め装置であって、
ユーザのターゲット位置決めを行うトリガー操作を監視し、トリガー点のスクリーンでの位置を取得するように構成されるトリガー点位置取得モジュールと、
前記トリガー点の位置及び仮想ターゲット上の複数の吸引点に基づいて、複数の吸引点位置を決定するように構成される吸引点位置取得モジュールであって、吸引点位置毎に一つの吸引点に対応する吸引点位置取得モジュールと、
前記トリガー点の位置がいずれかの前記吸引点位置によって決定された吸引範囲に位置する場合、複数の前記吸引点に対して吸引点重み値を計算して、吸引点に対応する複数の吸引点重み値を得るように構成される吸引点重み計算モジュールと、
最大吸引点重み値に対応する吸引点の所在する吸引点位置に、前記トリガー点を移動するように構成されるトリガー点移動モジュールと、
前記仮想ターゲットとユーザ操作対象との水平方向での相対変位を決定するように構成される決定モジュールと、
前記相対変位に基づいて吸引角速度を計算することにより、前記トリガー点の移動を前記吸引角速度に従って行わせる実行モジュールとを備える仮想対話型シナリオにおけるターゲット位置決め装置。
【請求項２０】
電子機器であって、
プロセッサと、
前記プロセッサによって実行されるときに請求項１−１２のいずれか１項に記載の仮想対話型シナリオにおけるターゲット位置決め方法を実現するコンピュータ可読命令が記憶されているメモリとを備える電子機器。
【請求項２１】
プロセッサによって実行されるときに請求項１−１２のいずれか１項に記載の仮想対話型シナリオにおけるターゲット位置決め方法を実現するコンピュータプログラムが記憶されているコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本願は、２０１７年９月２１日に提出された発明名称「仮想対話型シナリオにおけるターゲット位置決め方法及び装置」の中国特許出願第２０１７１０８５７５５０９号の優先権を主張し、ここで、その内容の全体を引用によって本明細書に組み込まれる。
【０００２】
［技術分野］
本開示はコンピュータの技術分野に関し、特に仮想対話型シナリオにおけるターゲット位置決め方法、装置及び電子機器に関する。
【背景技術】
【０００３】
コンピュータ技術の発展に伴って、一人称で構築された仮想対話型シナリオは徐々にユーザの視野に入り、たとえば、該仮想対話型シナリオは射撃ゲームシナリオ、攻撃ゲームシナリオ等を含むことができる。射撃ゲームシナリオを例として、ユーザは、射撃ゲームシナリオにおいて一人称で作成されたユーザ操作対象を介して照準して射撃するゲームを行い、すなわち、ユーザの主観的視点によって仮想ターゲットの照準を行って、更に仮想ターゲットへの射撃を行う。
【０００４】
ユーザの視角の影響により、仮想ターゲットの照準は偏っている可能性があり、その結果、仮想ターゲットへ不正確に射撃することが引き起こされる。そのため、従来技術において、ターゲット位置決め方法を提供しており、即ち、仮想ターゲットに吸引点を設置し、仮想ターゲットを指すトリガー点が該吸引点に接近する場合、トリガー点が仮想ターゲットに設置された吸引点に自動的に吸引され、それによって射撃ゲームシナリオにおける仮想ターゲットの自動照準を実現し、それによりユーザがターゲット位置決めを正確に完了することを支援する。
【０００５】
吸引点は一般的に仮想ターゲットの固定位置に設置されるため、トリガー点が該固定位置に接近するときだけ、自動吸引が有効になり、そうでない場合、仮想ターゲットの照準が依然として不正確になる可能性がある。
【０００６】
以上から分かるように、仮想対話型シナリオにおいて、従来のターゲット位置決め方法は依然として柔軟性の欠如の制限がある。
【発明の概要】
【０００７】
上記技術課題を解決するために、本開示の１つの目的は、仮想対話型シナリオにおけるターゲット位置決め方法、装置及び電子機器を提供することである。
【０００８】
本開示が採用される技術案は以下のとおりである。
【０００９】
仮想対話型シナリオにおけるターゲット位置決め方法であって、ユーザがターゲット位置決めを行うためのトリガー操作を監視し、トリガー点のスクリーンでの位置を取得するステップと、前記トリガー点の位置及び仮想ターゲット上の複数の吸引点に基づいて、複数の吸引点位置を決定するステップであって、吸引点位置毎に一つの吸引点に対応するステップと、前記トリガー点の位置がいずれかの前記吸引点位置によって決定された吸引範囲に位置する場合、複数の前記吸引点に対して吸引点重み値を計算して、吸引点に対応する複数の吸引点重み値を得るステップと、最大吸引点重み値に対応する吸引点の所在する吸引点位置に、前記トリガー点を移動するステップとを含む。
【００１０】
仮想対話型シナリオにおけるターゲット位置決め装置であって、ユーザがターゲット位置決めを行うためのトリガー操作を監視し、トリガー点のスクリーンでの位置を取得するように構成されるトリガー点位置取得モジュールと、前記トリガー点の位置及び仮想ターゲット上の複数の吸引点に基づいて、複数の吸引点位置を決定するように構成される吸引点位置取得モジュールであって、吸引点位置毎に一つの吸引点に対応する吸引点位置取得モジュールと、前記トリガー点の位置がいずれかの前記吸引点位置によって決定された吸引範囲に位置する場合、複数の前記吸引点に対して吸引点重み値を計算して、吸引点に対応する複数の吸引点重み値を得るように構成される吸引点重み計算モジュールと、最大吸引点重み値に対応する吸引点の所在する吸引点位置に、前記トリガー点を移動するように構成されるトリガー点移動モジュールとを備える。
【００１１】
電子機器であって、プロセッサと、前記プロセッサによって実行されるときに上述した仮想対話型シナリオにおけるターゲット位置決め方法を実現するコンピュータ可読命令が記憶されているメモリとを備える。
【００１２】
コンピュータ可読記憶媒体であって、プロセッサによって実行されるときに上述した仮想対話型シナリオにおけるターゲット位置決め方法を実現するコンピュータプログラムが記憶されている。
【００１３】
従来技術に比べて、本開示は以下の有益な効果を有する。
【００１４】
仮想ターゲットに複数の吸引点を設置して、仮想ターゲットを指すためのトリガー点をいずれかの吸引点に接近させ、更にトリガー点をそのうちの１つの吸引点に自動的に吸引させるようにトリガーすることにより、ユーザがターゲット位置決めを正確に完了するのを支援する。
【００１５】
具体的には、ユーザがターゲット位置決めを行うためのトリガー操作を監視し、トリガー点のスクリーンでの位置を取得して、トリガー点の位置及び複数の吸引点に基づいて、吸引点位置を決定するようにトリガーし、且つトリガー点の位置がいずれかの吸引点位置によって決定された吸引範囲に位置する場合、複数の吸引点に対して吸引点重み値を計算し、吸引点に対応する複数の吸引点重み値を得て、更に、最大吸引点重み値に対応する吸引点が所在する吸引点位置にトリガー点を移動する。これにより、トリガー点が任意の吸引点に接近するときに自動吸引が有効になることができ、仮想対話型シナリオにおけるターゲット位置決めの柔軟性を更に効果的に強化する。
【００１６】
また、トリガー点が吸引点重み値が最も大きい吸引点に自動的に吸引され、吸引点に対応する吸引点重み値が変化すると、トリガー点の自動的な吸引はそれに従って変化し、ユーザにとって、トリガー点の自動吸引位置が固定ではなく、それにより、ターゲット位置決めの柔軟性を更に強化させる。
【００１７】
なお、以上の一般的な説明及び以下の詳細な説明は例示的及び解釈的なものに過ぎず、本開示を限定することができない。
【図面の簡単な説明】
【００１８】
【図１】従来技術に係る吸引点の模式図である。
【図２】例示的な実施例に係る電子機器のハードウェア構造模式図である。
【図３】例示的な実施例に係る仮想対話型シナリオにおけるターゲット位置決め方法のフローチャートである。
【図４】本開示に係る吸引点の模式図である。
【図５】例示的な実施例に係る別の仮想対話型シナリオにおけるターゲット位置決め方法のフローチャートである。
【図６】図３の対応する実施例におけるステップ３３０の１つの実施例でのフローチャートである。
【図７】本開示に係る吸引点位置によって決定された吸引範囲の模式図である。
【図８】図３の対応する実施例におけるステップ３５０の１つの実施例でのフローチャートである。
【図９】図８の対応する実施例におけるステップ３５５の１つの実施例でのフローチャートである。
【図１０】例示的な実施例に係る別の仮想対話型シナリオにおけるターゲット位置決め方法のフローチャートである。
【図１１】本開示に係るユーザ操作対象と仮想ターゲットとの間の相対変位の模式図である。
【図１２】本開示に係る相対移動速度の模式図である。
【図１３】本開示に係る吸引係数とユーザのスクリーンスライド速度との間の変換関係の模式図である。
【図１４】例示的な実施例に係る仮想対話型シナリオにおけるターゲット位置決め装置のブロック図である。
【図１５】例示的な実施例に係る別の仮想対話型シナリオにおけるターゲット位置決め装置のブロック図である。
【図１６】図１４の対応する実施例における吸引点位置取得モジュール７３０の１つの実施例でのブロック図である。
【図１７】図１４の対応する実施例における吸引点重み値計算モジュール７５０の１つの実施例でのブロック図である。
【図１８】図１７の対応する実施例における計算ユニット７５５の１つの実施例でのブロック図である。
【図１９】例示的な実施例に係る別の仮想対話型シナリオにおけるターゲット位置決め装置のブロック図である。
【図２０】例示的な実施例に係る電子機器の別のハードウェア構造模式図である。
【発明を実施するための形態】
【００１９】
上記の図は、本明細書の一部として明細書に組み込まれ、本開示に合致する実施例を示して、明細書と共に本開示の原理を解釈する。
【００２０】
上記図によって、本開示の明確な実施例を示しており、以下、より詳細に説明し、これらの図及び文字による説明は、決して何らかの方法で本開示の発想の範囲を限定するものではなく、特定の実施例を参照することによって当業者のために本開示の概念を説明するものである。
【００２１】
ここで、例示的な実施例を詳細に説明し、その例が図面に示される。以下の説明は図に関するときに、別段の指定がない限り、異なる図における同一の数字は同一又は類似する要素を示す。以下の例示的な実施例に説明された実施形態は本開示に合致するすべての実施形態を表すものではない。逆に、それらは、添付の特許請求の範囲に詳述された、本開示の一態様に合致する装置及び方法の例だけである。
【００２２】
上記のように、通常、吸引点が仮想ターゲットの固定位置に設置され、仮想ターゲットがアニメーションキャラクターであることを例として説明し、図１に示すように、吸引点が該アニメーションキャラクターの体に設置される場合、トリガー点がアニメーションキャラクターの体上の該吸引点に接近するだけで、自動吸引が有効になる。
【００２３】
これに基づき、従来技術においてターゲット位置決め方法は依然として柔軟性欠如の欠陥が存在し、それにより、本開示においては、該仮想対話型シナリオにおけるターゲット位置決め方法によりターゲット位置決めの柔軟性を効果的に強化する仮想対話型シナリオにおけるターゲット位置決め方法を提供する。
【００２４】
図２は例示的な実施例に係る電子機器１００のハードウェア構造模式図である。該電子機器１００はスマートフォン、コンピュータ、タブレットＰＣ等であってもよく、ここで限定されない。
【００２５】
なお、該電子機器１００は１つの本開示に適合された一例であり、本開示の使用範囲に対するいかなる限定を提供するものと考えることができない。該電子機器１００は、図２に示された例示的な電子機器１００における１つの又は複数のユニットに依存しなければならず又は含有する必要があると解釈することができない。
【００２６】
該電子機器１００のハードウェア構造は異なる構成又は特性に応じて大きい差異を有することができ、図２に示すように、電子機器１００は、電源１１０、インタフェース１３０、少なくとも１つの記憶媒体１５０、及び少なくとも１つの中央プロセッサ（ＣＰＵ  、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔｓ）１７０を備える。
【００２７】
電源１１０は電子機器１００上の各ハードウェア装置に動作電圧を提供する。
【００２８】
インタフェース１３０は少なくとも１つの有線又は無線ネットワークインタフェース１３１、少なくとも１つのシリアルパラレル変換インタフェース１３３、少なくとも１つの入出力インタフェース１３５及び少なくとも１つのＵＳＢインタフェース１３７等を含み、外部機器と通信する。
【００２９】
記憶媒体１５０はリソース記憶媒体として、ランダム記憶媒体、磁気ディスク又は光ディスク等であってもよく、記憶されているリソースはオペレーティングシステム１５１、アプリケーションプログラム１５３及びデータ１５５等を含み、記憶方式は一時的な記憶又は恒久的な記憶であってもよい。オペレーティングシステム１５１は、中央プロセッサ１７０による大量のデータ１５５の計算及び処理を実現するために、電子機器１００における各ハードウェア装置及びアプリケーションプログラム１５３を管理及び制御し、Ｗｉｎｄｏｗｓ  ＳｅｒｖｅｒＴＭ、Ｍａｃ  ＯＳ  ＸＴＭ、ＵｎｉｘＴＭ、ＬｉｎｕｘＴＭ、ＦｒｅｅＢＳＤＴＭ等であってもよい。アプリケーションプログラム１５３は、オペレーティングシステム１５１に基づき少なくとも１つの特定の動作を完了するコンピュータプログラムであり、少なくとも１つのモジュール（図２に図示せず）を備えてもよく、各モジュールがいずれもそれぞれ電子機器１００に対する一連の操作命令を含んでもよい。データ１５５は磁気ディスクに記憶された写真、ピクチャー等であってもよい。
【００３０】
中央プロセッサ１７０は、１つ又は複数以上のプロセッサを含んでもよく、且つバスを介して記憶媒体１５０と通信するように設置され、記憶媒体１５０における大量のデータ１５５を計算及び処理する。
【００３１】
以上詳細に説明したように、本開示に適用する電子機器１００は、中央プロセッサ１７０によって記憶媒体１５０に記憶された一連の操作命令を読み取る形式で射撃類ゲームにおける自動照準を行う。
【００３２】
また、ハードウェア回路又はハードウェア回路とソフトウェア命令との組み合わせによって同様に本開示を実現することができ、従って、本開示の実現は、任意の特定のハードウェア回路、ソフトウェア及び両者の組合せに限定するものではない。
【００３３】
図３に示すように、例示的な実施例では、仮想対話型シナリオにおけるターゲット位置決め方法が図２に示される電子機器１００に適用でき、該種類の仮想対話型シナリオにおけるターゲット位置決め方法は電子機器１００によって実行されてもよく、以下のステップを含んでもよい。
【００３４】
ステップ３１０において、ユーザがターゲット位置決めを行うためのトリガー操作を監視し、トリガー点のスクリーンでの位置を取得する。
【００３５】
電子機器内の一人称で構築された仮想対話型シナリオに対して、仮想ターゲットは仮想対話型シナリオにおける人物、動物、アイテム、山川、建物等の仮想対象であってもよく、言い換えれば、仮想ターゲットは仮想対話型シナリオにおけるユーザによってトリガーされてターゲット位置決めを行う仮想対象であり、たとえば、攻撃ゲームシナリオにおいて、ユーザは船舶発破任務を実行するために、仮想対象の船舶に対してターゲット位置決めを行う。
【００３６】
対応して、ユーザは、キーボード、マウス、ゲームジョイスティック、スタイラス、タッチパネル等の電子機器に配置された入力装置を操作することにより、仮想対象に対してターゲット位置決めを行うことができる。ユーザがターゲット位置決めを行うためのトリガー操作はユーザが入力装置を操作することによりトリガーされることができ、トリガー点は、ユーザが入力装置を操作して行われるトリガー操作に対応し、且つターゲット位置決めを行うためにユーザによってトリガーされた仮想対象を指す。
【００３７】
例を挙げて以下のように説明し、射撃ゲームシナリオにおいて、ユーザが仮想対象に対してターゲット位置決めを行うようにトリガーすることは、ユーザの視点からユーザ操作対象を介して銃器等の装備の照準中心を操作してターゲットの敵を照準することである。
【００３８】
ターゲットの敵を照準して射撃するときに、先ずユーザが指でタッチパネルにスライドすることにより照準中心を他の任意位置からターゲットの敵に接近する所定の範囲内に移動し、ターゲットの敵を照準し、照準中心がターゲットの敵に接近する所定の範囲に滞在するとき、ユーザがクリック操作（たとえばタッチパネルをタッチする）により照準されたターゲットの敵を射撃する。
【００３９】
上記過程では、照準中心は移動され且つターゲットの敵を指す移動傾向があり、それにより、該照準中心をトリガー点と見なすことができ、すなわち、射撃ゲームシナリオにおいて、トリガー点はユーザの指のタッチパネルでのスライド操作に対応し、且つユーザにより照準されたターゲットの敵を指す。
【００４０】
更に、射撃ゲームシナリオにおいて、ユーザがターゲットの敵の照準を正確に完了するのを支援して、ユーザがターゲットの敵を射撃するときのヒット率を確保するために、ターゲットの敵に対する照準は自動照準を更に含み、即ち、ユーザが精確に制御し照準する必要がなく、照準中心をターゲットの敵に所定の範囲に接近させるだけでよく、ユーザが照準中心をターゲットの敵に所定の範囲接近する場合、照準中心が該ターゲットの敵の身に設置された吸引点に自動的に吸引される。つまり、自動吸引が有効になる前提は照準中心が吸引点に接近し、すなわちトリガー点が吸引点に接近することである。
【００４１】
このため、自動吸引を行う前に、先ずトリガー点と吸引点のスクリーンでの位置を決定する必要があり、更にそれに基づきトリガー点が吸引点に接近したか否かを判断し、トリガー点が吸引点に接近するときのみに自動吸引をトリガーする。
【００４２】
上記のように、トリガー点は他のいずれかの位置から仮想ターゲットに接近する所定の範囲に移動し、且つ移動過程中に仮想ターゲットを指す移動傾向があり、そして最終的に仮想ターゲットに接近する所定の範囲内に滞在する。
【００４３】
従って、上記過程では、ユーザがターゲット位置決めを行うためのトリガー操作を連続的に検出することにより、移動中のトリガー点のスクリーンでの位置及び滞在するトリガー点のスクリーンでの位置を含む移動過程全体におけるトリガー点のスクリーンでの位置を取得し、このようにして、トリガー点のスクリーンでの位置に基づきトリガー点が仮想ターゲット上の吸引点に接近したか否かを判断することができる。
【００４４】
実施例の具体的な実現では、滞在するトリガー点のスクリーンでの位置に対してトリガー点が仮想ターゲット上の吸引点に接近するか否かを判断し、更にトリガー点の自動吸引を迅速で正確に行い、同時にプロセッサのタスク処理力を低減させ、ターゲット位置決め効率の向上に有利である。
【００４５】
ただし、トリガー点のスクリーンでの位置を検出する検出関数は予め設定されており、たとえばＭｏｕｓｅ  Ｐｏｓｉｔｉｏｎ関数はカーソルのスクリーンでの滞在位置を取得することができ、ここで１つずつ列挙されず、上記予め設定された関数はいずれも電子機器によって直接呼び出すことができる。
【００４６】
また、トリガー点のスクリーンでの位置は座標値の形式で表すことができる。
【００４７】
ステップ３３０において、トリガー点の位置及び仮想ターゲット上の複数の吸引点に基づき複数の吸引点位置を決定する。
【００４８】
トリガー点の位置を決定した後、仮想ターゲット上の吸引点に対応する吸引点位置を更に決定する。仮想ターゲットがトリガー点によって指される。つまり、トリガー点の位置によって先ずユーザがトリガーしてターゲット位置決めを行う仮想ターゲットを決定し、更に仮想ターゲット上の吸引点に基づき対応する吸引点位置決定する。
【００４９】
仮想ターゲット上の複数の吸引点のそれぞれが１つの吸引点位置に対応する。
【００５０】
具体的には、設定パラメータファイルから仮想ターゲット上の吸引点を取得して、且つ該吸引点のスクリーンでの位置を検出し、該吸引点に対応する吸引点位置を得る。
【００５１】
たとえば、電子機器は仮想対話型シナリオをディスプレイするためのクライアントを実行し、設定パラメータファイルは、該クライアントにおけるパラメータ（ｐｒｅｆｅｒｅｎｃｅ）ディレクトリでのｘｍｌファイルであり、設定された各種のパラメータを記憶し、たとえば、パラメータは仮想対話型シナリオにおいて各仮想対象に設置された吸引点を含むがこれに限定されない。
【００５２】
なお、吸引点は設定パラメータファイルにおいて吸引点識別子によって一意に表され、吸引点識別子は数字、アルファベット、又は両者の組み合わせで表され、ここで限定されない。たとえば、仮想対象Ａ上に２つの吸引点Ａ１とＡ２が設置されており、Ａ１とＡ２はすなわち吸引点識別子である。
【００５３】
勿論、他の実施例では、設定パラメータファイルは、ユーザが仮想対話型シナリオに入るときに行われた選択を対応して保存し、射撃ゲームシナリオを例とし、行われた選択は、ユーザ操作対象、ユーザが指定した銃器の種類、ユーザが指定した入る射撃ステージ等を含み、同時にゲームの他の固有の設定パラメータを記憶しており、たとえば、設定パラメータは、仮想対象の移動速度等を含む。ユーザ操作対象とは仮想対話型シナリオにおける一人称で作成された仮想対象であり、すなわち、該ユーザ操作対象はユーザが一人称で置換又は操作する仮想対象である。
【００５４】
更に、仮想ターゲットがアニメーションキャラクターであると仮定すると、理解できるのは、該アニメーションキャラクターに対応するアニメーションポーズは変化し、たとえばアニメーションキャラクターのアニメーションポーズは立ち上がることから横になることになり、対応して、該アニメーションキャラクターに設置された吸引点に対応する吸引点位置もそれに従って変化し、すなわち吸引点位置が該アニメーションキャラクターのアニメーションポーズに関連付けられる。
【００５５】
ステップ３５０において、トリガー点の位置がいずれかの吸引点位置によって決定された吸引範囲に位置する場合、複数の吸引点に対して吸引点重み値を計算し、吸引点に対応する複数の吸引点重み値を得る。
【００５６】
吸引範囲は吸引点位置を円心とし、予め設定された間隔を半径として定義された範囲である。
【００５７】
上記３３０ステップで得られる複数の吸引点位置に対して、トリガー点の位置がいずれかの吸引点位置によって定義された範囲内に位置する場合、トリガー点の位置が該いずれかの吸引点位置によって決定された吸引範囲にあると見なし、このとき、自動吸引が有効になり、トリガー点が１つの吸引点位置に対応する吸引点に自動的に吸引される。
【００５８】
自動吸引は、トリガー点の位置と最も近い吸引点位置に対応する吸引点に基づいて吸引してもよく、又は吸引点の優先度に基づき吸引してもよい。
【００５９】
更に、優先度は吸引点位置に応じて対応して設定されてもよく、又はユーザが指定した銃器種類に応じて対応して設定されてもよい。
【００６０】
たとえば、仮想ターゲットがアニメーションキャラクターであることを例として説明し、図４に示すように、該アニメーションキャラクターに、それぞれ頭、体、脚、左手及び右手に位置する５つの吸引点が設置されると仮定すると、優先度に応じてそれぞれは体、頭、脚及び両手（左手と右手）である。つまり、吸引点位置が該アニメーションキャラクターの中央の３つの部位に位置する吸引点の優先度がいずれも、吸引点位置が該アニメーションキャラクターの両側部位に位置する吸引点の優先度より高い。
【００６１】
又は、ユーザが指定した銃器種類がスナイパーライフルである場合、アニメーションキャラクター頭上の吸引点の優先度が体上の他の吸引点の優先度より高い。本実施例では、吸引点の優先度が吸引点重み値によって表される。このため、自動吸引を行う前に、吸引点に対応する優先度を知るために吸引点に対応する吸引点重み値を得る必要があり、更にトリガー点を優先度が最も高い吸引点が所在する吸引点位置に移動する。
【００６２】
たとえば、引き続き上記例で説明し、頭上の吸引点の優先度が体上の吸引点の優先度より高いと仮定すると、トリガー点が頭上の吸引点に自動的に吸引される。
【００６３】
吸引点重み値は吸引点が所在する吸引点位置、銃器種類、吸引点が可視できるか否かに関連付けられる。
【００６４】
より更に、吸引点重み値の取得過程では、吸引点重み値は、吸引点が所在する吸引点位置、銃器種類、吸引点が可視できるか否かに基づいて動的に配置されてもよい。
【００６５】
ステップ３７０において、最大吸引点重み値に対応する吸引点が所在する吸引点位置にトリガー点を移動する。
【００６６】
最大吸引点重み値に対応する吸引点にトリガー点が自動的に吸引されるまで、ユーザがターゲット位置決めを完了するのを支援する。
【００６７】
上記過程により、複数の吸引点が仮想対象上に設置され、仮想対象は、ユーザがターゲット位置決めを行うためのトリガー操作により仮想ターゲットになるとき、トリガー点が仮想ターゲット上のいずれかの吸引点に接近する限りトリガーし自動的に吸引され、すなわち、トリガー点は、吸引点重み値に応じて吸引点重み値が最も大きい吸引点に自動的に吸引され、それゆえ、ユーザにとって、吸引点が仮想ターゲットの固定位置に設置せず、吸引点位置が可変であり、いずれかの吸引点がトリガー点によって自動的に吸引される可能性があり、それにより、ターゲット位置決めの柔軟性を効果的に高める。
【００６８】
また、異なる吸引点が異なる吸引点重み値に対応し、トリガー点は吸引点重み値が最も大きい吸引点のみに移動し、吸引点重み値が変化すると、トリガー点の自動吸引はそれに従って変化し、それにより、ターゲット位置決めの柔軟性を更に高める。
【００６９】
例示的な実施例では、仮想ターゲットはアニメーションキャラクターであり且つ複数のアニメーション骨格点によって表される。該アニメーションキャラクターは人物キャラクター、動物キャラクター等を含む。
【００７０】
先ず、仮想ターゲットがアニメーションキャラクターである場合、骨格アニメーションをアニメーションキャラクターとしてアニメーションを生成する方式を採用し、すなわち、骨格アニメーションにおいて、互いに接続する「骨格」でアニメーションキャラクターのスケルトン構造を構成し、且つスケルトン構造における「骨格」の向き及び位置を改変することによりアニメーションキャラクターのためにアニメーションを生成し、更にアニメーションキャラクターを異なるアニメーションポーズでスクリーンに表示させる。
【００７１】
これに基づき、仮想ターゲットがアニメーションキャラクターである場合、複数のアニメーション骨格点によって表されるものである。たとえば、アニメーション骨格点Ａでアニメーションキャラクターの頭を表し、アニメーション骨格点Ｂでアニメーションキャラクターの左手を表す。言い換えれば、アニメーション骨格点はアニメーションキャラクター上の異なる部位を一意に識別する。
【００７２】
対応して、図５に示すように、ステップ３３０の前に、上述した方法は以下のステップを更に含んでもよい。
【００７３】
ステップ４１０において、仮想ターゲットから複数のアニメーション骨格点を選択して、選択されたアニメーション骨格点と吸引点との間の一対一に対応するバインディング関係をそれぞれ確立する。
【００７４】
ステップ４３０において、バインディング関係を、吸引点位置を決定するための設定パラメータファイルに記憶する。
【００７５】
例を挙げて、アニメーションキャラクターの頭、体、脚、左手及び右手に設置されようとする５つの吸引点を予め定義する。
【００７６】
対応して、アニメーションキャラクターから５つのアニメーション骨格点を選択して、該５つのアニメーション骨格点はそれぞれアニメーションキャラクター上の異なる部位：頭、体、脚、左手及び右手を識別する。
【００７７】
更に、該５つのアニメーション骨格点と５つの吸引点との間の一対一に対応するバインディング関係を確立し、且つ該バインディング関係を設定パラメータファイルに記憶する。
【００７８】
それにより、５つの吸引点がアニメーションキャラクターに予め設置されている。且つ、アニメーションキャラクターのアニメーションポーズが変化する場合、アニメーション骨格点の位置が変化したので、吸引点が所在する吸引点位置もアニメーション骨格点の位置に従って変化する。
【００７９】
言い換えれば、アニメーションキャラクターのアニメーションポーズがどのように変化しても、人物に予め設置された５つの吸引点が常に存在し、更にトリガー点の自動吸引がアニメーションキャラクターのアニメーションポーズの変化に従って変化することを可能にし、それによりターゲット位置決めの有効性を十分に保証する。
【００８０】
更に、図６に示すように、ステップ３３０は以下のステップを含んでもよい。
【００８１】
ステップ３３１において、設定パラメータファイルから、吸引点とバインディング関係を有するアニメーション骨格点を取得する。
【００８２】
ステップ３３３において、アニメーション骨格点のスクリーンでの位置を検出する。
【００８３】
ステップ３３５において、アニメーション骨格点のスクリーンでの位置を、吸引点に対応する吸引点位置とする。
【００８４】
上記のように、アニメーションキャラクターのアニメーションポーズが変化する場合、アニメーション骨格点の位置が変化したので、吸引点が所在する吸引点位置もアニメーション骨格点の位置に従って変化する。
【００８５】
それにより、吸引点に対応する吸引点位置は、該吸引点とバインディング関係を有するアニメーション骨格点の位置である。
【００８６】
具体的には、パラメータファイルに記憶されている吸引点とアニメーション骨格点との間の一対一に対応するバインディング関係によって、先ず吸引点とバインディング関係を有するアニメーション骨格点を得て、且つ該アニメーション骨格点のスクリーンでの位置を検出し、更に検出されたアニメーション骨格点のスクリーンでの位置を該吸引点に対応する吸引点位置とする。
【００８７】
更に、アニメーション骨格点位置の検出はリアルタイムでも周期的でもよく、ここで限定されず、実際の応用シナリオに応じて柔軟的に調整することができる。たとえば、移動性が高い射撃ゲームシナリオにおいて、アニメーション骨格点位置の検出周期が短い。
【００８８】
なお、アニメーション骨格点のスクリーンでの位置も座標値の形式で表される。
【００８９】
上記実施例の協力により、吸引点のキャラクターアニメーションのバインディングを実現し、すなわち、アニメーションキャラクターがどのアニメーションポーズに位置しても安定的な吸引点位置を有し、更に常に有効的な吸引点を有してトリガー点を自動的に吸引することを確保し、自動吸着の無効を回避し、それによりターゲット位置決めの信頼性及び精度を保証する。
【００９０】
例示的な実施例では、ステップ３５０の前、上述した方法は以下のステップを更に含んでもよい。
【００９１】
トリガー点の位置といずれかの吸引点位置との間の距離が予め設定された間隔より小さいか否かを判断する。
【００９２】
Ｙｅｓである場合、トリガー点の位置がいずれかの吸引点位置によって決定された吸引範囲に位置することを判定する。
【００９３】
上記のように、吸引範囲は吸引点位置を円心とし、予め設定された間隔を半径として定義された範囲である。
【００９４】
予め設定された間隔は実際の応用シナリオに応じて柔軟的に調整することができ、ここで限定されない。
【００９５】
それにより、図７に示すように、いずれかの吸引点が所在する吸引点位置がＡであり、予め設定された間隔がＲであると仮定すると、図７の円で示す範囲は該吸引点位置Ａによって決定される吸引範囲である。
【００９６】
トリガー点の位置がＢであり、トリガー点の位置Ｂと吸引点位置Ａとの間の距離がＲａｂであると仮定すると、Ｒａｂ＞Ｒ、トリガー点の位置Ｂと吸引点位置Ａとの間の距離が予め設定された間隔より大きいと表すので、トリガー点の位置Ｂが吸引点位置Ａによって決定される吸引範囲に位置しないと判定し、この場合、自動吸引が有効にならず、吸引点重み値を計算せず、且つステップ３１０に戻る。
【００９７】
トリガー点の位置がＣであり、トリガー点の位置Ｃと吸引点位置Ａとの間の距離がＲａｃであると仮定すると、Ｒａｃ＜Ｒ、トリガー点の位置Ｂと吸引点位置Ａとの間の距離が予め設定された間隔より小さいと表すので、トリガー点の位置Ｃが吸引点位置Ａによって決定された吸引範囲に位置することを判定し、この場合、自動吸引が有効になり、吸引点重み値を計算し、ステップ３５０に進む。
【００９８】
上記実施例の作用により、予め設定された間隔の設定によって吸引範囲の大きさを柔軟的に調整することができ、更に異なる仮想ターゲットに対して異なる吸引範囲を設定することを実現し、たとえば、射撃ゲームシナリオにおいて、ｂｏｓｓレベルのアニメーションキャラクターは小さい吸引範囲を設定して、仮想ターゲット照準の複雑さを増加し、更にターゲット位置決めの柔軟性を効果的に高めてもよい。
【００９９】
図８に示すように、例示的な実施例では、ステップ３５０は以下のステップを含んでもよい。
【０１００】
ステップ３５１において、設定パラメータファイルから吸引点の基礎重み係数を取得する。
【０１０１】
基礎重み係数は、吸引点が所在する吸引点位置に関連付けられ、つまり、吸引点位置が異なると、基礎重み係数も異なり、それにより仮想ターゲット内の異なる位置での吸引点の優先度を表す。
【０１０２】
仮想ターゲットがアニメーションキャラクターである場合、図４に示すように、吸引点位置が頭に位置すると、基礎重み係数が３であり、吸引点位置が体に位置すると、基礎重み係数が４であり、該仮想ターゲット体上の吸引点の優先度がその頭上の吸引点の優先度より高い。
【０１０３】
基礎重み係数は予め定義されて設定パラメータファイルに記録されており、同時に、該基礎重み係数は実際の応用シナリオに応じて柔軟的に調整することができる。たとえば、射撃ゲームシナリオにおいて、ユーザが仮想ターゲットの頭を照準する傾向があると、頭に位置する吸引点の基礎重み係数を５に調整することができ、それによりユーザのニーズを満たし、更にユーザの照準射撃体験を向上させることに有利である。
【０１０４】
設定パラメータファイルにおける基礎重み係数がユーザによってカスタマイズされてもよく、または開発者によって定義されてもよく、ここで限定されない。
【０１０５】
これに基づき、設定パラメータファイルから吸引点の基礎重み係数を得ることができる。
【０１０６】
ステップ３５３において、仮想ターゲットに対してレイキャスティング検出を行って吸引点の可視係数を得る。
【０１０７】
理解できるのは、仮想ターゲットが防護の後ろに隠されていると、仮想ターゲットに設置された一部ひいては全ての吸引点は防護によって遮断される可能性がある。
【０１０８】
それにより、可視係数は、吸引点が防護によって遮断されているか否かを示す。たとえば、可視係数が０である場合、吸引点が防護によって遮断されていることを示し、逆に、可視係数が１である場合、吸引点が防護によって遮断されていないことを示す。
【０１０９】
本実施例では、可視係数は仮想ターゲットに対してレイキャスティング検出を行うことにより得られる。レイキャスティング検出とは、光線を仮想ターゲットの外から仮想ターゲットに投影し、光線が仮想ターゲットの外から仮想ターゲットを通過できると、可視と見なすことである。
【０１１０】
たとえば、レイキャスティング検出は電子機器に予め設定された検出関数によって行われてもよく、たとえば、  Ｒａｙｃａｓｔ関数によって返されるレイキャスティング検出結果が可視係数である。
【０１１１】
ステップ３５５において、基礎重み係数及び可視係数により吸引点の吸引点重み値を計算する。
【０１１２】
具体的には、吸引点重み値の計算公式は下記の通りである。
【０１１３】
Ｗｐｏｉｎｔ＝ωｂａｓｅ×Ｒｈｉｔ
Ｗｐｏｉｎｔは仮想ターゲットの任意１つの吸引点の吸引点重み値を表し、ωｂａｓｅは該吸引点の基礎重み係数を表し、Ｒｈｉｔは該吸引点の可視係数を表す。
【０１１４】
上記過程では、仮想ターゲット上に設置された各吸引点にそれぞれ対応する吸引点重み値を得ることができ、トリガー点の移動に十分な根拠を提供する。
【０１１５】
例示的な実施例では、上述した方法は以下のステップを更に含んでもよい。
【０１１６】
複数の銃器種類に銃器重み係数をそれぞれ設定して、複数の銃器種類とその銃器重み係数を設定パラメータファイルに関連付けて記憶する。
【０１１７】
対応して、図９に示すように、ステップ３５５は以下のステップを含んでもよい。
【０１１８】
ステップ３５５１において、設定パラメータファイルからユーザが指定した銃器種類を取得し、指定された銃器種類に基づいて設定パラメータファイルから銃器重み係数を関連的にサーチする。
【０１１９】
上記のように、各銃器種類に銃器重み係数をそれぞれ設定した後、該各銃器種類及びその銃器重み係数は設定パラメータファイルに関連付けて記憶される。
【０１２０】
それにより、設定パラメータファイルからユーザが指定した銃器種類を得た後、設定パラメータファイルにおける関連して記憶されている銃器種類及びその銃器重み係数によって、指定した銃器種類に対応する銃器重み係数を更に得ることができる。
【０１２１】
ステップ３５５３において、関連的にサーチして得られた銃器重み係数、基礎重み係数及び可視係数に基づき吸引点の吸引点重み値を算出する。
【０１２２】
具体的には、吸引点重み値の計算公式は下記の通りである。
【０１２３】
Ｗｐｏｉｎｔ＝ωｂａｓｅ×μｗｅａｐｏｎ×Ｒｈｉｔ
Ｗｐｏｉｎｔは仮想ターゲット上の任意１つの吸引点の吸引点重み値を表し、ωｂａｓｅは該吸引点の基礎重み係数を表し、μｗｅａｐｏｎはユーザが指定した銃器種類に対応する銃器重み係数を表し、Ｒｈｉｔは該吸引点の可視係数を表す。
【０１２４】
上記過程では、各吸引点の吸引点重み値はユーザが指定した銃器種類に関連付けられ、すなわち、ユーザが指定した銃器種類が変化すると、各吸引点の吸引点重み値も対応して変化し、それによりターゲット位置決めの柔軟性を更に高める。
【０１２５】
図１０に示すように、例示的な実施例では、ステップ３７０の後、上述した方法は以下のステップを更に含んでもよい。
【０１２６】
ステップ５１０において、ユーザが指定した銃器種類、及び吸引点重み値の計算における基礎重み係数及び可視係数を監視する。
【０１２７】
ステップ５３０において、該銃器種類、基礎重み係数及び可視係数のうちのいずれかが変化したことを感知した場合、吸引点重み値を再計算するようにトリガーする。
【０１２８】
ステップ５５０において、再算出された吸引点重み値に基づきトリガー点を再移動する。
【０１２９】
理解すべきなのは、ユーザにとって、異なる基礎重み係数を再定義してもよく、又は異なる銃器種類を再選択してもよく、更に又は異なるユーザ操作対象を再選択してもよく、且つ該再選択過程において異なる銃器種類を再選択し、更に銃器重み係数をそれに従って変化させ、一方、仮想ターゲットにとって、照準されることを避けるために繰り返し防護に隠し又は露出する恐れがあり、更に可視係数を対応して変化させる。
【０１３０】
それにより、銃器重み係数、基礎重み係数及び可視係数のうちのいずれかを監視することにより、銃器重み係数、基礎重み係数及び可視係数のうちのいずれかが変化したことを感知した場合、吸引点重み値を再計算し、更にトリガー点の自動吸引を再実行させ、すなわちトリガー点が、再算出された最大の吸引点重み値に対応する吸引点が所在する位置に移動する。
【０１３１】
上記実施例の作用により、吸引点重み値の動的変化を実現し、更にトリガー点の移動も動的に変化させ、すなわち、トリガー点が常に仮想ターゲットに設置されたある吸引点に自動的に吸引されることができ、それにより、ターゲット位置決めの有効性及び柔軟性を十分に確保し、更にターゲット位置決めの精度を確保する。
【０１３２】
例示的な実施例では、トリガー点は吸引角速度で自動的に吸引される。
【０１３３】
対応して、ステップ３７０の前に、上述した方法は以下のステップを更に含んでもよい。
【０１３４】
ユーザ操作対象と仮想ターゲットの水平方向での相対変位に基づいて吸引角速度を計算する。
【０１３５】
具体的には、図１１に示すように、ユーザ操作対象がＡ点に位置し、仮想ターゲットがＢ点に位置すると仮定する。
【０１３６】
この場合、ユーザ操作対象と仮想ターゲットはいずれも反対の斜め後方に向けて移動し、このため水平方向での相対変位Ｓ１が発生し、すなわち、Ｓ１＝ＳＡ−ＳＢである。ここで、ＳＡはユーザ操作対象が水平方向に移動する変位を表し、ＳＢは仮想ターゲットが水平方向に移動する変位を表す。
【０１３７】
水平方向での相対変位Ｓ１が発生した後、吸引角速度ωを計算することができる。
【０１３８】
吸引加速度ωの計算公式は下記の通りである。
【０１３９】
【数１】
0006911199.tif 000002
【０１４０】
【数２】
0006911199.tif 000003
Ｓはユーザ操作対象と仮想ターゲットとの間の直線距離を表し、ｔは相対変位が発生するのにかかる時間を表す。
【０１４１】
すなわち、先ず計算公式（１）における相対変位Ｓ１と直線距離Ｓに基づきθ角度の接線値を算出し、次に計算公式（２）に基づきθ角度の接線値と相対変位にかかる時間ｔから吸引角速度ωを算出する。
【０１４２】
ただし、相対変位にかかる時間ｔはタイマーで取得することができる。
【０１４３】
上記過程では、吸引角速度の計算過程に相対変位Ｓ１を導入して、この部分でユーザ操作対象と仮想ターゲットとの間の直線距離Ｓの変化を相殺し、それにより、自動照準中の吸引角速度が十分に安定していない問題を解決する。
【０１４４】
更に、上記のように、計算公式（１）と計算公式（２）を組み合わせると、吸引角速度ωの計算公式を
【０１４５】
【数３】
0006911199.tif 000004
に簡略化することができる、すなわち、相対変位にかかる時間ｔは吸引角速度ωに影響を与えず、主に吸引角速度ωを決定するのは直線距離Ｓと相対移動速度Ｖａｂである。
【０１４６】
相対移動速度ＶａｂはＶａ−Ｖｂであり、Ｖａはユーザ操作対象の水平方向での速度ベクトルを表し、Ｖｂは仮想ターゲットの水平方向での速度ベクトルを表す。
【０１４７】
言い換えれば、ユーザ操作対象と仮想ターゲットとの間の直線距離に加えて、吸引角速度は実際にユーザ操作対象と仮想ターゲットの水平方向での相対移動速度に関連付けられる。
【０１４８】
図１２に示すように、ユーザ操作対象と仮想ターゲットはいずれも反対の斜め後方に移動する過程で、ユーザ操作対象と仮想ターゲットはそれぞれ移動速度Ｖ’ａ、Ｖ’ｂを有し、それにより水平方向での速度ベクトルＶａ、Ｖｂを分解し、更に相対移動速度Ｖａｂ＝Ｖａ−Ｖｂを得る。
【０１４９】
これに基づき、吸引角速度ωを得ることができる。
【０１５０】
なお、設定パラメータファイルに記憶されている移動速度はスカラであり、実際の移動過程のみに移動方向が与えられ、更にベクトルの形式で表される。
【０１５１】
更に、理解すべきなのは、ユーザ操作対象の移動速度が仮想ターゲットの移動速度と一般的に同じであり、それによりユーザ操作対象が仮想ターゲットに追いつくことができることを確保する。
【０１５２】
これに基づき、ユーザ操作対象が仮想ターゲットと水平方向に同じ方向に移動すると仮定すると、両者の間の相対移動速度が零であり、対応して、吸引角速度が零であり、更にトリガー点の自動吸引の失敗をもたらす。
【０１５３】
このため、本実施例では、相対移動速度を更に拡大して、吸引角速度が零である状況の発生を回避する。
【０１５４】
すなわち、速度差、仮想ターゲットの水平方向での速度ベクトルのうちの最大値を相対移動速度とする。速度差がユーザ操作対象と仮想ターゲットの水平方向での速度ベクトルに基づき算出される。
【０１５５】
具体的には、Ｖａｂ＝ｍａｘ｛Ｖｂ，Ｖａ−Ｖｂ｝。この場合、Ｖａ−Ｖｂが零であり、すなわち、ユーザ操作対象と仮想ターゲットは水平方向で同じ移動速度で同じ方向に移動すると、相対移動速度は仮想ターゲットの水平方向での速度ベクトルＶｂであり、逆に、Ｖａ−Ｖｂが零ではなく、すなわち、ユーザ操作対象と仮想ターゲットは水平方向で同じ移動速度で逆方向に移動すると、相対移動速度は速度差Ｖａ−Ｖｂである。
【０１５６】
上記過程では、吸引角速度が零である状況を効果的に回避し、それにより吸引角速度の有効性を確保し、自動吸引の成功率を十分に向上させ、すなわち、トリガー点が必ず仮想ターゲットの設置された吸引点に自動的に吸引される。
【０１５７】
より更に、理解できるのは、ユーザがトリガー点を吸引範囲から引き離し、更に仮想ターゲットから引き離しようとする場合、ターゲット位置決めと反対するトリガー操作を行う。たとえば、ユーザはマウスを操作してスクリーンに表示されている仮想ターゲットに接近することによりターゲット位置決めを行い、逆に、ユーザは、マウスを操作してスクリーンに表示されている仮想ターゲットから離れるようにすることによりトリガー点の引き離しを行う。
【０１５８】
しかし、吸引角速度が大きい場合、ユーザは、吸引角速度が小さい場合より速い速度で入力装置の操作を行う必要があり、そうでない場合はトリガー点を仮想ターゲットから引き離すことが困難であり、それによって現在トリガー点を仮想ターゲットから引き離すコストが大きくなる。
【０１５９】
このため、本実施例では、吸引係数の設定によりトリガー点を仮想ターゲットから引き離すコストを低減させる。
【０１６０】
吸引係数は、トリガー点を仮想ターゲットから引き離す難しさを表され、吸引係数が小さいほど、トリガー点を仮想ターゲットから引き離しやすくなる。
【０１６１】
該吸引係数は可変値であり、且つユーザの入力速度に関係あり、すなわち、ユーザの入力速度が速いほど、ユーザがトリガー点を仮想ターゲットから引き離しようとすることを表し、吸引係数が小さくなり、トリガー点を仮想ターゲットから引き離すことをより容易にし、それによりゲームの手触りと体験がユーザの習慣により合致することを確保する。
【０１６２】
ユーザの入力速度はユーザのスクリーンスライド速度、ユーザのジョイスティック振れ速度、ユーザのマウススライド速度、ユーザのボタン押し速度等であってもよく、ここで１つずつ説明しない。
【０１６３】
ユーザのスクリーンスライド速度を例として、ユーザのスクリーンスライド速度とは、ユーザが指、マウス又はスタイラスでスクリーンをスライドする速度である。該速度は単位時間内に指、マウス又はスタイラスのスライド距離によって測定される。
【０１６４】
吸引係数Ｋを縦座標とし、ユーザのスクリーンスライド速度Ｖを横座標とし、両者の間の変換関係を確立することにより対応する曲線関数を得て、図１３に示される。
【０１６５】
該変換関係において、吸引係数ｋはユーザのスクリーンスライド速度Ｖの増加に伴って逓減し、ユーザのスクリーンスライド速度が所定の程度に増加することに伴って、吸引係数も一定の最小値に低減し、ユーザのスクリーンスライド速度が増加し続けると、吸引係数は常に該最小値に保持し、それに従って変化することがない。
【０１６６】
この過程では、吸引係数は決して零まで減少せず、それにより、吸引角速度が常に存在し、ユーザのスクリーンスライド速度が速すぎることにより消えないことを確保することに有利である。
【０１６７】
具体的には、ユーザがトリガー点を仮想ターゲットから引き離すためのトリガー操作を監視することによりユーザのスクリーンスライド速度を算出する。
【０１６８】
ユーザがトリガー点を仮想ターゲットから引き離すためのトリガー操作を連続的に監視することにより、トリガー点のスクリーンでの少なくとも２つの位置、すなわち、現在位置及び前の現在位置を決定し、更にトリガー点のスクリーンでの現在位置と前の現在位置に基づいて、指、マウス又はスタイラスのスライド距離を算出し、且つ連続的な監視に対応するタイムスタンプに基づいてスライド距離のスライド時間を算出して、それによりユーザのスクリーンスライド速度を得る。
【０１６９】
吸引係数とユーザのスクリーンスライド速度との間の変換関係に応じてユーザのスクリーンスライド速度を対応する吸引係数に変換する。
【０１７０】
変換して得られる吸引係数、相対移動速度及び直線距離に基づいて、吸引角速度を算出する。すなわち、吸引角速度ωの計算公式が
【０１７１】
【数４】
0006911199.tif 000005
である。
【０１７２】
上記過程では、ユーザがスクリーンを少しスライドする場合、依然としてユーザが仮想ターゲットに大きい吸引角速度を有することを確保し、ユーザがスクリーンを迅速にスライドする場合、ユーザがトリガー点を仮想ターゲットから引き離す望みを有すると見なし、その場合、吸引角速度が吸引係数の作用で小さくなり、更にトリガー点を仮想ターゲットから引き離しやすく、それによりユーザのニーズをより良好に満たす。
【０１７３】
例示的な実施例では、上述した方法は以下のステップを更に含んでもよい。
【０１７４】
ユーザのスクリーンスライド速度を監視する。
【０１７５】
ユーザのスクリーンスライド速度が変化したと感知した場合、吸引角速度を再計算するようにトリガーする。
【０１７６】
再算出された吸引角速度に従ってトリガー点を移動する。
【０１７７】
上記のように、ユーザのスクリーンスライド速度が吸引係数に関連付けられる。
【０１７８】
それにより、ユーザのスクリーンスライド速度が変化したことを感知した場合、設定パラメータファイルに記憶されているユーザのスクリーンスライド速度と吸引係数との間の変換関係に応じて、吸引係数がそれに従って変化したと見なすことができ、更に吸引角速度を対応して変化させ、この場合、トリガー点は変化した吸引角速度で吸引点位置に移動する。
【０１７９】
上記実施例の作用により、吸引角速度の動的変化を実現し、すなわちトリガー点は常にある速度で仮想ターゲットの設置された吸引点に自動的に吸引されることができ、それにより、自動吸引の有効性を十分に確保し、更に仮想ターゲットの射撃精度を確保する。
【０１８０】
以下は本開示の装置実施例であり、本開示に係る仮想対話型シナリオにおけるターゲット位置決め方法の実行に用いることができる。本開示の装置実施例に開示されていない詳細について、本開示に係る仮想対話型シナリオにおけるターゲット位置決め方法の実施例を参照する。
【０１８１】
図１４に示すように、例示的な実施例では、仮想対話型シナリオにおけるターゲット位置決め装置７００は、トリガー点位置取得モジュール７１０、吸引点位置取得モジュール７３０、吸引点重み計算モジュール７５０及びトリガー点移動モジュール７７０を含むがこれらに限定されない。
【０１８２】
トリガー点位置取得モジュール７１０は、ユーザがターゲット位置決めを行うためのトリガー操作を監視し、トリガー点のスクリーンでの位置を取得するように構成される。
【０１８３】
吸引点位置取得モジュール７３０は、トリガー点の位置及び仮想ターゲット上の複数の吸引点に基づいて、複数の吸引点位置を決定して取得するように構成され、吸引点位置毎に一つの吸引点に対応する。
【０１８４】
吸引点重み計算モジュール７５０は、トリガー点の位置がいずれかの吸引点位置によって決定された吸引範囲に位置する場合、複数の吸引点に対して吸引点重み値を計算し、吸引点に対応する複数の吸引点重み値を得るように構成される。
【０１８５】
トリガー点移動モジュール７７０は、最大吸引点重み値に対応する吸引点が所在する吸引点位置にトリガー点を移動するように構成される。
【０１８６】
図１５に示すように、例示的な実施例では、仮想ターゲットはアニメーションキャラクターであり且つ複数のアニメーション骨格点によって表される。
【０１８７】
対応して、上述した装置７００は、バインディング関係確立モジュール８１０及びバインディング関係記憶モジュール８３０をさらに含むがこれに限定されない。
【０１８８】
バインディング関係確立モジュール８１０は、仮想ターゲットから複数のアニメーション骨格点を選択して、選択されたアニメーション骨格点と吸引点との間の一対一に対応するバインディング関係をそれぞれ確立するように構成される。
【０１８９】
バインディング関係記憶モジュール８３０は、バインディング関係を、吸引点位置を決定するための設定パラメータファイルに記憶するように構成される。
【０１９０】
図１６に示すように、例示的な実施例では、吸引点位置取得モジュール７３０は、骨格点取得ユニット７３１、骨格点位置検出ユニット７３３及び吸引点位置決定ユニット７３５を含むがこれらに限定されない。
【０１９１】
骨格点取得ユニット７３１は、設定パラメータファイルから、吸引点とバインディング関係を有するアニメーション骨格点を取得するように構成される。
【０１９２】
骨格点位置検出ユニット７３３は、アニメーション骨格点のスクリーンでの位置を検出するように構成される。
【０１９３】
吸引点位置決定ユニット７３５は、アニメーション骨格点のスクリーンでの位置を、吸引点に対応する吸引点位置とするように構成される。
【０１９４】
例示的な実施例では、上述した装置７００は、距離判断モジュールをさらに含むがこれに限定されない。
【０１９５】
距離判断モジュールは、トリガー点の位置といずれかの吸引点位置との間の距離が予め設定された間隔より小さい場合、吸引点重み計算モジュール７５０に通知するように構成される。
【０１９６】
図１７に示すように、例示的な実施例では、吸引点重み計算モジュール７５０は、基礎重み係数取得ユニット７５１、可視係数取得ユニット７５３及び計算ユニット７５５を含むがこれらに限定されない。
【０１９７】
基礎重み係数取得ユニット７５１は、設定パラメータファイルから吸引点の基礎重み係数を取得するように構成される。
【０１９８】
可視係数取得ユニット７５３は、仮想ターゲットに対してレイキャスティング検出を行って吸引点の可視係数を得るように構成される。
【０１９９】
計算ユニット７５５は、基礎重み係数及び可視係数により吸引点の吸引点重み値を計算するように構成される。
【０２００】
例示的な実施例では、上述した装置７００は、銃器重み係数設定モジュールをさらに含むがこれに限定されない。
【０２０１】
銃器重み係数設定モジュールは、複数の銃器種類に銃器重み係数をそれぞれ設定して、複数の銃器種類とその銃器重み係数を設定パラメータファイルに関連付けて記憶するように構成される。
【０２０２】
対応して、図１８に示すように、計算ユニット７５５は、銃器重み係数サーチサブユニット７５５１及び計算サブユニット７５５３を含むがこれらに限定されない。
【０２０３】
銃器重み係数サーチサブユニット７５５１は、設定パラメータファイルからユーザが指定した銃器種類を取得し、指定された銃器種類に基づいて設定パラメータファイルから銃器重み係数を関連的にサーチするように構成される。
【０２０４】
計算サブユニット７５５３は、関連的にサーチして得られた銃器重み係数、基礎重み係数及び可視係数に基づき吸引点の吸引点重み値を算出するように構成される。
【０２０５】
図１９に示すように、例示的な実施例では、上述した装置７００は、監視モジュール９１０、再計算モジュール９３０及び再移動モジュール９５０をさらに含むがこれらに限定されない。
【０２０６】
監視モジュール９１０は、ユーザが指定した銃器種類、及び吸引点重み値の計算における基礎重み係数及び可視係数を監視するように構成される。
【０２０７】
再計算モジュール９３０ように構成される該銃器種類、基礎重み係数及び可視係数のうちのいずれかが変化したことを感知した場合、吸引点重み値を再計算するようにトリガーする。
【０２０８】
再移動モジュール９５０は、再算出された吸引点重み値に基づきトリガー点を再移動するように構成される。
【０２０９】
なお、上記実施例に係る仮想対話型シナリオにおけるターゲット位置決め装置については、仮想対話型シナリオにおけるターゲット位置決め処理を行うときに、上記各機能モジュールの分割のみで例を挙げて説明し、実際の応用において、需要に基づき上記機能を分割して異なる機能モジュールによって完了することができ、すなわち、仮想対話型シナリオにおけるターゲット位置決め装置の内部構造は異なる機能モジュールに分けられて、以上説明した全部又は一部の機能を完了する。
【０２１０】
また、上記実施例に係る仮想対話型シナリオにおけるターゲット位置決め装置及び仮想対話型シナリオにおけるターゲット位置決め方法の実施例は同じ発想に属し、各モジュールが操作を実行する具体的な方式は既に方法実施例に詳細に説明されたので、ここでは詳しく説明しない。
【０２１１】
図２０に示すように、例示的な実施例では、電子機器１０００は、プロセッサ１００１、メモリ１００２、及び通信バス１００３を含むがこれらに限定されない。
【０２１２】
メモリ１００２にコンピュータ可読命令が記憶されており、プロセッサ１００１は通信バス１００３を介してメモリ１００２に記憶されているコンピュータ可読命令を読み取る。
【０２１３】
該コンピュータ可読命令がプロセッサ１００１によって実行されるときに、上述した各実施例中の仮想対話型シナリオにおけるターゲット位置決め方法を実現する。
【０２１４】
例示的な実施例では、コンピュータ可読記憶媒体であって、プロセッサによって実行されるときに上述した各実施例中の仮想対話型シナリオにおけるターゲット位置決め方法を実現するコンピュータプログラムが記憶されている。
【０２１５】
上記内容は、本開示の好ましい例示的な実施例に過ぎず、本開示の実施の形態を限定するものではなく、当業者は本開示の主な発想及び精神に基づき、対応する変更又は修正を非常に便利に行うことができ、従って、本開示の保護範囲は特許請求の範囲に決定される保護範囲を基準とすべきである。
【図１】
0006911199.tif 000006
【図２】
0006911199.tif 000007
【図３】
0006911199.tif 000008
【図４】
0006911199.tif 000009
【図５】
0006911199.tif 000010
【図６】
0006911199.tif 000011
【図７】
0006911199.tif 000012
【図８】
0006911199.tif 000013
【図９】
0006911199.tif 000014
【図１０】
0006911199.tif 000015
【図１１】
0006911199.tif 000016
【図１２】
0006911199.tif 000017
【図１３】
0006911199.tif 000018
【図１４】
0006911199.tif 000019
【図１５】
0006911199.tif 000020
【図１６】
0006911199.tif 000021
【図１７】
0006911199.tif 000022
【図１８】
0006911199.tif 000023
【図１９】
0006911199.tif 000024
【図２０】
0006911199.tif 000025