はじめまして
今、DXLibを使用して3Dアクションゲームを作っています。
そこで今のプレイヤーの位置から
ロックオンした敵の目の前に一瞬で移動する
処理を行いたいと思っております。
ロックオンした敵の位置に移動する事は
出来ますが、敵にめり込んだ状態になってしまいます。
プレイヤーの座標から
敵の目の前に移動するVECTERの計算等
ありましたらご教示お願い致します。
プレイヤーキャラの移動について
Re: プレイヤーキャラの移動について
Vectorの内積(と外積)を使うhttp://marupeke296.com/COL_main.htmlと思いますが私も勉強中なのです。ここには詳しい方がおられますが”その具体的なコード”を提示して頂くと解決策を教えていただけるとおもいます。
Re: プレイヤーキャラの移動について
Mathさん
ありがとうございます。
内積と外積を使うのですね!
試行錯誤してやってみます。
ソースは
申し訳ありませんが、
諸事情により貼ることが出来ないのです。
なのでやり方等ご教示頂けたらと思っておりました。
状況しか説明出来ず分かりづらかったと思いますが
教えて下さりありがとうございます。
ありがとうございます。
内積と外積を使うのですね!
試行錯誤してやってみます。
ソースは
申し訳ありませんが、
諸事情により貼ることが出来ないのです。
なのでやり方等ご教示頂けたらと思っておりました。
状況しか説明出来ず分かりづらかったと思いますが
教えて下さりありがとうございます。
Re: プレイヤーキャラの移動について
内積や外積は使わず、
「敵の位置ベクトル」+「敵→プレイヤーのベクトルと同じ向きで、長さが(敵の大きさ+プレイヤーの大きさ)のベクトル」
の位置に移動するようにするといいのではないでしょうか?
「敵の目の前」が「敵の正面」ということなら、「敵→プレイヤーのベクトル」を「敵が向いている方向のベクトル」に。
「敵の位置ベクトル」+「敵→プレイヤーのベクトルと同じ向きで、長さが(敵の大きさ+プレイヤーの大きさ)のベクトル」
の位置に移動するようにするといいのではないでしょうか?
「敵の目の前」が「敵の正面」ということなら、「敵→プレイヤーのベクトル」を「敵が向いている方向のベクトル」に。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: プレイヤーキャラの移動について
[2点の差]は正,負の場合があるがピタゴラスの定理により差Vectorの絶対値の二乗は(ΔX^2+ΔY^2+ΔZ^2)なのでそれで判定すればよいのでは。(二乗は面積=内積)(Sqroot(ΔX^2+ΔY^2+ΔZ^2)は差Vectorの絶対値)
例えば5cmの円内に近づくと内積25(cm^2)より小さいで判定出来るのではないかとおもいます。
(どこに移動するかいう問いについては他の方の言われる通り。衝突判定で止める場合なので問とは少し話がずれてはいますが一般的コリジョン判定の話です「勉強中なので])
例えば5cmの円内に近づくと内積25(cm^2)より小さいで判定出来るのではないかとおもいます。
(どこに移動するかいう問いについては他の方の言われる通り。衝突判定で止める場合なので問とは少し話がずれてはいますが一般的コリジョン判定の話です「勉強中なので])
Re: プレイヤーキャラの移動について
移動後の敵との距離を決め打ちするのではなく、
二分探索で重ならないギリギリにする、という仕様も考えられますね。
二分探索で重ならないギリギリにする、という仕様も考えられますね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: プレイヤーキャラの移動について
オフトピック
>ロックオンした敵の目の前に一瞬で移動する
ロックオンした側の方が不利になりそうな…?
ロックオンした側の方が不利になりそうな…?
Re: プレイヤーキャラの移動について
大変遅くなりました。
みけCATさんの
>内積や外積は使わず、
>「敵の位置ベクトル」+「敵→プレイヤーのベクトルと同じ向きで、長さが(敵の大きさ+プレイヤーの
>大きさ)のベクトル」
のやり方で出来るようになりました。
移動した場所で当たり判定を行い、
当たっていた場合は当たっている分だけ押し出すようにしました。
教えて下さった方々ありがとうございました。
みけCATさんの
>内積や外積は使わず、
>「敵の位置ベクトル」+「敵→プレイヤーのベクトルと同じ向きで、長さが(敵の大きさ+プレイヤーの
>大きさ)のベクトル」
のやり方で出来るようになりました。
移動した場所で当たり判定を行い、
当たっていた場合は当たっている分だけ押し出すようにしました。
教えて下さった方々ありがとうございました。