UE4ゲーム制作入門三日目

一人UE4ゲーム制作入門アドベントカレンダー三日目です。

まずはアニメーションを作りましょう。PlayerフォルダにAnimationフォルダを作ります。その中にアニメーションブループリントを作ります。

1_20161201235825886.png

アニメーションブループリントはこんな感じです。4.14から見た目が変わってますので、極め本とか今から始めようと思ってる人は注意したほうがいいと思います。

2_20161201235827afe.png

グラフ内を右クリックしてnew StateMachineを選びます。この中に実際再生するアニメーションを実装していく形になります。人っぽいアイコンからドラッグするとノードを繋げられます。

3.png

NewStateMachineをダブルクリックするとこんな画面になります。この矢印から色々繋いで、条件分岐とかなんやかんやするとアニメーションができます。

4_20161202002646a17.png

矢印を伸ばすとAddStateとAddConduitが出るので、AddStateを選んでください。出てきたら適当に名前をつけましょう。今回はIdle/Runという名前にします。

ノードの中はこんな感じになってます。この人のアイコンに繋いで再生するアニメーションを設定します。

5.png

右下のアセットブラウザから再生したいアニメーションをドラッグで持ってくると、こんな感じになります。floatのピンを付けているのがブレンドスペースという複数のアニメーションをfloatのアルファ値で、補間を制御します。スクショのやつは1Dブレンドスペースで2つのアニメーションを補間しています。

もう一つは単純に一つのアニメーションを流しています。

7_20161202204715ad8.png

8_201612022047166aa.png

遷移条件です。ノードとノードの間の矢印のとこで決めます。

スクショはJumpStartからJumpLoopへの遷移条件です。内容としては、再生してるアニメーションの残り再生時間の割合が0.2未満になってたらJumpLoopへ遷移するという内容(のはず)です。

9_20161202220656d55.png

他にも、IsAirが真になったらJumpStartになって、IsAirが偽になったらJumpLoopからJumpEndに遷移するように設定します。ぶっちゃけてしまうと、Mannequinのアニメーションブループリントと同じなのでめんどくさかったらそっち使ったほうが楽です。

とりあえずきちんと設定するとこんな感じに。

6_201612022047134dd.png

アニメーションブループリントのイベントグラフを次に設定します。先に結果を見せるとこれです。

11_2016120222283845b.png

簡単に流れを説明しておくと、このアニメーションブループリントのインスタンスを持ってるPawnクラスがNoneでなければ、CharacterMovementが空とんでるかどうかをIsInAirにセットして、今の移動速度をSpeedにセットしています。これで、遷移やらアニメーションのブレンドをしてくれます。

さて、移動用のアニメーションが一通り完成したのでセットして動かしてみましょう。BP_Playerを開いて、Meshコンポーネントのアニメーションをセットする部分に先程作ったABP_Playerをセットします。これでコンパイルすると、待機モーションをするグレーマンが見れると思います。

10_20161202222837471.png

さて、ジャンプは昨日実装していませんね。それに加えて昨日なんか説明すっとばしてた部分があります。ウィンドウ上部のタブから編集を選び、プロジェクト設定を開きます。Inputカテゴリを選ぶとこんな画面が開きます。

三人称テンプレートを使ってるとこれと同じ設定になっていると思いますが、なければ自分で作りましょう。

Actionがボタンをおした時など、Axisが基本的には、アナログスティックなどの倒し具合の入力になります。

しかし、このMoveForwardではキーボードWSで1~-1をセットしたりとアナログスティック以外でも別に問題なかったりします。

12_20161202224545a92.png

とりあえずJumpの入力を設定できていたら、BP_PlayerControllerに移動します。Jumpを設定します。しかし、ぶっちゃけ昨日の時点で作ってたんで省略します(ぉぃ

すべてが完了していたらプレイしてみましょう。走り回るグレーマンがいたら成功です。

なんか横移動のとき横滑りしてるけど、問題ないです!!!どうせアクターはカメラの方向に向けときたいんで!!!問題はないんです!!!

それではまた明日お会いしましょう。