【Unity】2020.3.31f1で読む「Unityゲームエフェクトマスターガイド」

はじめに

「Unityゲームエフェクトマスターガイド」をこの記事を投稿する2022年3月23日時点の最新の推奨リリースである、2020.3.31f1でやってみようという内容です。
これを書こうと思い立ったのが、実際に手を動かして実践していくChapter4以降なので、このnoteの内容はChapter 4以降限定です。
それより前の部分は、メモを取ってなかったので。
あと、同じ手順が出てきたときは書いてません。その手順が初めて出て来た時だけ書いてます。
でも書きながらぶっちゃけ、こんなことするくらいならこの本に書いてある2018.2のバージョンでやった方がスムーズやなぁ、と思ってしまいました。
とは言え、最新環境でツールを触るのも大事かなと思いますので、誰かの何かの参考になれば幸いです。
ちなみに、Houdiniについては、バージョン18に対応した内容が著者の方のホームページに書いてあります。

この内容を見つつ、Houdini18に対応したサンプルファイルを参照してみてください。

Chapter 4 (バフエフェクト)

P177 (Texture Sheet AnimationにFlip Vがない)

Texture Sheet AnimationのFlip Vの設定は、Rendererに移動しているっぽいです。
Rendereモジュール内に、Flip X,Y,Zとあるので、これのYを0.5にすると同じことができます。たぶん。
同じようにFlip Uを触りたい場合は、RendereのFlip Xを触れば大丈夫だと思われます。Zは謎。

Flip Uの設定はRendereモジュールのFlip Yを触る

Chapter 5 (バリアエフェクト)

P191 (Light Weight RPがない)

Light Weight RPは、Universal Render Pipelineへと変更されているようですので、Universal Render Pipelineを選択しておきましょう。
後述しますが、Post Processingのインストールはいらないみたいです。
Shader Graph はインストールされていたんですが、僕が他のプロジェクトで使ったことがあるからなのか、Universal Render Pipelineを選んだからインストールされていたのかは謎です。

P193~194 (ポストプロセスの設定)

Universal Render Piplineにおけるポストプロセスの設定は大きく違うようです。

こちらのページが参考になりました。
まずはMain CameraにUniversal Additional Camera Dataのスクリプトがくっついているかを確認してください。
たぶん最初からくっついていますが、なければAdd Componentから追加します。

Universal Additional Camera Dataのコンポーネントを追加する

次に、Cameraコンポーネント内のPost Processingにチェックを入れます。

CameraのPost Processingをオンにする

そして、Post Processing Volumeの設定時に、Post-process Volumeを追加するのではなく、「Volume」のスクリプト を追加します。

Volumeのスクリプトを追加する

Bloomの設定は本と同じで大丈夫です。
Color GradingのModeをACESに変えるのは、

こちらのページが参考になりました。
Tonemappingで同じ設定ができるようです。

TonemappingでACESを設定

P195 (Robot Kyleシェーダーの設定)

Light Weight RPで始めていないのでシェーダーの選択肢にLightWeightRenderPipelineがありません。
ここではUniversal Render PipelineのSimple Litを選択しましょう。
これでもRobot Kyleは真っ白なままだと思います。
ここで、インスペクターの右上の鍵のマークをクリックして、Robot_Colorのインスペクターを画面に固定します。

この鍵をロックすると他のオブジェクトやアセットを選択しても、
このインスペクターが表示されたままになる

この状態でRobot KyleのTextureフォルダに移動して、Robot_Colorのテクスチャを、Robot_ColorのマテリアルのSurface InputsのBase Mapと書いてある左の四角に、ドラッグ&ドロップします。

テクスチャをマテリアルに割り当てる

これで、Robot Kyleが正しく表示されるようになります。

P221 (シェーダーファイルの作成)

ここは、Unlit Graphを直接選べないので、Universal Render Pipelineの中にある、Unilit Shader Graphを選択します。

Universal Render Pipeliineの中にあるUnlit Shader Graphを選択する

P225 (マスターノードへの接続)

マスターノードは、マスタースタックという機能に置き換わっています。
Sample Texture 2DのRGBA(4)から、マスタースタックのFragmentのBase Color(3)に繋げます。

マスタースタックに接続する

これは、マスターノードはただパラメータを入力するだけだったみたいですが、マスタースタックは本来のシェーダーの処理の流れの通りに、上からパラメータが書いてあるようです。

P227 (Shader Graphで作ったシェーダーを割り当てる)

割り当てるシェーダーが本では一覧として表示されていますが、今の環境だとどうやら「Shader Graphs」の中にいるようです。
「Shader Graphs」を選択してから「SH_lesson05_UVscroll」のシェーダーを選択します。

Shader Graphsから選択する

P231 (Vector1ノードはFloatで)

Vector1ノードはFloatというノードに置き換わっています。
ノード名の検索で「Vector」と入力しても親切にFloatを表示してくれます。と言うかこれで気付いた。

Floatを選ぶ

Floatって何?となっている人がもしいたら、今は"小数点のある数値"を出力することができる、ぐらいに思っていたらいいのかなと思います。
僕もバリバリのエンジニアというわけではないですが、エフェクト作りはエンジニアの領域にも片足を突っ込んでいるんだな、と最近思います。
ある程度プログラミングの知識もあるとこの辺りの理解がスムーズになります。

P232~P233 (Masterノードの設定)

Unlit Masterノードの設定は、Shader Graph画面内右上の、Graph Inspectorに移動しているようです。
Graph InspectorのタブをGraph Settingに切り替えて、SurfaceをTransparentに設定するとBlendの設定が現れます。
BlendをAdditiveにして、Two Sidedの設定もします。

Graph Inspectorから設定する

P233~P234 (パラメータをプロパティとして登録)

現在の環境ではConvert To Propeertyは直接選ぶのではなく、Convert Toの中にあるPropertyを選ぶことになっているようです。

Convert Toから選ぶ

P234~P235 (マテリアルの表示を更新)

登録したパラメータの名前とスライダー表示への変更は、変更したいパラメータを選んだ状態で、先ほどのGraph InspectorのタブをNode Settingに切り替えて行います。

ModeをSliderに変更すると、MinとMaxも表示されます。

P240 (Alphaに繋げる)

VertecColorから取り出したAlphaは、先ほどのBase Colorと同じように、マスタースタックのFragmentのAlphaに接続します。

FragmentのAlphaに繋げる

Chapter 7 (ビームエフェクト)

P404 (CollisionのTypeをWorldにする)

dust02にCollisionを設定する際に、Typeのデフォルトが(僕の環境では)Planeになっているので、Worldに設定しておきます。

CollisionのTypeをWorldにする。

おしまい

ここまで来たら、あとはこれまでと同じ手順で対応できるはずです。
お疲れさまでした!

この記事が気に入ったらサポートをしてみませんか?