ブループリント クイックショット⑩ 3D ウィジェットの追加

ビデオの内容紹介 
スタティックメッシュをレベルに配置して、3D ウィジェットを使ってそのスケールを変更するブループリントを作成します。

原題 Unreal Engine 4 Blueprint QuickShot – 10 – Adding 3D Widgets

完成図
1000

実行結果
完成したブループリントをレベル内に配置して、TopPoint の Z軸をつかんで上方に引っ張るとスタティックメッシュのスケールが変化して、大きくなります。
1001
1002

準備
①コンテンツ ブラウザで New をクリック → Blueprint をクリック → Actor をクリック → フォルダの名前を Sizer (サイズ変更するもの) にする → Sizer をダブルクリック → ブループリントエディタが開く (Components モードで) → Add Components (コンポーネントの追加) をクリック → Scene を選択
1003
→ Dummy と名付ける → さらに Add Components をクリック → Static Mesh を選択 (これによって Details パネルに Static Mesh セクションができる)
1004
→ Box と名付ける → Details パネルの Static Mesh セクションのドロップダウンリストから Shape_Cube を選択 → (Shape_Cube が追加される) → 右上で Graph モードに切り替えてブループリントを組む

ブループリントを組む上での注意点
① TopPoint (てっぺん) という変数は、My Blueprint パネルで目のマークをクリックして、目を開くようにします。これによって、レベルエディタにも表示されるようになります。

② 変数 TopPoint が My Blueprint パネルで選択されている状態で、Details パネルで Show 3D Widget (3D ウィジェットを表示する) にチェックを入れます。

③ ブループリントを組むのは、Graph モードにしてから Construction Script タブで。

④ Break Vector の右でつながっている関数は、float÷float です。入力欄には 100 とタイプします。

⑤ Box は、My Blueprint パネルからドラッグアンドドロップしています。

⑥ Set Relative Scale 3D と Set Actor Relative Scale 3D を間違えないでください。前者が右クリックで表示されない場合は、右クリックメニューの右上にある Context Sensitive (コンテキストに依存) のチェックを外してみてください。

⑦ TopPoint をつかみづらい場合は、Details の Default で X などの値を変更して位置を変えるとつかみやすくなります。

ブループリントの意味
準備段階で Scene を選んで Dummy としたのは、次の理由によります。

Components モードで一番始めに配置されたものが Root となります。Root は、Set Relative Scale 3D がうまく機能しません。なぜなら、Set Relative Scale 3D は、ツールチップを読むと、Non-uniform of this component relative to its parent. と書いてあります。これはおそらく、Non-uniform scaling of this component relative to its parent. の誤りでしょうから、この関数の機能は、「親を基準として、このコンポーネントの不均一なスケーリング」ということになります。

ここで「このコンポーネント」がもし親自身であれば (= Scene を配置せずにスタティックメッシュなどを最初に配置すれば)、自己言及的な堂々めぐりが生じるのでしょうか、次のような実験をしてみるとうまく働きません。

実験
1007
ブループリントの内容は、まったく同じです。

1006
Components モードには、Scene を追加せずに、いきなりスタティックメッシュ (コーン型) を配置しています。(平面になっているのは、Z がまだ 0 であるため)

1005
Z 方向にドラッグしても、何か痙攣するような感じになりうまく動作しません。

そのようなわけで、Scene (実体は点) をダミーの Root として使用しています。

ブループリントのグラフの意味は次のとおりです。

Construction Script は、ブループリント (のアクタ) がレベルに配置されたり、変更されたりすると発動します。

Construction Script が発動すると、Set Relative Scale 3D (3D の相対的スケールをセットする) が発動します。これは、先に触れたように Root を基準にして (Root に対して何らかの値をかけて)、自身の (この場合は Box の) 倍率 (スケール) を変更するものです。

この Set Relative Scale 3D には、Make Vector 以下がつながっています。その先端から見ていくと、TopPoint という変数があります。これは、ベクター型で初期値は (0, 0, 0) になっています。

これをビューポート内で Z 方向 (上方向) にドラッグすると、Z の値が変わります。大きくなります。Break Vector (ベクターを分解する) を使うと、X、Y、Z をバラで扱えるようになるので、この Z の値だけを取り出して 100 で割っています。これは、位置の大きさをそのまま倍率にすると大きすぎるために調整しているだけです。

最後に Make Vector (ベクターを作る) で、X と Y を 1.0 に固定して、Z だけを先に計算したものを入れるようにして、New Scale 3D (新たな 3D スケール) にしています。たとえば、Z が 2.0 であれば、(1.0, 1.0, 2.0) が新たな倍率になり、背が高くなります。

今回はこれでお終いです。お疲れさまでした。



シェアする

  • このエントリーをはてなブックマークに追加

フォローする