はじめに
BlenderとUnreal Engine 4の勉強を再開しています。今回の目標は11月までに3Dで動かせるキレイなモバイル向けゲームを作ることです。
前回まで

前回は近づくと自動で開くドアを作ってみました。
今回の作業

今回は物を押す動きを作ってみたいと思います。
まずアクターのブループリントを作成します。

スタティックメッシュを配置して、
PhysicsConstraintを中心に追加しました。

右側のタブでComponent Nameをスタティックメッシュと同じにします。
すると、メッシュが赤枠で囲まれるようになりました。

さらに、Linear LimitsのXY軸方向をFree、Angular LimitsをLockedにします。
これで平面にのみスライドして動くようになりました。

スタティックメッシュの詳細タブからLinear Dampingの数値を上げました。
この数値を調整して滑りやすさを変えることができます。

X軸方向、Y軸方向にそれぞれボックスコリジョンを作成します。
※このコリジョンに触れたら押すように設定していきます。

キャラクターBPの変数にIsPushingというブーリアンを作成しました。
※変数をいろいろ作りすぎてややこしくなってきています。

ボックスコリジョンに触れたら、物理シミュレーションを開始して、IsPushingがonになるように
ボックスコリジョンから離れたら、物理シミュレーションを終了して、IsPushingがoffになるようにしています。

アニメーションブループリントにもIsPushingの変数を作成して、
キャラクターブループリントのIsPushingと連動するようにしました。

ステートマシーンを作成していきます。

コリジョンに触れたら押す状態になって、
スピードが上がったら押すアニメーションが再生されるように条件付けします。
ここまで

これで物を押すアニメーションができました。
コリジョンから離れるとスタティックメッシュに戻るので、足場としても使うことができます。
今日はここまでにします。次回も続きを作っていきたいと思います。
(今回の作業時間:180分)
<前の記事