とあるゲームプログラマの挑戦と敗北の歴史

UE4とプログラミングとmayaとpythonとhtmlとマラソンを中心に情報を発信する元「技術ブログを目指すブログ」から再始動した毎日の日々を発信するブログです。

UE4:Udemyで脱初心者!UE4でFPSが作れるようになるチュートリアルを受講しました

Udemyで
脱初心者!UE4FPSが作れるようになるチュートリアル
を受講した際のおぼえ書きです。

https://www.udemy.com/course/ue4fpstutorial/



ジャンプ回数指定
CharacterのJump Max Countを指定することで
連続ジャンプ回数を指定できます。
f:id:toncrimentan_w:20210203164446p:plain



起動時ウィンドウをアクティブにする方法
ゲーム起動後ウィンドウをアクティブにするため
マウスでウィンドウをクリックする必要がありますが、
エディタの環境設定のゲームでマウスコントロールを取得
チェックボックスをいれることで
起動後自動的にウィンドウをアクティブにすることができます。
f:id:toncrimentan_w:20210203164650p:plain



SetTimerbyEventノード
SetTimerbyEventノードのイベントピンからCreateEventノードを作成
することで別のイベントを発行することができます。
f:id:toncrimentan_w:20210203164757p:plain
そのほかの使い方
f:id:toncrimentan_w:20210204160321p:plain



ライントレースのデバッグ表示
DrowDebugTypeをForDurationに変更することで
ライントレースのデバッグ表示をすることができます。
f:id:toncrimentan_w:20210203165031p:plain



ヴィジェットBPのカスタムサイズ指定
スクリーンサイズの右のコンボボックスをクリックすることで
スクリーンサイズを指定することができます。
フルスクリーンでないウィジェットなどで利用することができます。
f:id:toncrimentan_w:20210203165259p:plain
作ったヴィジェットは
コンポーネントを追加からも指定することができます。
意外としらなかった・・
f:id:toncrimentan_w:20210203165337p:plain



変数の詳細設定表示
変数の詳細設定表示(AdvancedDisplay)にチェックをいれると
通常は隠れていて▽をクリックしたときにのみ表示される変数にすることができます。
基本的にはいじらなくてよい変数。
みたいなものを指定することができます。
f:id:toncrimentan_w:20210203165521p:plain



2つのアニメーションモンタージュ
出力ピンが少ないものと多いものが存在します。
レイテント(ディレイ)付きのノードは出力ピンが多く便利です。
f:id:toncrimentan_w:20210203165640p:plain



ポーズのキャッシュ
アニメーションBPではポーズをキャッシュして利用することができます。
f:id:toncrimentan_w:20210203165727p:plain



下半身上半身のアニメーションを別に再生
レイヤードブレンドを利用し
上半身と下半身のアニメーションを変えることができます。
f:id:toncrimentan_w:20210203165930p:plain



タイムラインの特殊な再生方法
直接タイムラインにピンをつながなくても
タイムラインをGetしPlayfromStartをすることで再生することができます。
f:id:toncrimentan_w:20210203170154p:plain



SetLifeSpan
Delay+DestroyActorです。
関数内などでdelayを使えないため利用することができます。
f:id:toncrimentan_w:20210203170238p:plain



ダイナミクスの有効化
Meshのコリジョンコリジョン
コリジョンプリセット:カスタム
CollisionEnabled:CollisionEnabled
ObjectType:Pawn
に変更し
CharacterMovementをStopMovementImmediatelyを実行
MeshのSetSimulatePhysicsを有効にすると
ラグドールな倒れ方をすることができます。
f:id:toncrimentan_w:20210203170425p:plain



ObservedBlackboardValue
ビヘイビアツリーのMoveToで
ObservedBlackboardValueにチェックボックスをいれると
MoveTo中に対象の目的地が変更された場合に目的地を更新するようになります。
エネミーが逃げるプレイヤーに向かって攻めてくるときなどに利用できます。
f:id:toncrimentan_w:20210203170546p:plain



子クラスから親クラスを開く方法
子クラスのスパナをクリックすると
親クラスに移動することができます。
f:id:toncrimentan_w:20210203170753p:plain



サウンドのピッチの変更
サウンドキューのモジュレーターノードを利用すると
ピッチを変更できるようになります
f:id:toncrimentan_w:20210203171016p:plain
またボリューム減衰の有効化にチェックを入れる
と減衰されます。
f:id:toncrimentan_w:20210203171128p:plain



GenerateAbstractClassで配置できないクラスにできるます。
継承専門のクラスなどで利用します。
f:id:toncrimentan_w:20210203171151p:plain



enumによるブレンドポーズ
アニメーションBPでは
enumによって分岐するブレンドポーズを作ることができます。
(例:ピストルポーズ、ライフルポーズなどを分けれる)
f:id:toncrimentan_w:20210204155551p:plain



MapRangeClampedノード
Valueの値がInRangeA~Bの間での割合に応じて
OutRangeA~Bの間での値を出力します。
便利なノードです。
f:id:toncrimentan_w:20210204155910p:plain



Saturationノード
PostProcessSettingノードに
PostPocesSettingsとカメラを入力し
PostPocesSettingsのColorGrading|Global>Saturationをチェック
サチュレーション指定することで画面を暗くする効果を指定することができる。
f:id:toncrimentan_w:20210204160137p:plain



カメラ調整時のTIPS
カメラを右クリック>CameraActorをパイロット
でカメラが見ている視点でカメラ調整をすることができます。
f:id:toncrimentan_w:20210204160443p:plain



カメラの手振れ機能
MatineeCameraShakeクラスを利用することで
攻撃時の手振れ処理などを簡単に作ることがあります。
(オススメ値は画像参照)
f:id:toncrimentan_w:20210204160554p:plain
実行方法はこちら
f:id:toncrimentan_w:20210401004312p:plain
f:id:toncrimentan_w:20210204160730p:plain



出来たやつ)
youtu.be



このコースは最初の方は簡単そうに見えますが、最終的には非常に参考になるコースでした。
プログラマの場合、プログラムには存在しないからといって、
ついつい使わないがちになってしまいそうなイベントディスパッチャ、BPインターフェイス
などを頻繁に利用し、改めて使用方法について理解することができます。
アニメーションBP、ビヘイビアツリー、ポストエフェクト、カメラすべてにおいて新しい発見が一つ以上ありました。