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

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

UE4:オンラインラーニング(ゲームデザイナーのためのブループリントとゲームプレイ)

UE5オンラインラーニング
ゲームデザイナーのためのブループリントとゲームプレイ
を受講した際のおぼえ書きです。

https://learn.unrealengine.com/course/3751483


コンテンツブラウザから検索時のショートカット)
アクタを選択し、Ctrl + B を入力することで
選択中のアクタのブループリントを、コンテンツブラウザから選択できます。
f:id:toncrimentan_w:20210920152133p:plain


変数参照を配置する際のショートカット)
変数の参照をBPにドラッグ配置する際
Ctrl + ドラッグで自動的にGet
Alt + ドラッグで自動的にSetになります。
f:id:toncrimentan_w:20210920152208p:plain


インスタンス編集の許可)
変数の横の目のマークを有効にすると、
レベル上で編集が可能な状態になります。
f:id:toncrimentan_w:20210920152350p:plain


レベル上での変更をブループリントに反映させる方法)
レベルから
ブループリントを編集>インスタンス変更をブループリントに適応
をクリックすることで、
レベル上での指定をブループリントに反映することができます。
(逆にこの機能があると危ないかも・・)
f:id:toncrimentan_w:20210920152620p:plain


インプットの追加方法)
入力を追加したい場合は、
プロジェクト設定>インプット>アクションマッピングの+印から追加
f:id:toncrimentan_w:20210920152714p:plain


タイムライン制御)
タイムラインではポイントを選択>ユーザー
をチェックすることで画像のように
スムーズに保管するよう調整することができます。
f:id:toncrimentan_w:20210920152810p:plain


ポストプロセス)
ポストプロセスコンポーネントをキャラごとにつけることもできます。

彩度をゼロにするポストプロセスを作っておき。
HPが下がることで再度を下げる表現を作成することができます。

・PostProcessコンポーネントを追加
・ポストプロセスボリューム>ColorGrading>Global>彩度
 で彩度を変更できます。
f:id:toncrimentan_w:20210920153346p:plain

たとえば、こんな風になります。
f:id:toncrimentan_w:20210920153151p:plain


MapRamgeClampedノード)
2つの間の値を、別の2つの間の値に変換できる便利関数です。

図は0~100のHPを入力すると
70~20にかけてポストエフェクトのブレンド割合に変換する処理です。
f:id:toncrimentan_w:20210920153503p:plain


オーバーラップイベントの有効化方法)
ボックスのGenerateOverlapEventsを有効にし、
ボックスをスイッチ倒し、扉が開くとかできます。
f:id:toncrimentan_w:20210920154115p:plain

f:id:toncrimentan_w:20210920154254p:plain



オーバーラップ中アクターの取得方法)
GetOverlappingActorsを利用することで、
オーバーラップ中のアクターリストを取得できます。
(これは便利! いままでしりませんでした、自分で配列を作るところでした!!)
f:id:toncrimentan_w:20210920154425p:plain


入力の有効化、無効化)
配置した、ドアBPのEnableInput、DisbleInputを切り替えることで、
ドアBPでのインタラクトイベントを有効にすることができます。
f:id:toncrimentan_w:20210920154828p:plain



インターフェイスでドアを開く方法)
・あらかじめ、ブループリントインターフェイスを作っておく。
 関数名はInteract
f:id:toncrimentan_w:20210920154954p:plain

・ドアのBPではインターフェイスを追加し
 Interactイベントが呼ばれた際の処理を作っておく
f:id:toncrimentan_w:20210920155236p:plain

・キャラクターBPでは
 レイ判定の末、ヒットしたアクタに対して
 Interactインターフェイスを呼び出すようにする。
f:id:toncrimentan_w:20210920155416p:plain

・無事、画像のようにプレイヤーから
 インターフェイスを利用し対象ドアを開く処理を作ることができた。
f:id:toncrimentan_w:20210920155528p:plain


インターフェイスの有無判定)
特定のインターフェイスを持っているかどうかは
DoseImplementInerfaceノードを利用する。
持っているか否かを判別したのち、インターフェイスを呼び出す。
f:id:toncrimentan_w:20210920155641p:plain


コリジョンTIPS)
一人称ゲームの唯一のコリジョンのみ有効にしたい場合は
OverlapOnlyPawnを利用する。
f:id:toncrimentan_w:20210920155748p:plain


成果物)
youtu.be



移動速度の変更など、
最初はかなり簡単すぎる内容からはじまります。
4種のドアの実装方法を通じ、学習する内容は非常に有益です。
近づいたら開くドア、
スイッチを押したら開くドア、
インタラクションしたら開くドア、
キャラからのインターフェイスを通じて開くドア
どれもUE4の基礎的に覚えておかなくてはならない内容です。