これまで、
Introduction to UE4 Level Creationシリーズ
Introduction to Blueprintsシリーズ
とチュートリアルビデオを進めた後、次に挑んだのはBlueprint Essentialsシリーズです。
Blueprint Essentials - 6 - Variable Get vs Setの中で、プレイヤーキャラクターの体の色を動的に変更する演習があるのですが、そこでDynamic Material Instanceというものに出くわし、マテリアルの使い方を理解するのに30分ほど悩みました。
そもそもUE4のマテリアルに関してまだ何も学んでなかったので、Blueprint Essentialsを終わらせたら、次はマテリアルのチュートリアルをやろうと肝に銘じました。
Dynamic Material Instanceは、動的にアクターのマテリアルを変更したい時に、元のマテリアルを複製したものです。
複製したマテリアルの方を変更することで、同じマテリアルを使用した他のアクターとは関係なく、個別にマテリアルを変更できるということになります。
僕が悩んだのは、Create Dynamic Material InstanceノードのReturn Valueを「変数に昇格」する演習を見て、それは作られたマテリアルの複製を変数にコピーしたと思ってしまったところでした。
イベントグラフの中で、その変数に入れられたマテリアルを変更すると、動的にアクターのマテリアルが変わるので、「なんでだー?」となってしまったわけです。
Dynamic Material Instanceを「変数に昇格」するとは、インスタンスのコピーを変数に入れるのではなく、インスタンスを参照する変数(C言語風に言うと参照ポインタ)を作るという意味だったのですね。
分かってしまえばすっきりする話しですが、新しいフレームワークをいじり始めた時は、物事の整理がつかないうちに新しく知識を入れていくと、ごちゃっとしてしまうことはよくあるものです。(言い分け)
0 件のコメント:
コメントを投稿