妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

マテリアル用デバッグ命令

f:id:una_unagi:20170330001236p:plain

f:id:una_unagi:20170330001245p:plain

「マテリアルを編集してると、この計算合ってるのかな? と不安になることがあるんだけど、そういう時に便利なのがDebugなんとかという命令。例えばDebugFloat2Valueノードと使うと、Vector2の数字が画面に表示できる。ウィンドウが小さいと上手く表示されないことがあるから、新しいウィンドウを開いてテストプレイするといい」

妹「いつものPrintStringじゃ駄目なの?」

「それもマテリアルには対応してないし、してたとしてもログが凄いことになると思うんだよ。どんなマテリアルにしても、毎秒何万回って呼び出されるから、その都度PrintStringしちゃうと」

妹「それはたしかに」

「ただ、Debug系ノードを使ったデバッグでも同じような問題はあって、ピクセルごとに数字が変わるデータをデバッグしようとするとこうなる」

f:id:una_unagi:20170330002722p:plain

妹「数字が……ぼやけるの?」

デバッグも結局マテリアルを使ってるから、マテリアルの原理になる。数字を表示するという命令はない。今表示中のピクセルが、数字の部分なら色を塗るし、余白なら黒を塗る、というのを全ピクセルでやる。だからピクセルごとに表示したい数字が違うと、連携が崩れてぐちゃぐちゃになる」

妹「たまたま同じ数字だった場合とかは」

「そういうこともある。0.01~0.09の範囲のバラツキだったら、最初の.0のところは普通に見える。デバッグする時は数字を固定しないといけない。ある点を表示した場合の計算なら、その点の座標をScreenPositionとかでなく仮の数値パラメータで設定したりすればいい」