僕の私のUnrealな日々

UE4のBluePrintを使って小さなギミックを作ったりしてます。ブログを通じて情報共有ができたらなと思います。

UE4:リロードなどのステートマシンを使用しないアニメーションの実装について

 

f:id:Bussan_dayo:20150611185715p:plain

 

ステートマシンを使わないアニメーションを使うことが多くなってきたのですが、自分がすぐ忘れてしまいそうなのでまとめます。

 

ステートマシンを使わないということは一回だけアニメーションを動くようにしたいなど、例えばリロードであったり攻撃のモーションであったりと

 

で、以下のリロードシステムの実装について書きます。

 

 

リロードを実装する!!

 仕様:Rキーを押すとリロードのモーションが動き出す。

  アニメーション内で球を込めたら実際に球が補充されるようにする。

 

使うもの:ThirdPersonテンプレート

     アニメーションスターターパック(無料)

 

ブループリントインターフェース側

まずBluePrintInterfaceを作成します。

f:id:Bussan_dayo:20150611182608p:plain

今回名前は[ReloadSystem]にしました。

 

 

関数を作成します。名前をReloadSystemにしました。

f:id:Bussan_dayo:20150611182650p:plain

 

アニメーションブループリント側

次にAnimationBluePrintを作成又は起動します。(汚くてすみません・・・)

f:id:Bussan_dayo:20150611182744p:plain

 

クラス設定から実装インターフェースの部分に作成したBluePrintInterfaceを追加します。

f:id:Bussan_dayo:20150611182820p:plain

 

アニメーションモンタージュ

次にアニメーションモンタージュを作成します。

使用するSkeltalMeshを選択し名前をReloadにします。

f:id:Bussan_dayo:20150611182930p:plain

 

アニメーションモンタージュを開きReloadのアニメーションを選択します。

 

次に行うことはアニメーションが球を込めた時にイベントが発生するようにします。アニメーションバーで球を入れた時に合わせ通知を左クリックして新規作成をします。すると通知名を入れる場所が出てきます。

f:id:Bussan_dayo:20150611183156p:plain

名前をSetReloadにします。

f:id:Bussan_dayo:20150611184751p:plain

 

 

完全に忘れていたのでありがたいです!

 

次にグループを設定します。

f:id:Bussan_dayo:20150611183247p:plain

以下の虫眼鏡マークをクリックします。

スロットを追加からReloadを追加します。(画像では色々と追加されてますが気にしないでください)

f:id:Bussan_dayo:20150611183258p:plain

 

アニメーションブループリント側

アニメーションブループリントに戻り、AimGraphでスロットを作成しReloadに設定します。そして繋げます。

f:id:Bussan_dayo:20150611183901p:plain

 

f:id:Bussan_dayo:20150611183936p:plain

 

Character側のBluePrint

今回は[R]キーを押すとReloadが始まるようにします。MeshからGetAimInterfaceを出し、先ほど作ったReloadSystemを呼び出します。

f:id:Bussan_dayo:20150611184010p:plain

 

次にリロードの中身ですが、以下のとおりに作成しました。カスタム関数で作成し名前を[Projectible Count]しました。多分もっとスマートな方法があるはず・・・

f:id:Bussan_dayo:20150611184142p:plain

 

AnimationBluePrint側のブループリント

ReloadSystemのイベントを呼び出しMontagePlayを出し、先ほど作成しアニメーションモンタージュを設定します。

 

f:id:Bussan_dayo:20150611184242p:plain

 

 

次に、アニメーションモンタージュ内で作成したSetReloadを出し、自分のキャラクターを呼び出しリロードの部分であるProjectible Countを呼び出します。

f:id:Bussan_dayo:20150611184541p:plain

 

これで完成です。

 

ステートマシンを使うと楽勝なんですけど使わないとなると行ったり来たりでややこしいですね。

 

一応これで動きましたが、何か間違いや指摘があればTwitterの方でよろしくお願いします。是非情報共有を・・・

 

話は変わりますが、UE4.8がリリースされましたね。自分ははPCの不調か何かで4.7の時から新規プロジェクトが作成出来なくなっていて4.8も同様でした。悲しい・・・。

どうすれば治るのかわからないのでOS入れ直します・・・

 

以上。