ドアを開ける

ブループリントと C++ を使って、接近すると開くようにドアを設定するためのタイムラインの使用例。

Choose your operating system:

Windows

macOS

Linux

実装方法を選んでください。

Blueprints

C++

このチュートリアルでは、

[Engine Starter content](Basics/Projects/Browser/Packs)
で利用できるリソースを使って、 Timeline ブループリントで接近すると開くドアの設定方法を紹介します。

![image alt text](openingdoors.gif)(convert:false)

Door アクタを作成する

  1. 最初に、 [New] > [Games] > [Blank] > [Blueprint] プロジェクトへ進み、 スターターコンテンツ を有効にした TimelineDoorActor を作成します。

  2. [Add/Import] ボタンをクリックして、Blueprint Actor クラスを新規作成し、 BP_DoorActor を名前をつけます。

  3. コンテンツブラウザから BP_Door アクタをダブルクリックしてブループリント エディタで開いて Class Defaults を開きます。

    image alt text

  4. 次に、 [Components] タブから [Add Component (コンポーネントを追加)] ボタンをクリックし [Static Mesh] を選択して Static Mesh Component を追加します。

    image alt text

  5. スタティックメッシュを右クリックし、 [Rename (名前を変更)] を選択して DoorFrame に名前を変更します。

    image alt text

  6. 次に、 [Components] タブから [Add Component (コンポーネントを追加)] ボタンをクリックし [Static Mesh] を選択して Static Mesh Component を追加します。(Repeating step 3)

  7. スタティックメッシュを右クリックし、[Rename (名前を変更)] を選択して Door に名前を変更します。

    image alt text

  8. [Add Component] をクリックし、ドロップダウン メニューから [Box Collision] を選択して Box に名前を変更します。

    image alt text

  9. 次にイベントグラフを開いて グラフ を右クリックし、 [Blueprint Context Menu] から [Add Timeline (タイムラインを追加)] を選択します。タイムラインに DoorTimelineComponent と名前をつけます。

    image alt text

この時点で、BP_DoorActor のクラス デフォルトは、以下の例のようになっているはずです。

image alt text

Door Static Mesh を設定する

次に、 [Components] タブのアタッチメント階層を設定する必要があります。

DoorFrame スタティックメッシュ コンポーネントと Door スタティックメッシュ コンポーネントを視覚的に表示するスタティックメッシュ アセットも設定する必要があります。

  1. BP_DoorActor の [Component] タブから DoorFrame スタティックメッシュを選択し、それを DefaultSceneRoot コンポーネント にドラッグして新しい ルート コンポーネント にします。

    image alt text

  2. [Components] タブで DoorFrame スタティックメッシュを選択し、 [Details] パネルでスタティックメッシュを SM_DoorFrame に変更します。

    image alt text

  3. [Components (コンポーネント)] パネルで DoorMesh コンポーネントを選択します。 [Details] パネルに移動し、スタティックメッシュを SM_Door に変更します。

    image alt text

  4. Transform カテゴリに移動し、 Y Location 値を 45.0 に変更します。

    image alt text

  5. [Save (保存する)] [Compile (コンパイルする)] をクリックしてこれらの変更を Bp_DoorActor に保存します。

Timeline Float Track を作成する

Timeline Component では移動アニメーションを記述するために Timeline Curve を必要とします。それぞれのカーブには、時間と値を定義する複数のキーが含まれています。カーブはこれらのキーを補間して、タイムライン中の任意のポイントの値を計算します。

  1. まず、イベントグラフの DoorTimelineComponent をダブルクリックして Timeline エディタを開きます。

  2. [Add Float Curve (Float カーブを追加)] をクリックしてトラックに新しいカーブを追加して、そのカーブに DoorRotationZ と名付けます。

    image alt text

  3. 右クリックして Float カーブ トラックにキーを 2 つ追加します。値は (0,0) と (5,90) にします。

    image alt text

  4. Shift キーを使って 2 つのキーを選択し、 [Key Interpolation (キー補間)] ドロップダウン メニューから [Auto (自動)] 補間を選択します。

  5. Float トラックを保存します。

イベント トラック ロジックを更新する

次に、Door スタティックメッシュを回転させるための更新ロジックを作成する必要があります。

  1. BP_DoorActor の [Components] タブに移動し、Door スタティックメッシュをイベントグラフにドラッグします。

    image alt text

  2. Door ピンを引き出し、アクション コンテキスト メニューから SetRelativeRotation を選択します。

    image alt text

  3. イベントグラフを右クリックし、コンテキスト メニューから Make Rotator を選択します。

    image alt text

  4. DoorTimelineComponent ノードから Door Rotation Z float ピンを引き出して Make Rotator ノードの Z ( Yaw ) ピンにつなぎます。

    image alt text

  5. DoorTimelineComponent ノードから Update ピン を引き出して SetRelativeRotation ノードの入力実行ピンにつなぎます。

  6. Make Rotator ノードの Return Value ピンを SetRelativeRotation ノードの New Rotation ピンにつなぎます。

    image alt text

  7. コンパイル して 保存 します。

Binding Box Collision Overlap イベントを作成する

アクタがコリジョン領域に出入りするときに Box コンポーネントが反応する機能が必要です。

  1. BP_DoorActor の [Components] タブで Box コンポーネントから Box コンポーネントを選択します。

  2. [Details] パネルの Events カテゴリを下にスクロールし、 On Component Begin Overlap イベントの横にある [+] アイコンをクリックします。

    image alt text

  3. On Component Begin Overlap(Box) ノードの実行ピンを引き出して、DoorTimelineComponent ノードの Play ピンにつなぎます。

    image alt text

  4. BP_DoorActor の [Components] タブで Box コンポーネントから Box コンポーネントを選択します。[Details] パネルの Events カテゴリを下にスクロールし、 On Component End Overlap イベントの横にある [+] アイコンをクリックします。

    image alt text

  5. On Component Begin Overlap(Box) ノードの実行ピンを引き出して、DoorTimelineComponent ノードの Reverse ピンにつなぎます。

    image alt text

  6. コンパイル して 保存 します。

アクタをレベルに配置する

  1. コンテンツ ブラウザで BP_DoorActor を選択してビューポートにドラッグします。

    image alt text

  2. [PIE] を押します。

    image alt text

    WASD キーを使って、スペクテイター ポーンを制御することができます。DoorActor のコリジョン領域へ移動すると、ドアが開いた時にタイムラインがプレイするのが分かります。領域に存在している時は、タイムラインが反対にプレイすることがわかります。

完成したブループリント

BP_DoorActor

image alt text

[INCLUDE:ProgrammingAndScripting/Blueprints/UserGuide/Timelines/Examples/OpeningDoors/CPP]
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる