Unreal Engineトップへ戻る

目次

  1. 用語一覧
  2. トリガーの活用(デストリガー
  3. ピックアップアイテムを作る
  4. ゲームに組み込む

用語一覧

ブロック(Block)

  • すりぬけを許さないコリジョン。

オーバーラップ(Overlap)

  • すりぬけを許すコリジョン。

トリガー(Trigger)

  • ゲームの物理的な動きには干渉しないが、ゲームロジックの引き金となるコリジョンとして使うオーバーラップ。イベントボックスとも呼ばれる。

ピックアップアイテム

  • プレイヤーキャラを重ねることで拾うことのできるアイテム

ルートコンポーネント

  • コンポーネント階層構造でもっとも上層に位置するもの

ブランチノード

  • 実行出力ピンを2つ持つノード

トリガーの活用(デストリガー)

簡単なプレイヤーキャラの死亡処理を準備する

  1. 新しいレベルを[Default]テンプレートで作成し、[コンテンツ > Maps > Test]のパスに「Test_Trigger」という名前で保存する
  2. コンテンツブラウザで[コンテンツ > Blueprints]フォルダにある[PNPlayerPawn]をダブルクリックしてブループリントエディタを開き、[Event Graph]タブに切り替える
  3. グラフ上の何もないところで右クリックしてアクションリストを出し、[イベントを追加] > [ゲーム] > [ダメージ] > [イベント Any Damage]を選択する
  4. [Any Damage]イベントノードの実行ピンをドラッグしてワイヤーを伸ばし、アクションのリストから[ユーティリティ] > [ストリング] > [Print String]を選択する
  5. 追加した [Print String]ノードの[In String]入力ピンの文字列を「Died!」に変更する
  6. ツールバーの[コンパイル]ボタンを押し、コンパイルを行う

トリガーをレベルブループリントで利用する

  1. コンテンツブラウザから、[コンテンツ > Starter Content > Particles]フォルダにある炎のパーティクル[P_Fire]を、マップ上にドラッグ&ドロップで配置する。3つほど並べ、炎上地帯を作る
  2. モードパネルの[配置]モードで[基本]を選び、[ボックストリガー]を手順1で作った炎上地帯のあたりにドラッグ&ドロップで配置する
  3. [詳細]パネルで、このボックストリガーの名前を「Death Trigger」に変更する
  4. 移動ツールで位置を、[詳細]パネルの[Shape] > [Box Extent]で大きさを調節し、炎上地帯の一帯を覆うようにする
  5. ビューポートまたは[ワールドアウトライナ]パネルで[Death Trigger]を右クリックし、サブメニューから[イベントを追加] > [On Actor Begin Overlap]を選択する
  6. [On Actor Begin Overlap]ノードの[Other Actor]出力ピンからは、このトリガーとオーバーラップしたアクタが情報として出力されている。この出力ピンをドラッグしてワイヤーを伸ばし、アクションリストから、ダメージを与える命令[Game] > [Damage] > [Apply Damage]を選択する
  7. [Base Damage]に与えるダメージ量を「100」と設定する
  8. [プレイ]ボタンを押してゲームをスタートさせ、ニンジャを操作して、炎に突っ込ませ、ビューポートの左上に「Died!」が出れば成功

アクターにトリガーをとりつける

  1. コンテンツブラウザから、[コンテンツ > Starter Content > Particles]フォルダの[P_Fire]をもうひとつマップ上にドラッグ&ドロップして配置する
  2. 手順1で追加した[P_Fire]アクタを選択し、[詳細]パネルの右上にある[ブループリント/スクリプトを追加]ボタンをクリックする
  3. [パスを選択]ダイアログで[コンテンツ > Blue Prints]フォルダを選択し、[ブループリント名]の欄に「PNTrapFireActor」と入力して、[ブループリント作成]ボタンを押す
  4. 作成された「PNTrapFireActor」をダブルクリックして、ブループリントエディタを開く
  5. [コンポーネント]パネルで[コンポーネントを追加]ボタンをクリックし、[Box Collision]を追加し、「BoxTrigger」と名づける
  6. [コンポーネント]パネルで「BoxTrigger」を右クリックして、[イベントの追加] > [On Component Begin Overlap を追加]と操作する
  7. [Other Actor]出力ピンをドラッグして、アクションリストから[Game] > [Damage] > [Apply Damage]を設置する
  8. イベントノードと[Apple Damage]ノードの実行ピンが接続されていることを確認し、自動で接続委されていなかった場合は手作業で接続する
  9. [Apply Damage]ノードの[Base Damage]入力ピンに「100」を設定する
  10. コンパイルを行い、テストプレイをし、プレイヤーを突撃させてトリガーが機能するかを確認する

ピックアップアイテムを作る

メッシュにマテリアルを貼る

  1. [コンテンツ > Props > Textures]フォルダで、[T_Coin01_D]テクスチャから新しい「M_Coin」マテリアルを、[T_Scroll_D]テクスチャからは「M_Scroll」マテリアルを作成し、この二つのマテリアルを[コンテンツ > Props > Materials]へ移動させる
  2. [コンテンツ > Props]の[SM_Coin]スタティックメッシュに、手順1で作った[M_Coin]マテリアルを適用する
  3. 同じフォルダにある、[SM_Scroll]スタティックメッシュに[M_Scroll]マテリアルを適用する

アクタを消滅させる

  1. レベルエディタに戻り、コンテンツブラウザの[コンテンツ > Props]フォルダから、[SM_Coin]スタティックメッシュをマップ上にドラッグ&ドロップして配置する
  2. マップ上の[SM_Coin]を選択した状態で、[詳細]パネルから[トランスフォーム(変換)] > [可動性]プロパティを[ムーバブル]に変更します
  3. 次に[詳細]パネルの[ブループリント/スクリプトを追加]ボタンをクリックしてブループリント化する。[パスを選択]ダイアログが開いたら[コンテンツ > Blue Prints]のパスに「PNPickupCoinActor」という名前で作成する
  4. 作成した[PNPickupCoinActor]をダブルクリックしてブループリントエディターを開く
  5. [コンポーネント]パネルから[Box Collision]コンポーネントを追加して「Box Trigger」と名づける
  6. 追加した[Box Collision]がずれているのでビューポート内で移動ツールを使い目分量であわせる
  7. [詳細]パネル上で[Box Trigger]を選択していることを確認し[Shape] > [Box Extent]プロパティの[X][Y][Z]の値を「25」とする
  8. [コンポーネント]パネル上で、[Box Trigger]を右クリック、[イベントを追加] > [On Component Begin Overlap]を選択し、イベントグラフにこのイベントを追加する
  9. 空いているところを右クリックし、アクションリストから[ユーティリティ] > [Destroy Actor]を選択して、オーバーラップのイベントノードから実行ピンを接続する
  10. コンパイルをして、テストマップ上に[PNPickupCoinActor]をドラッグ&ドロップしてテストプレイし、コインが消滅するかを確認する

ゼロからアクタを構築する

  1. コンテンツブラウザのアセットツリーで[コンテンツ > Blueprints]フォルダを選択し、[新規追加]ボタンを押して[Blueprintクラス]を選択します
  2. [親クラスを選択]ダイアログで[Actor]を選択し、作成されたブループリントに「PNPickupScrollActor」と名づける
  3. [PNPickupScrollActor]をダブルクリックしてブループリントエディタを開く
  4. ビューポート左上の[▼]ボタンをクリックしてサブメニューから[フロア表示]を選択する
  5. 次に[コンポーネント]パネルで、[コンポーネントを追加]ボタンをクリックし、サブメニューから[Scene]を選択し、名前を「SceneRoot」にする
  6. [コンポーネント]パネルで、[コンポーネントを追加]ボタンをクリックし、サブメニューから[スタティックメッシュコンポーネント]を選択し「Mesh」という名前にする
  7. [コンポーネント]パネルで[Mesh]を選択し、[詳細]パネルで[トランスフォーム(変換)] > [可動性]プロパティが[ムーバブル]であることを確認し[Static Mash] > [スタティックメッシュ]プロパティに、[SM_Scroll]を割り当てる
  8. [Mesh]を[詳細]パネルで位置の[z]を「28」に、回転の[Y]を「-40」に設定する
  9. [Box Collision]コンポーネントを追加して「Box Trigger」と名づけ位置とサイズを目分量で整える
  10. [コンポーネント]パネル上で[BoxTrigger]を右クリックして、[イベントを追加] > [On Component Begin Overlap]を選択し、イベントグラフにこのイベントを追加する
  11. グラフの空いているところを右クリックして、アクションリストから[ユーティリティ] > [Destroy Actor]を設置し、オーバーラップのイベントノード[On Component Begin Overlap]から実行ピンをつなぎます
  12. コンパイルを行う
  13. レベルエディタの戻り、テストのためにこの[PNPickupScrollActor]をマップ上にドラッグ&ドロップし、プレイを押してテストプレイする。プレイヤーが巻物に接触して巻物が消えてなくなれば成功。

初めてのブランチ

  1. [PNPlayerPawn]のブループリントエディタに切り替えて、[コンポーネント]パネルから[PNPlayerPawn]を選択するか、ツールバーの[クラスのデフォルト]ボタンを押して、ポーンの全体的な設定項目を[詳細]パネルに表示させる
  2. [詳細]パネルの[Actor]カテゴリーの下部にある[▼]アイコンを押してより高度な設定欄を開きます
  3. [Tags]横の[+]アイコンをクリックして入力欄を追加し、「Player」と入力して、[コンパイル]する
  4. [PNPickupCoinActor]のブループリントエディタに戻り、[On Component Begin Overlap]と[Destroy Actor]の間の実行ワイヤーを実行ピン上で、[Alt]+クリックすることで切断する
  5. [Destroy Actor]は後で再度ノードネットワークにつなぐので邪魔にならないところに移動させておく
  6. [Other Actor]出力ピンからワイヤーを伸ばし、[ユーティリティ] > [タグ付きアクター]を選択し、設置されたノードの[Tag]入力ピンに「Player」と入力する
  7. [ユーティリティ] > [フロー制御] > [ブランチ]を選択するか、キーボードで[B]を押しながらクリックして、ブランチノードを設置する
  8. [タグ付きアクター]ノード出力ピンを、[ブランチ]ノードの[Condition]入力ピンに接続する
  9. [On Component Begin Overlap]イベントの次に分岐が起きるように、このノードの実行ピンを、[ブランチ]ノードの実行ピンに接続する
  10. [ブランチ]ノードの[True]の先に手順1で移動させておいた[Destroy Actor]をつなげる
  11. [コンパイル]を行い、プレイヤーキャラを重ねてアイテムが消滅するかを確認する
  12. [PNPickupScrollActor]も同じ手順でブループリントを組む

ゲームに組み込む

テストマップで作ったものを本番のマップに組み込む

  1. コンテンツブラウザで、[コンテンツ > Maps > Stage01]フォルダの[PNStage01_Top]をダブルクリックして、「ステージ1」のマップを開く
  2. [レベル]パネルで[PNStage01_GB]サブレベルのロックを解除し、ダブルクリックして[現在のレベル]に設定する
  3. 「X = -360, Y = 210, Z = 210」あたりに巻物[PNPickupScrollActor]を配置する
  4. [PNPickupCoinActor]を何枚か配置する
  5. [PNTrapFireActor]を配置する(本では「X = 450, Y = -300, Z = 10」)
  6. テストプレイをし、確認する

Unreal Engineトップへ戻る


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-06-23 (木) 17:13:35 (844d)