俺に解るように説明する "Unreal.Engine.4" 入門+

UnrealEngine4とかチュートリアルとか入門とか

【日本語】 UE4 ホッケーゲーム part.11 固定カメラ、ホッケーテーブル 【チュートリアル】

今回は、ホッケーテーブルをBSPで用意して外見を作り、それを見下ろすようなゲーム画面になるように固定カメラのの設置・設定をしようと思う。これも何度も使いまわしているが、見た感じはこんなのになる予定。

f:id:ore2wakaru:20160316212830j:plain

----------

台と枠を作るが、ただ単にBSPをドラッグ&ドロップで持ってきて、位置と大きさをイイ感じに合わせるだけの簡単作業。

  1. 台の部分
    [Location]  [x:0  y:0  z:-100]
    [Brush Shape]  [x:1800  y:1200  z:200]

f:id:ore2wakaru:20160331051840j:plain

  1. 枠・左
    [Location]  [x:0  y:-650  z:0]
    [Brush Shape]  [x:1800  y:100  z:100]
  2. 枠・右
    [Location]  [x:0  y:650  z:0]
    [Brush Shape]  [x:1800  y:100  z:100]
  3. 枠・手前・左
    [Location]  [x:-950  y:-500  z:0]
    [Brush Shape]  [x:100  y:400  z:100]
  4. 枠・手前・右
    [Location]  [x:-950  y:500  z:0]
    [Brush Shape]  [x:100  y:400  z:100]
  5. 枠・奥・左
    [Location]  [x:950  y:-500  z:0]
    [Brush Shape]  [x:100  y:400  z:100]
  6. 枠・奥・右
    [Location]  [x:950  y:500  z:0]
    [Brush Shape]  [x:100  y:400  z:100]

f:id:ore2wakaru:20160331055519j:plain

【追加の解説】

[1] 問題ないでしょう。縦1800cm、横1200cmの台を作ったことになる。BSPの広げ方は前も書いたけど、1辺100cmの綺麗な市松模様を残したいので、[Scale]ではなく、[Brush Shape]の方で大きさを変える。[Scale]で変えると、テクスチャが伸びてしまう。

[2][3] この2つは[y]が"-650"か"+650"かの違いだけで後は同じ。UE4では縦(というか奥行きか)が[x]で、横が[y]だから(イヤかもしれないけど)慣れてね。それから、ご存知とは思いますが、[Alt]を押しならが対象をドラッグすると、コピペ出来る。同じものをコピーすればイイ場合は、ほんのちょっとだけ楽。

[4]~[7] この4つも"+"と"-"違うだけの所が多いので、1つ作ったら、それをコピペしてしまった方が早い。[Alt]+ドラッグ。

イメージ図では、センターラインがあったり、ゴール前に色が付いていたりするが、飾りなので、今は省略。簡単に説明すると、スタティックメッシュの[Box]や[Cylinder]を変形させ、上部5cmだけ見えるようにして台に埋め込んだもの。色の付いているのはマテリアルを変更している。マテリアルの変え方に関しては、後でちゃんとやろうと思う。点数が出るのも、後でちゃんとやる。

----------

ふむふむ、テーブルが出来た。今度はカメラの設定だ。それで、カメラなのだが、どうも初期状態ではカメラ情報は、[Player Controller](プレイヤーコントローラー)が持っているようなのだ。自分用にカメラを設定するには、まずはこいつから情報を奪って来る必要がある。奪うだけ奪っても、置く位置が分からなければ、ちゃんと設置できない。位置決めも必要だ。つまり、「1.奪う。2.位置決め。」の2段階を踏めばイケるってことだ。

OK。奪う方はブループリントであっという間に出来るので、設置位置を決めよう。

  1. [All Classes] > [Camera]をドラッグ&ドロップ
  2. 出した[Camera]を右クリ、['Pilot CameraActor']を選択してパイロットモードに

f:id:ore2wakaru:20160331065907j:plain

  1. このモードで移動すると、指定したアクタをくっつけて移動することになる。なので、ビューポート上で、普通に見た感じがイイ所に移動してくれ
  2. 位置が決まったら、[Pilot Active - CameraActor]の▲部分を押してパイロットモードを抜けると、その位置にちゃんと向きもそのままでカメラが置かれる

f:id:ore2wakaru:20160331071743j:plain

  1. 最後の微調整は手動入力。以下のようにすればイイ感じ
    [Location] [x:-1350  y:0  z:700]
    [Rotation] [x:0.0° y:-30.0° z:0.0°
  2. カメラの名前も"CameraActor"から、分かりやすいものに変えておこう
    "Camera_Main"とした

f:id:ore2wakaru:20160331093910j:plain

【追加の解説】

[1] カメラは[All Classes]ってところにあるから、注意。見つけにくければ、[Search Classes]から、検索しても出てくる。

[2][3] 指定したアクタを右クリからパイロットモードにすると、ビューポートで見ている場所に持って行ってくれる。方向もちゃんとやってくれる。特に移動させたいアクタがカメラの場合、大きな画面で見たままの位置決めが出来るので、外からドラッグして移動させるより、この方法は断然やりやすい。

[4] ちゃんと外さないと、いつまでも付いてくるから注意。

[5] アクタがカメラの場合は、ビューポートの右下に小さくカメラから見える風景が表示される。パイロットモードから出た後の最後の確認にどうぞ。パイロットモードなんかにせずに、いきなり数値を入れてももちろんOKだが。

[6] 自分が設置したカメラだということが分かるように、リネーム。

----------

カメラを設置したい位置と向きは決まった。では、ゲーム時の固定カメラとして機能させるべく、ブループリントに書いていこう。

  1. 2面のレベルブループリントを開いて、前回の続き[Set Show Mouse Cursor]から白線を引っ張って、検索"Set View Target with Blend"
  2. 選択
  3. [Target]に[Get Player Controller]を繋ぐ

f:id:ore2wakaru:20160331115031j:plain

  1. [New View Target]にさっき作った"Camera_Main"を指定したいんだけど、いったん2面のレベルエディタに戻って、[World Outliner]で"Camera_Main"を選択してくれ
  2. 空いている場所で右クリすると、何も検索用語を入れない状態で、上から3つ目に、"Create a Reference to Camera_Main"というのが出るはずなので、これを選択。すると、[Camera_Main]となる
  3. [New View Target]と出てきた[Camera_Main]と繋ぐ

f:id:ore2wakaru:20160331121209j:plain

【追加の解説】

[1][2][3] [Set View Target with Blend]っていうのは、[Target]が持っているカメラの位置・方向を[New View Target]の位置・方向に[Set]しちゃうよっていうノード。固定カメラ設置の基本パターン。[Target]は旧位置、[New Target]は新位置、と考えればイイんじゃない。

元のカメラ情報は[Player Controller]が持っているので、[Targrt]には[Get Player Controller]を繋ぐ。[Player Controller]が持っている情報にアクセスして持って来い(getして来い)っていうイメージ。

このところ、ずっと[Get Player Controller]だらけだよね。キー入力制限、マウスカーソル表示、カメラの固定などなど。慣れましょう。

[4][5][6] 新位置に"Camera_Main"を繋ぎたいとは分かると思うけど、普通に検索しようとしても出ないはず。なので、必ず、レベルエディタの方に戻って、[World Outliner]で"Camera_Main"が選択されているか(ハイライトされているか)確認だ。選択されていれば、上から3つ目ぐらいに"Create a Reference to Camera_Main"と出るはず。

以前ちょこっと紹介した"Reference"(リファレンス)という言葉がここで出てきた。「"Reference"の指定」がすごい大事だって書いたの覚えている? 簡単に言うと、「参照」ということなんだけど、「~の情報を見に行きますよ」ってことと思っていい。つまりは、"Camera_Main"の情報を見に行くノードを作りますよってことだな。

ちなみに、この上3つの選択肢は、すべて"Camera_Main"に関連する専用のものとなっている。レベルエディタで何かアクタが選択されている場合、優先的にそのアクタに関連する選択肢が上の方に出るようになっている。意外とこれが便利機能。

今後も恐らく、レベルエディタでアクタを選択してから、レベルブループリントで右クリして"Reference"を出すってことがあるだろうから、やり方に慣れておこう。

----------

出来上がりのブループリントはこんな感じ。

f:id:ore2wakaru:20160331131230j:plain

[Compile]お忘れなく。レベルエディタに戻って[Play]してみると、もしかしたら、前回触れた「何か丸いのが動いてるけど何だ?」が見られるかもま。でもあれだな、ちょっと長くなったので、今回はこの辺で。

"Save All"