HandIKを治したいという、海外の方からのリクエスト対応を急いだ関係で、順番がごちゃついていますが、
その処理を左右両対応したり、スタティックメッシュ対応したり、構造整理しつつ、
Lyraのライフルエイムオフセットのアニメーションを取り込んだポーズをもとに補間がうまくいかなかったのをちまちま調整した、
改良版をGitHubに公開しました。
yossi40-100/GASP-ALS: Game Animation Sample with ALS Layering
ダウンロードの方法などは本家と同じなので、割愛しますが、Codeボタンからクローンしてください。
先日の敵AI学習チュートリアル、ビヘイビアツリー編も近日中にマージしてアクションゲームテンプレートに近いものにしていくつもりなので、今後もよろしくお願いします。
更新内容
Propsに持ち手の位置情報を追加し、その位置に手を合わせます。
リターゲットキャラクターにも持ち手位置を正確に補正するため、リターゲット後に補正する形に変更しました。 ABPを汎用のものから個別に変更し、スケルタルメッシュ情報を参照できるようにしています。(基本的には前回記事と同じ)
オーバーレイアニメーションでEnable_HandIK_L または _Rが1のカーブが追加されている場合かつ、 DoingTraversalActionフラグがoffのときのみ補正されます。
↑スクショ大きくする用に実際とレイアウト変えています。
後半の処理が前回動画で残件となっていたトラバース中に手が変になる件の対策です。Threepeatさんがこのフラグ利用されていた真似です(^ー^* )フフ♪
スケルタルメッシュはLHGrip、RHGripという名前で左手・右手位置用のソケットを追加します。
スタティックメッシュは直接ソケットを追加できないため、ブループリント化してシーンコンポーネントを追加します。BP_StaticMeshItem親クラスにソケット位置を返す機能を実装してあるので、増やしたいときは樽やBoxなどの子クラスをコピペしてください。
スケルタルメッシュも(どのみち銃の発射などの処理を実装したいため、)ブループリント化しました。ピストルとライフルは銃の一種で、共通化したBP_Gun親クラスにしています。(ほとんど同じ機能実装になりそうなので)
BPI_ItemインターフェースにてCBP_SandboxCharacterにソケット情報を提供する作りとしています。これでスケルタルメッシュの場合とスタティックメッシュの場合の処理分岐を使う側が意識する必要をなくしています。
スタティックメッシュの場合の処理がごちゃついていますがデバッグの都合です。ほかの箇所が原因だったので戻し忘れました(;’∀’)
(Locationしか見てないのでこれでもとりあえず問題ありません。GetWorldTransformの結果を出力すればOKです。)
コメント