背景アーティストのぶろぐ背景アーティストのぶろぐUE4とかを触ったことを書くぶろぐ。実は背景あんまり関係ない。PositionObjectPositionとActorPositionの違いについて調べました。似たような機能になるのですが、異なるのは取得する座標位置が異なります。アセットのバウンティングボックスの中心の座標位置を取得。アセットの基点の座標位置を取得。マテリアルを使って違いを確認してみましょう。以下のようにActorPositionにDebugFloat3Valuesを繋いでEmissiveに入力したマテリアルを用意しします。ObjectPositionを確認するときはActorPositionの位置に差し替えます。アセットは基点の位置がボトムにある100×100×500サイズのボックスを用意します。シーンの原点(0,0,0)に配置して、先ほど作成したマテリアルをセットします。デバッグで表示される座標がどこを指しているのかで違いがわかると思います。ActorPositionの方は原点の値を取得しているのに対して、ObjectPositionはZに250の値が入っています。(青字が見づらくてすみません...)このボックスのサイズは100✕100✕500なので、ObjectPositonはオブジェクトの中心の座標を取得している事がわかると思います。カメラから遠ざかると消える処理ObjectPosition、ActorPositionのノードを使ってできる処理は様々なものがありますが、ここで一つ紹介します。遠ざかるほどの処理を無くしたい場合に距離に対応したマスクを作成することができます。ノードは以下のように組みます。これはカメラに近づくほど白くなり、遠くなるほど黒くなります。LerpのAlphaにつなぐとAとBの処理を距離で切り替える事ができます。Lerpにつないだ例は一番最後に記述してあります。各処理毎にノードの組み方について解説します。DistanceノードはAからBの距離を計測するノードです。ActorPositionからCameraPositonの距離を計測しています。Actorがカメラに近づけば近づくほど0(黒)になるわけです。.ActorPositionはWorldPositionなどと同じように取得する値が非常に大きい数値になります。そのため、Divideで扱い易い数字にする必要があります。白と黒の切り替える距離をDivideで調整することができます。FadeDistanceを変更すると以下のようになります。奥が白くなるほど値が大きく、近いほど値が小さい状態です。.Powerノードは白と黒のグラデーションの幅をコントロールします。数値が大きいほどグラデーションの幅は狭くなり、小さいほど幅は広くなります。逆の処理になってしまうので、ワンマイナスを追加して反転させます。余談ですが、1の箇所でSubtractでも同じ結果になるのでは?と思ったので試してみました。Distanceノードは距離なので出力される値はScalarの値です。Subtractで引き算をするとRGBの3floatの値が返ってきます。表示するとRGBのカラーで表示されてしまうので、Desaturationを繋いで彩度を下げてあげることでRGBを同じ値にすることができます。これで同じような結果を作ることができます。結果は似たような処理になりますが、FadeDistanceで設定する切り替わりの距離の位置が少しずれます。LerpのAlphaに使ってみるDetailNormalを距離で非表示にしたい場合はこのように組むとよいでしょう。処理が軽くなるわけではありません。使い勝手のパターンがわかればいろいろ活用できるノードだと思います。経歴ゲーム背景アーティスト。下請けの制作会社からゲーム開発会社を2社経てフリーランスに転身。UnrealEngineを使った開発に従事しておりました。背景、モデル製作等お仕事のご依頼などはこちらからお願いします。PremiumBloggerTemplates.com。