Unreal Engineトップへ戻る

目次

  1. 用語一覧
  2. はじめてのタイムライン
  3. FloatトラックとLerpを組み合わせる
  4. Vecterトラックを使う

用語一覧

BeginPlayグラフ

  • 初期化の際に始まるグラフ

Updateピン

  • タイムラインの再生が行われている間は常に実行される

Finishedピン

  • タイムラインの再生後に実行される

Lerp

  • Linear Interpolating(線形補間)
    指定した2点間の値を直線で補間する

Arrowコンポーネント

  • エディタ上のみで描画される矢印

はじめてのタイムライン

  • 落ちているコインを1秒につき1回転させる

Floatトラックをつくる

  1. コンテンツブラウザ > コンテンツ > Maps > Stage01 > PNStage01_Top をダブルクリック
  2. マップ上のコインを選択 > 詳細パネル > ブループリントを編集 > スクリプトの追加または編集 > ブループリントエディタのイベントグラフ を開く
  3. BeginPlayノードを探す(マイブループリント > グラフ > EventGraph > BeginPlay)
  4. BeginPlayノードの実行出力ピンをドラッグ > アクションリストから「タイムラインを追加する…」を選択
  5. タイムラインノードに「CoinRotationTimeLine」と名前を付ける("ノードを選択 > F2" もしくは "右クリック"で名前の変更が可能)
  6. CoinRotationTimeLineノードをダブルクリックしてタイムラインエディタを開く
  7. 長さ:1.0秒に設定, ループにチェックを入れる
  8. 左上にある[f+]ボタンをクリック(浮動小数点を扱うFloatトラックの作成) > 「CoinYaw」と名前を付ける
  9. "Shift + クリック"で大まかな位置にキーを2点追加する
     1点目:[時間]0.0 [値] 0.0
     2点目:[時間]1.0 [値]360.0
  10. 上部にある時間、値プロパティから直接変更することもできる(ドラッグで移動も可能)
  11. 時間プロパティの左側にある二つのズームボタンをクリック > タイムラインの縮尺を変更
     [↔]:水平方向ボタンで横幅の調節ができる
     [↕]:垂直方向ボタンで縦幅の調節ができる

タイムラインの値を活用する

  1. EventGraphタブに戻る
  2. コンポーネントパネル > StaticMeshComponentをグラフにD&D
  3. StaticMeshComponentノードの出力ピンからワイヤーを伸ばす > Set Relative Rotation
  4. CoinRotationTimeLineノードのUpdate出力ピンとSet Relative Rotationを繋ぐ
  5. CoinRotationTimeLineノードのCoinYaw出力ピン[Floatタイプ]とSet Relative Rotationの入力ピン[Rotatorタイプ]を接続するために
    [Floatタイプ]を[Rotatorタイプ]に変換する
  6. Set Relative RotationノードのNewRotation入力ピンをドラッグ > Make Rotatorノードを設置
  7. CoinRotationTimeLineノードのCoinYaw出力ピンをMake RotatorノードのYaw入力ピンにつなぐ
  8. ツールバーのコンパイルボタンを押した後で実行する

FloatトラックとLerpを組み合わせる

  • 踏むと沈む床スイッチの作成

床スイッチを準備する

  1. Defaultテンプレートで新しいレベルを作成 > コンテンツ > Maps > Testに"Test_Event_Switch"と名前を付けて保存
  2. コンテンツブラウザ > コンテンツ > Blueprints > 新しいブループリントを追加
    親クラス:Actor
    名前  :PNSwitchActor
  3. PNSwitchActorをダブルクリックしてブループリントエディタを開く
  4. ルートコンポーネントの作成
    コンポーネントパネル > コンポーネントを追加 > Common > Scene > "SceneRoot"と名前を付ける
  5. SceneRootコンポーネントの子階層 > StaticMeshコンポーネントを追加 > "Mesh"と名前を付ける
  6. 追加したStatic Mashコンポーネント > 詳細パネル > Static Mesh > SM_Shape_Cylinder100x10
  7. コンポーネントを追加 > BoxCollisionコンポーネントを追加 > "BoxTrigger"と名前を付ける
  8. BoxTriggerをMeshコンポーネントの子階層に移動
  9. BoxTriggerの位置を調節する
    詳細パネル > トランスフォーム > ロケーション:x = 0.0, y = 0.0, z = 20.0
    Shape > BoxExtent > x = 22, y = 22, z = 10
  10. コンパイルを行う

タイムラインのキー補間を使う

  1. EventGraphタブをクリック
  2. Begin Playノードの実行出力ピンからワイヤーを伸ばす > タイムラインを追加する…を選択 > "SwitchTimeLine"と名前を付ける
  3. SwitchTimeLineノードをダブルクリックしてタイムラインエディタを開く
    長さ:0.5, その他のチェックボックスはすべて外す
  4. Floatトラックの追加 > "Alpha"と名前を付ける
  5. "Shift + クリック"でキーを2点追加する
     1点目:[時間]0.0 [値]0.0
     2点目:[時間]0.5 [値]1.0
  6. 最初のキーを右クリック > キー補間 > 自動を選択
  7. ズームイン、ズームアウトの値変化が適用される

Lerpノードを使う

  1. EventGraphタブに戻る
  2. SwitchTimeLineノードのApha出力ピンからワイヤーを伸ばす > Lerp(Vector)を設置
  3. AピンとBピンの値を設定する
    A:(0.0, 0.0, 0.0):スイッチの初期位置
    B:(0.0, 0.0, -8.0):スイッチが完全に押下がった時の位置
  4. コンポーネントパネル > Meshコンポーネントをグラフ上にD&D
  5. Meshノードからワイヤーを伸ばす > ★Set Relative Locationを選択
  6. Set Relative LocationノードとSwitchTimeLineノードのUpdate実行ピンを繋ぐ
  7. Lerp(vecter)ノードのreturn valueとSet Relative LocationノードのNewLocationをつなぐ
  8. コンパイルを行う
  9. PNSwitchActorをテストマップにD&D
  10. 実行(うまく動かないかも)

スイッチの体裁を整える

  1. PNSwitchActorのブループリントエディタに戻る > コンポーネントパネル > Boxtriggerコンポーネントを右クリック > イベントを追加 > OnComponentBeginOverlapを選択し、追加する
  2. BeginPlayノードとSwitchTimeLineの接続を切断する
  3. OncomponentBeginOverlapノードの実行出力ピンをSwitchTimeLineのPlayピンに接続する
  4. コンパイルを行う
  5. テストプレイする

Vecterトラックを使う

  • 3次元座標を複雑に移動するアニメーションに最適

ふすまの構造を準備する

  1. コンテンツ > Architecture > Textures > T_Fusuma01_Dから、マテリアルM_Fusuma01を作成
  2. コンテンツ > Architecture > Textures > T_CardboardSide02_D から、マテリアル M_CardboardSideを作成
  3. 新作したマテリアルをコンテンツ > Architecture > Materialsフォルダへ移動
  4. コンテンツ > Architecture > SM_fUSUMA02_01~04までのスタティックメッシュにマテリアルを割り当てる
    エレメント0:M_CardBoardSide
    エレメント1:M_Fusuma01
  5. コンテンツ > Blueprintsから新しいブループリントを作成する
    親クラス:Actor
    名前:PNGateActor
  6. PNGateActorをダブルクリックしてブループリントエディタを開く
  7. ルートコンポーネントの作成
    コンポーネントパネル > Arrow > "Arrow"と名前を付ける
  8. Static Mashコンポーネントを4つ追加する
    名前1:Outside Left Mesh ,メッシュ:SM_Fusuma02_01, 位置:Y = 75 ,可動性:スタティック
    名前2:inside Left Mesh ,メッシュ:SM_Fusuma02_02, 位置:Y = 25 ,可動性:ムーバブル
    名前3:inside Right Mesh ,メッシュ:SM_Fusuma02_03, 位置:Y = -25 , 可動性:ムーバブル
    名前4:Outside Right Mesh ,メッシュ:SM_Fusuma02_04, 位置:Y = -75 , 可動性:スタティック

Vecterトラックでキーを打つ

X軸[時間:0.0~0.5秒,値:0.0~-10.0],[時間:0.5秒~,値:-10.0をキープ]
Y軸[時間:0.0~0.5秒,値:初期位置25をキープ],[時間:0.5~1.0秒,値:25~75まで移動]
Z軸常に0.0をキープ
  1. Event Graphタブをクリックして、イベントグラフの編集に切り替える
  2. Begin Playノードの実行出力ピンからワイヤーを伸ばす > タイムラインを追加する…を選択 > "GateTimeLine"と名前を付ける
  3. GateTimeLineノードをダブルクリックしてタイムラインエディタを開く
    長さ:1.0, その他のチェックボックスはすべて外す
  4. Vecterトラック[V+]の追加 > "Left"と名前を付ける
  5. "Shift + クリック"でキーを3点追加する
     1点目:[時間]0.0 [値]0.0
     2点目:[時間]0.5 [値]0.0
     3点目:[時間]1.0 [値]0.0
  6. 左側の目のアイコンを使用して、使わない軸にロックをかけながら作業していく
  7. X軸のアニメーションを作成する
     1点目:[時間]0.0 [値] 0.0
     2点目:[時間]0.5 [値]-10.0
     3点目:キーを削除する(キーを選択 + Delete)
  8. 1番目のキーを右クリック > キー補間 > 自動
  9. Y軸のアニメーションを作成する
     1点目:キーを削除する(キーを選択 + Delete)
     2点目:[時間]0.5 [値] 25.0
     3点目:[時間]1.0 [値] 75.0
  10. 2番目のキーを右クリック > キー補間 > 自動
  11. Z軸のアニメーションを作成する
     1点目:[時間]0.0 [値] 0.0
     2点目:キーを削除する(キーを選択 + Delete)
     3点目:キーを削除する(キーを選択 + Delete)

Vecterトラックの値を活用する

  1. Event Graphタブをクリックして、イベントグラフの編集に切り替える
  2. コンポーネントパネル > Inside Left Meshをグラフ上へD&Dしてワイヤーを伸ばす > Set Relative Locationノードの設置
  3. GateTimelineノードのUpdateとSet Relative Locationノードの実行ピンをつなぐ
  4. GateTimelineノードLeft出力ピンとSet Relative LocationノードのNew Locationノード入力ピンをつなぐ
  5. 一旦コンパイル
  6. PNGateActorをマップに配置 > プレイボタンを押してテストする
  7. Yの値を反転させて右扉を動くようにする
  8. GateTimelineノードのLeft出t力ピンをドラッグ > Vecter * Vecterノードを設置
  9. [B]ピン側の定数を[x = 1.0, y = -1.0, z = 1.0]
  10. Inside Right Meshをグラフ上へD&Dしてワイヤーを伸ばす > Set Relative Locationノードを設置
  11. Inside Left MeshのSet Relative Locationの実行出力ピンを、今回設置した同名のノードの実行ピンと接続する
  12. Vecter*Vecterの出力ピンをNewLocation入力ピンに接続する
  13. コンパイルを行う
  14. プレイボタンを押して実行する

Unreal Engineトップへ戻る


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