僕の私のUnrealな日々

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

UE4:アサルトライフルのブループリントの実装について

どうもぶっさんです。

 

最近少しづつTPSのゲームを作ってまして、まだアニメーションブループリントやアサルトライフルを作成しただけなのですが、今はこのような状態です。

 

 

で、今回アサルトライフルの実装についてまとめようと思います

とてもお気軽に出来るので是非

 

 

アサルトライフルのブループリントの実装しよう!

 f:id:Bussan_dayo:20150512124547p:plain

 

 

 

 

使用するもの

FirstPersonのテンプレート

VFX Impacts(有料アセット)

 

仕様

左クリックすると連射が始まる

 

 

 

FirstPersonCharacterのBluePrint側の実装

FirstPersonCharacterのBluePrintを開きます

すると以下のようになってると思います。

f:id:Bussan_dayo:20150512120810p:plain

まずTouchイベントの部分と[SpawnActor]のノードを削除します。

 

 

そしてinput Action FireのPressedにSet Timerノード、Releasedに[Clear Timer]ノードを設置します。

f:id:Bussan_dayo:20150512122449p:plain

 

 

Set Timerについては公式の動画を(Epic japanのロブさんの動画)

 

 

 

次にカスタムイベントを作成します。今回は[Rifle]としました。そしてMontage Play残しておいたノードとPlaySoundatLocationノードを繋げます。

Set Timerの方はFunction Nameに[Rifle]、Timerに0.15、Loopingにチェックを付けます。ClearTimerのほうも同様にFunction Nameに[Rifle]を入れます。

 f:id:Bussan_dayo:20150512122357p:plain

 

 

関数の作成

関数を作成します。

f:id:Bussan_dayo:20150512122810p:plain

 

今回は名前を[Assalt Rifle]としました。

 

次にLine Trace by Channelノードを繋げます。

f:id:Bussan_dayo:20150512122920p:plain

 

 

次にStartとEndに数値を入れます。

f:id:Bussan_dayo:20150512123059p:plain

 

 これでカメラの位置からカメラから5000かけた位置になるようにします。

 

デバッグモードにすると

f:id:Bussan_dayo:20150501222604p:plain

このようになります(以前の記事からの画像の抜粋)

 

次に、Return Valueからブランチを出し、Out HitからBreak Hit Resultを出します。

f:id:Bussan_dayo:20150512123319p:plain

 

Spawn Emitterノードを出します。このノードはエフェクトを出すノードです。

今回は有料アセットのVFX Effectを使用します。今回はコンクリートの銃痕のエフェクトを出すようにします。

 

ノードのLocationをBreakHitResultのLocationに繋げ、RotationをBreak Hit ResultのNormalからRotation from Xvectorノードを出し繋げます。

f:id:Bussan_dayo:20150512123402p:plain

 

最後にEvent Grathに戻り作成した関数[Assalt Rifle]を出し繋げます。

f:id:Bussan_dayo:20150512123749p:plain

 

これで完成です。

無駄に画像は多くしてしまいましたが、比較的楽に作れていいですね。

 

全体図は以下のとおりです。

イベントグラフ

f:id:Bussan_dayo:20150512124040p:plain

 

関数[AssaltRifle]

f:id:Bussan_dayo:20150512124107p:plain

 

 

以上です。