0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UnrealEngineをチュートリアル動画で学習する その7

Posted at

はじめに

UnrealEngineを学習するにあたってのメモを記事にまとめます。
本記事で最後です。

前回

今回やること

UnrealEngineの公式サイトにあるLearningの「Your First Game In Unreal Engine 5」を題材に学習していきます。

本記事では主に以下を扱います。

  • 開閉するドアとスイッチの作成
  • エフェクトの作成
  • 画面揺れ

[開発環境]
windows 11
UnrealEngine 5.3.2

Interaction Component

動画時間:1:01:22~

  • 「コンテンツドロワー」を開いて、「GameElements」フォルダで右クリックして「ブループリントクラス/Actor」を選択する
  • 作成したブループリントの名前を「BP_PressurePlate」にする

スクリーンショット

  • 「BP_PressurePlate」の編集エディターを開く
  • 「コンテンツドロワー」を開いて、「Props」フォルダにある「SM_PressurePlate_Frame」「SM_PressurePlate_Platform」を「コンポーネント/BP_PressurePlate/DefaultSceneRoot」にドラッグ&ドロップして追加する
  • 「SM_PressurePlate_Frame」を「DefaultSceneRoot」にドラッグ&ドロップで上書きする
  • 「SM_PressurePlate_Frame」を選択し、「コンポーネント」の「追加」で「Box Collision」ほ追加する
  • 「Box Collision」を選択してスケールを変更して、オブジェクトのサイズに合うように合わせる

スクリーンショット

  • 「Box Collision」を右クリックして「イベントを追加」から「Component Begin Overlap」「Component End Overlap」を追加する
  • 「Component Begin Overlap」「Component End Overlap」の実行にそれぞれ確認用の「Print String」を追加する
  • コンパイルを実行して更新する

スクリーンショット

  • Valleyレベル内に「BP_PressurePlate」をステージに設置する
  • プレイボタンを押して実行して、「BP_PressurePlate」内に出入りするとデバック表示されるのが確認出来る

スクリーンショット

  • 「BP_PressurePlate」の「イベントグラフ」に戻る
  • 確認用設定した「Print String」を削除する
  • ノードを「Add Timeline」を選択して「Timeline」ノードを追加して、名前を「PlateAnimation」にする

スクリーンショット

  • 「PlateAnimation」をダブルクリックして、Timelineの編集エディタを開く
  • 長さを「0.5」にする
  • 「トラック」から「フロートトラックを追加」を選択し、名前を「PlateMovement」にする
  • カーブエディターに2つのキーを追加する
  • 1つ目をTime「0.0」、Value「0.0」にする
  • 2つ目をTime「0.5」、Value「1.0」にする

スクリーンショット

  • イベントグラフに戻る
  • コンポーネントの「SM_PressurePlate_Platform」をグラフ内に入れる
  • 「SM_PressurePlate_Platform」から「Set Relative Location」ノードを追加する
  • 「PlateAnimation(Update)」->「Set Relative Location(実行)」に接続する
  • 「Multiply」ノードを追加する
  • 「PlateAnimation(Plate Movement)」->「Multiply(実行)」に接続する
  • 「Set Relative Location」の「New Location」を右クリックから「構造体ピンを分割」で分割する
  • 「Multiply(実行)」->「Set Relative Location(Location Z)」に接続する
  • 「Multiply」の値を「-10」にする(動画では-20だが後で-10になる)
  • 「On Component Begin Overlap」->「PlateAnimation(Play)」に接続する
  • 「On Component End Overlap」->「PlateAnimation(Reverse)」に接続する
  • コンパイルを実行して更新する

スクリーンショット

  • プレイボタンを押して実行して、「BP_PressurePlate」の上に移動する、アニメーションが入っているのが確認できる

スクリーンショット

  • 「コンテンツドロワー」を開いて、「GameElements」フォルダで右クリックして「ブループリントクラス/Actor」を選択する
  • 作成したブループリントの名前を「BP_Door」にする

スクリーンショット

  • 「BP_Door」の編集エディターを開く
  • 「コンテンツドロワー」を開いて、「Props」フォルダにある「SM_Modular_WallDoor」を「コンポーネント/BP_PressurePlate/DefaultSceneRoot」にドラッグ&ドロップして追加する
  • 「SM_Modular_WallDoor」を「DefaultSceneRoot」にドラッグ&ドロップで上書きする
  • 「コンテンツドロワー」を開いて、「Props」フォルダにある「SM_Door」を2つ「SM_Modular_WallDoor」にドラッグ&ドロップして追加するして、名前をそれぞれ「SM_Door_L」「SM_Door_R」にする
  • 「SM_Modular_WallDoor」を選択して、「追加/Scene」でSceneを追加して、名前を「Anchor_L」にする
  • 「Anchor_L」に「SM_Door_L」を入れる
  • 「Anchor_L」の位置を「X=0.000000,Y=170.000000,Z=0.000000」にする
  • 「SM_Modular_WallDoor」を選択して、「追加/Scene」でSceneを追加して、名前を「Anchor_R」にする
  • 「Anchor_R」に「SM_Door_R」を入れる
  • 「Anchor_R」の位置を「X=0.000000,Y=330.000000,Z=0.000000」に、回転を「X=0.000000,Y=0.000000,Z=180.000000」
  • コンパイルを実行して更新する

スクリーンショット

  • イベントグラフを開く
  • すでにあるイベントのノードをすべて削除する
  • ノードを「Add Custom Event」を選択して「Custom Event」ノードを2つ作成し、名前をそれぞれ「OpenDoor」「CloseDoor」にする
  • ノードを「Add Timeline」を選択して「Timeline」ノードを追加して、名前を「DoorAnimation」にする

スクリーンショット

  • 「DoorAnimation」をダブルクリックして、Timelineの編集エディタを開く
  • 長さを「0.5」にする
  • 「トラック」から「フロートトラックを追加」を選択し、名前を「DoorMovement」にする
  • カーブエディターに2つのキーを追加する
  • 1つ目をTime「0.0」、Value「0.0」にする
  • 2つ目をTime「0.5」、Value「1.0」にする
  • 2つのキーを選択状態にして、2つ目のキーに右クリックから「分割」を選択する
  • カーブを徐々に上がるようにカーブ設定する

スクリーンショット

  • イベントグラフに戻る
  • コンポーネントの「SM_Door_L」「SM_Door_R」をグラフ内に入れる
  • 「SM_Door_L」から「Set Relative Location」ノードを追加する
  • 「On SM_Door_R」->「Set Relative Location(Target)」に接続する
  • 「DoorAnimation(Update)」->「Set Relative Location(実行)」に接続する
  • 「Multiply」ノードを追加する
  • 「DoorAnimation(Door Movement)」->「Multiply(実行)」に接続する
  • 「Set Relative Location」の「New Location」を右クリックから「構造体ピンを分割」で分割する
  • 「Multiply(実行)」->「Set Relative Location(Location Y)」に接続する
  • 「Multiply」の値を「-40」にする
  • 「OpenDoor」->「DoorAnimation(Play)」に接続する
  • 「CloseDoor」->「DoorAnimation(Reverse)」に接続する
  • 「Event BeginPlay」ノードを追加する
  • 「Delay」ノードを追加する
  • 「Event BeginPlay」->「Delay(実行)」に接続する
  • 「Delay」のDurationを「3.0」にする
  • 「OpenDoor」ノードを追加する
  • 「Delay」->「OpenDoor(実行)」に接続する
  • コンパイルを実行して更新する

スクリーンショット

  • Valleyレベル内に「BP_Door」をステージに設置する
    プレイボタンを押して実行して、3秒後にドアが開く

スクリーンショット

  • 「コンテンツドロワー」を開いて、「Framework」フォルダで右クリックして「ブループリントクラス/Actor Component」を選択する
  • 作成したブループリントの名前を「BP_InteractionComponent」にする

スクリーンショット

  • 「BP_InteractionComponent」の編集エディターを開く
  • すでにあるイベントのノードをすべて削除する
  • ノードを「Add Custom Event」を選択して「Custom Event」ノードを2つ作成し、名前をそれぞれ「StartInteraction」「StopInteraction」にする
  • 「マイプループリント/イベントディスパッチャー」から追加して、名前を「OnInteract」にする
  • 「OnInteract」を選択し、「インプット」の「追加」をして、名前を「on」にする
  • 「OnInteract」をグラフにドラッグ&ドロップして「呼び出し」で追加する
  • 「StartInteraction」->「Call On Interact(実行)」に接続する
  • 「Call On Interact」の「On」をONにする
  • 「Call On Interact」の複製を作る
  • 「StopInteraction」->「Call On Interact(実行)」に接続する
  • 「Call On Interact」の「On」をOFFにする
  • コンパイルを実行して更新する

スクリーンショット

  • 「BP_PressurePlate」の編集エディターを開く
  • 「コンポーネント」を追加で「BP_InteractionComponent」を追加する
  • 「BP_InteractionComponent」をグラフにドラッグ&ドロップで追加する
  • 「BP_InteractionComponent」から「Start Interaction」ノードを追加する
  • 「On Component Begin Overlap」->「Start Interaction(実行)」に接続する
  • 「Start Interaction」->「PlateAnimation(Play)」に接続する
  • 「BP_InteractionComponent」から「Stop Interaction」ノードを追加する
  • 「On Component End Overlap」->「Stop Interaction(実行)」に接続する
  • 「Stop Interaction」->「PlateAnimation(Reverse)」に接続する
  • コンパイルを実行して更新する

スクリーンショット

  • 「BP_Door」の編集エディターを開く
  • 「Event BeginPlay」に接続している「Delay」「Open Door」を削除する
  • 「マイプループリント」の「変数」を追加し、名前を「Trigger」にし、変数の型を「Actor」にする
  • 「Trigger」の目のアイコンをONにする
  • 「Trigger」をグラフにドラッグ&ドロップして「Get」で追加する
  • グラフの「Trigger」を右クリックして「検証済みゲッドに変換」を選択し「Get」に変換する
  • 「Event BeginPlay」->「Get(実行)」に接続する
  • 「Get Component by Class」ノードを追加する
  • 「Get(Trigger)」->「Get Component by Class(Target)」に接続する
  • 「Get Component by Class」の「Component Class」を「BP_InteractionComponent」にする
  • 「? Is Valid」ノードを追加する
  • 「Get Component by Class(Return Value)」->「? Is Valid(Input Object)」に接続する
  • 「Get(Is Valid)」->「? Is Valid(Exec)」に接続する
  • 「Get Component by Class(Return Value)」からノード作成で「Assign On Interact」を選択して「Bind Event to On Interact」「OnInteract_Event」を追加する
  • 「? Is Valid(Is Valid)」->「Bind Event to On Interact(実行)」に接続する
  • 「Branch」ノードを作成する
  • 「OnInteract_Event(On)」->「Branch(Condition)」に接続する
  • 「OnInteract_Event(実行)」->「Branch(実行)」に接続する
  • 「OpenDoor」「CloseDoor」ノードを作成する
  • 「Branch(True)」->「OpenDoor(実行)」に接続する
  • 「Branch(False)」->「CloseDoor(実行)」に接続する
  • コンパイルを実行して更新する

スクリーンショット

  • Valleyレベルを開く
  • 「BP_Door」を選択し、「詳細/デフォルト」の「Trigger」を「BP_PressurePlate」にする
  • プレイボタンを押して実行して、「BP_PressurePlate」の上に移動すると「BP_Door」が開き、「BP_PressurePlate」から離れると「BP_Door」が閉まる

スクリーンショット

Effects, Sounds & Camera Shake

動画時間:1:13:22~

  • 「コンテンツドロワー」を開いて、「Content」内に「Effects」フォルダを作成する
  • 「Effects」フォルダを選択する
  • 右クリックから「FX/Niagaraシステム」を選択し、「空のシステムを作成」を選択し、名前を「FX_Dust」にする

スクリーンショット

  • 「FX_Dust」の編集エディターを開く
  • グラフ内の「FX_Dust/System State」を選択する
  • 「詳細/LoopBehavior」を「Once」にする

スクリーンショット

  • グラフ内で右クリックして、「エミットを追加/Empty」を選択する
  • 「Empty」の「エミットの更新」の追加から「Spawn Burst Instantaneous」を選択する
  • 追加した「Spawn Burst Instantaneous」を選択する
  • 「詳細/Spawn Count」の値を「10」にする

スクリーンショット

  • 「Empty」の「Spawn Burst Instantaneous」を選択する
  • 「詳細/Point Attributes/Color Mode」を「Direct Set」に変更する
  • カラーを「R:0.596 G:0.418 B:0.000」にする
  • 「詳細/Sprite Attributes/Sprite Size Mode」を「Random Uniform」に変更する
  • 「詳細/Sprite Attributes/Sprite Size Mode/Uniform Sprite Size Min」を「2.0」に変更する
  • 「詳細/Sprite Attributes/Sprite Size Mode/Uniform Sprite Size Max」を「4.0」に変更する
  • 「詳細/Point Attributes/Mass Mode」を「Random」に変更する

スクリーンショット

  • 「Empty」の「パーティクルのスポーン」の追加から「Add Velocity」を選択する
  • 「Add Velocity」の詳細に出ているエラーを「問題を修正」で解決する
  • 「詳細/Add Velocity/Velocity Mode」を「In Cone」に変更する
  • 「詳細/Cone/Cone Axis/x」を「-1.0」に変更する

スクリーンショット

  • 「Empty」の「パーティクルの更新」の追加から「Scale Sprite Size」を選択する
  • 「Scale Sprite Size」の「詳細」のカーブエディターの右の2つ目のノードを選択する
  • キーデータのYを「15」に変更する

スクリーンショット

  • 「Empty」の「パーティクルの更新」の追加から「Curl Noise Force」を選択する
  • 「Curl Noise Force」の「詳細/Curl Noise Force/Noise Strength」を「15」に変更する

スクリーンショット

  • 「Empty」の「パーティクルの更新」の追加から「Gravity Force」を選択する
  • 「Gravity Force」の「詳細/Gravity Force/Gravity/Z」を「30」に変更する

スクリーンショット

  • 「Empty」の「パーティクルの更新」の追加から「Scale Color」を選択する

  • 「Scale Color」の「詳細/Scale Color/Scale Alpha」に「Float from Curve」でカーブエディターを追加する

  • カーブエディターの右の2つ目のノードを選択する

  • キーデータのXを「0.6」に変更する

  • アセットの保存をする

  • 「コンテンツドロワー」を開いて、「Character/A_Antbot_Run」を開く

  • アニメーションを20%くらいで停止する

  • トラック「1」に 、停止しているタイミングの位置に右クリックして「通知を追加/Play Niagara Particle Effect」を追加する

  • 追加した「Play Niagara Particle Effect」を選択して、「詳細/NiagaraSystem」に「FX_Dust」を選択する

  • 「詳細/Socket Name」に「foot_r」を選択する

  • アニメーションを71%くらいで停止する

  • トラック「1」に 、停止しているタイミングの位置に右クリックして「通知を追加/Play Niagara Particle Effect」を追加する

  • 追加した「Play Niagara Particle Effect」を選択して、「詳細/NiagaraSystem」に「FX_Dust」を選択する

  • 「詳細/Socket Name」に「foot_l」を選択する

  • アセットの保存をする

スクリーンショット

  • プレイボタンを押して実行して、走ると追加したエフェクトが発生する
  • 「コンテンツドロワー」を開いて、「Content」内に「Audio」フォルダを作成する
  • 「編集/プラグイン」で「MetaSound」があることを確認する

スクリーンショット

  • 「Audio」フォルダを選択する
  • 右クリックして、「オーディオ/MetaSoundソース」を追加して名前を「SFX_FootStep」にする

スクリーンショット

  • 「SFX_FootStep」の編集エディターを開く
  • 「Noise」を追加する
  • 「Noise」のタイプを「White Noise」にする
  • 「AD Envelope(Audio)」を追加する
  • 「Input」->「AD Envelope(Audio)(Trigger)」に接続する
  • 「Multiply(Audio)」を追加する
  • 「AD Envelope(Audio)(Out Envelope)」->「Multiply(Audio)」に接続する
  • 「Multiply(Audio)」->「Output」に接続する
  • 「AD Envelope(Audio)」の「減衰時間」を「0.3」、「AttackCurve」を「0.1」、「DecayCurve」を「0.2」に設定する
  • 「Square(矩形波)」を追加する
  • 「Square」の「周波数」を「10.0」、「パルス幅」を「1.0」に設定する
  • 「Add(Audio)」を追加する
  • 「Square(オーディオ)」->「Add(Audio)」に接続する
  • 「Add(Audio)」->「Multiply(Audio)」に接続する
  • 「Multiply(Audio by Float)」を追加する
  • 「Multiply(Audio by Float)」の値を「0.1」に設定する
  • 「Noise(Audio)」->「Multiply(Audio by Float)」に接続する
  • 「Multiply(Audio by Float)」->「Add(Audio)」に接続する
  • アセットの保存をする
  • オーディオの再生ボタンを押して音を確認する

スクリーンショット

  • 「コンテンツドロワー」を開いて、「Character/A_Antbot_Run」を開く
  • 「通知トラックを挿入」をしてトラクック「2」を作る
  • トラクック「2」に、20%くらいの位置に「PlaySound」を追加する
  • 追加した「PlaySound」を選択して、「詳細/アムニノーティファイ/Sound」に「SFX_FootStep」を選択する
  • トラクック「2」に、71%くらいの位置に「PlaySound」を追加する
  • 追加した「PlaySound」を選択して、「詳細/アムニノーティファイ/Sound」に「SFX_FootStep」を選択する
  • アセットの保存をする

スクリーンショット

  • プレイボタンを押して実行して、走ると追加したサウンドが鳴る

  • 「コンテンツドロワー」を開いて、「Effects」フォルダを選択する

  • 右クリックして、「プループリント/DefaultCameraShakeBase」を選択し、名前を「CamerShake」にする

スクリーンショット

  • 「CamerShake」の編集エディターを開く
  • 「詳細/Root Shake Pattern/Timing」の「Duration」を「0.1」、「Blend in Time」を「0.01」、「Blend Out Time」を「0.05」に設定する
  • 「詳細/Root Shake Pattern/Location」の「Location Amplitude Multiplier」を「8.0」、「Location Frequency Multiplier」を「12.0」に設定する
  • コンパイルを実行して更新する

スクリーンショット

  • 「BP_Door」の編集エディターを開く
  • 「PlayWorldCameraShake」ノードを追加する
  • 「SetRelativeLocation(実行)」->「PlayWorldCameraShake(実行)」に接続する
  • 「PlayWorldCameraShake」の「Shake」を「CamerShake」に設定する
  • 「GetActorLocation」ノードを追加する
  • 「GetActorLocation」->「PlayWorldCameraShake(Epicenter)」に接続する
  • 「PlayWorldCameraShake」の「OuterRadius」を「10000」に設定する
  • コンパイルを実行して更新する

スクリーンショット

  • プレイボタンを押して実行して、ドアを開くと画面揺れが発生する

以上、終了

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?