UnityユーザーのためのUEブループリント入門
コードとビジュアル両方のスクリプトを比較してゲームエンジンを学びます

2. 親子関係

UnityとUnreal Engine両方にも親子関係を作ることができます。
  • 親子関係
  • 親子関係になるとどうなるのか
  • 親子関係時の重心と向き
  • 親子関係時のTransform表示

2. Unityの親子関係

2.1 親子関係

親子関係とは階層構造になっているゲームオブジェクトのことを指します。
Transformの値からゲームオブジェクトを操作したとき、親と相対的な位置になります。
Resetで位置を原点に回転、拡大縮小を無しにできます。
HierarchyにCubeを作成してSceneに置きます。
HierarchyにSphereを作成してSceneに置きます。
Cubeを選択して、InspectorにあるTransformを確認します。
Transformのリセットは、右側の縦に三つの点があるアイコンを押してResetを選択するとLocation、Rotation、Scaleがリセットされます。
次に親子関係を見てみます。
わかりやすいように、CubeのLocationをx:0,y:0.5,z:1、SphereのLocationをx:0,y:0.5,z:-2にします。
それからPlaneゲームオブジェクトを追加してリセットしておきます。
LocationをそれぞれセットしたらHierarchyで、Sphereをクリックしてから、Cubeの項目にドラック&ドロップします。
Cubeが親、Sphereが子の親子関係が作成できます。
SphereのLocationを確認すると、Locationの値が変わっていることを確認します。
親子関係はたくさんつくることもできます。

2.2 親子関係になるとどうなるのか

親であるCubeを動かすと、子のSphereも追従します。
親であるCubeのLocation
子であるSphereのLocation
親は子の影響を受けません。

2.3 親子関係時の重心と向き

  • Pivot 単体の中心位置
  • Center 全ての子を含めた中心位置
  • Global 現在の回転を考慮しない
  • Local 現在の回転を考慮する
  • Globalは選択するたびに矢印の回転をリセットする
親子関係の解除は、ドラッグ&ドロップで違うところに置きます。
Transformは親から見た相対的な値になります。

2.4 親子関係時のTransform表示

親から見た相対的な座標はローカル座標です。
親とは無関係な絶対座標はグローバル(ワールド)座標です。
Transformの回転、大きさもローカル表示になります。

2. UEの親子関係

2.1 親子関係

Place ActorsパネルからCubeをレベル上に置きます。
続けてPlace ActorsからSphereをレベル上に置きます。
Cubeを選択して、ワールドアウトライナの詳細パネルにあるTransformを確認します。
Transform Locationのリセットは、右側にある曲がった矢印を押すとリセットされます。
Rotation、Scaleも同様に、矢印を押すとリセットされます。試しにRotaion、Scaleの値を適当に変えます。
矢印を押すとリセットされます。
TransformのLocation、Rotation、Scale全てをリセットする機能はないようです。
次に親子関係を見てみます。
わかりやすいように、CubeのLocationをx:0,y:0,z:70、SphereのLocationをx:0,y:-200,z:0にします。
Locationをそれぞれセットしたらワールドアウトライナで、Sphereをクリックしてから、Cubeの項目にドラック&ドロップします。
Unityと同じようにCubeが親、Sphereが子の親子関係が作成できます。
SphereのLocationを確認しますと、Locationの値が変わっていないことを確認します。
また、親子関係はたくさんつくることもできます。

2.2 親子関係になるとどうなるのか

親であるCubeを動かすと、子のSphereも追従します。
親であるCubeのLocation
子であるSphereのLocation
Unityと同様に親は子の影響を受けません。

2.3 親子関係時の重心と向き

Unityのような中心位置を変更するCenter機能をUEで使う場合は、親と子を選択してから右クリック > Pivot > Center On Selectionを選びます。
次にローカル座標やグローバル座標の変更についてみていきます。
いまレベル上にある親Cubeを選択します。
そしてビューポートディスプレィの右上にある縦に並んでいるアイコンの左から4番目にある地球儀の形をしたアイコンがあります。いまはグローバル座標になっています。
これをローカル座標に変更するために、地球儀アイコンをクリックします。すると、Cube状のアイコンに変わります。これでローカル座標に変更されます。
試しに、ローカル座標になっている状態で親CubeのRotation xを30に変更します。
そうすると、ローカル座標に基づいて回転を考慮していることがわかります。
グローバル座標に変更します。
今度は回転を考慮しないことがわかります。
親子関係の解除は、Unityと同じく、子を選択して違うところに置くと解除されます。

2.4 親子関係時のTransform表示

Unityと同じように、CubeとSphereそれぞれのLocation、Rotation、Scaleをリセットしてから、UEのスケールに合わせて、CubeのLocationをx:0, y:100, z:70、SphereのLocationをx:0, y:300, z:60にします。
CubeのLocation
SphereのLocation
この状態から、SphereをCubeの子にします。
子になったShpereのLocationを確認します。
子のSphereのLocation yの値が200になっていることがわかります。これは、親からみた相対的な位置(ローカル座標)になっていることがわかります。
🔗 参考リンク
ヒストリア
[UE4]トランスフォーム関係の注意