HDRenderPipelineを使わずにVisualEffectGraphをインストールする
本記事の内容
VisualEffectGraphがPreviewに入ったみたいですね。 これをプロジェクトに使いたいなーと思っていたのですが、デフォルトだとHDRenderPipelineを入れないと動かないです。 ただHDRenderPipelineを入れちゃうと、それに対応しているシェーダーしか使えなくなります。 流石にそれは嫌だ!ということで、HDRenderPipelineを設定せずにVisualEffectGraphの機能を使う方法を見つけたので、それについて書きたいと思います。
また、VisualEffectGraphはPreviewなので、本記事に書かれている内容は情報が古い可能性がありますので注意してください。
あと普通に動かすだけなら、のたぐす氏が丁寧なインストール方法を解説されているので、そっち見たほうがいいかも。
環境
* Unity 2018.3.0b7 * ScriptableRenderPipeline - [release/2018.3](fde2b7099496fd5ad4467c3e12fbcd95c3505469)
前準備
- Githubから必要なパッケージを取得しておきます
git clone https://github.com/Unity-Technologies/ScriptableRenderPipeline.git --branch release/2018.3
- プロジェクトを新規作成、または既存のものをUnity 2018.3で開けるようにしておきます
インストール
Packageをインストールする
CloneしたScriptableRenderPipelineから、プロジェクトのPackagesへ以下の項目をコピペします
* com.unity.render-pipelines.core * com.unity.render-pipelines.high-definition * com.unity.shadergraph * com.unity.visualeffectgraph
HDRenderPipeline思い切り入れとるやん…って感じなんですが、 VisualEffectGraph側からHDRenderPipelineヘ依存してしまってるようなので、基本機能は使いませんが、入れます。 開発が進んだら、依存外れてくれるって信じてます(大声)
Unity側の設定
ProjectSettings/VFXを開きます。
Packages/com.unity.visualeffectgraph/Shaders/RenderPipeline/HDRP
のHDRP
をLegacy
に書き換えます。
書き換えたら保存してプロジェクトを開き直します。
シェーダーの修正
Packages\com.unity.visualeffectgraph\Shaders\RenderPipeline\Legacy\VFXCommon.cginc
がバグってるので、以下のように修正します
float VFXSampleDepth(float4 posSS) { //return _CameraDepthTexture.Load(int3(posSS.xd, 0)).r; return SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, int4(posSS.xy, 0,0)).r; }
多分これであってるとおもうけど、違ったら教えてください。
修正したら、プロジェクトを開き直します。
Visual Effectsの作成
Create/Visual Effects/Visual Effect Graph
を作成して、動いたら成功です!