コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】「Shader Weaver」チュートリアル11 - 水面に反射する風景を作る

はじめに

この記事では、「Shader Weaver」で水面に反射する風景の作り方を紹介していきます

チュートリアルのまとめはこちら

前回のチュートリアル

このチュートリアルで作るモノ

f:id:baba_s:20170929154231g:plain

動画

この記事は上記の動画の一部翻訳となります

ノードの準備

f:id:baba_s:20170929151357p:plain

「+」ボタンを押します

f:id:baba_s:20170929151410p:plain

「Exclude Root:」をチェックします

f:id:baba_s:20170929151426p:plain

Reflect ノードと UV ノードを追加します

f:id:baba_s:20170929151447p:plain

それぞれのノードを連結します

f:id:baba_s:20170929151503p:plain

Project ビューで「ShaderWeaver/Textures」フォルダを開いて
「water」テクスチャを uv2 ノードに設定します

f:id:baba_s:20170929151533p:plain

以上でノードの準備が完了です

水面の動きを作る

f:id:baba_s:20170929151743p:plain

uv2 ノードの「Edit」ボタンを押します

f:id:baba_s:20170929151758p:plain

「Move」を選択して「X」の入力欄に「0.1」を入力します

f:id:baba_s:20170929151823p:plain

「UV」を選択して「G:」の「X」の入力欄に「0.05」を入力します

以上で水面の動きの作成が完了です

シェーダの保存

f:id:baba_s:20170929152021p:plain

「ShaderWeaver」ウィンドウの「Save」を選択してシェーダを保存します
ファイル名は「tutorial11.shader」にします

f:id:baba_s:20170929152032p:plain

Project ビューにこれらのファイルが追加されていればシェーダの作成が完了です

作成したシェーダの使用

f:id:baba_s:20170929152623p:plain

Project ビューの「ShaderWeaver/Tutorials/Tutorial15 - Reflect Node」フォルダ内の
「reflect」シーンを開いて、「scene」オブジェクトをコピーします

f:id:baba_s:20170929152706p:plain

新規シーンに「scene」オブジェクトを貼り付けます

f:id:baba_s:20170929153129p:plain

Unity メニューの「GameObject>2D Object>Sprite」を選択します

f:id:baba_s:20170929153409p:plain

Hierarchy で「New Sprite」オブジェクトを選択してから
Project ビューの「ShaderWeaver/Sprites/Forest」フォルダ内の「bg」テクスチャを
Inspector の「Sprite」の項目に設定します

f:id:baba_s:20170929153519p:plain

「Add Component」から「Sprite Reflection」を選択します

f:id:baba_s:20170929153626p:plain

Position の「Y」を「-6.35」、
Scaleの「X」を「50」、「Y」を「5」で設定します

f:id:baba_s:20170929154426p:plain

Project ビューの「tutorial11」マテリアルを
Inspector の「Material」の項目に設定します

f:id:baba_s:20170929153956p:plain

「Height」を「0.5」に設定します

f:id:baba_s:20170929154231g:plain

Unity を実行すると、作成したシェーダが正常に動作することが確認できます

以上が水面に反射する風景のシェーダの作成方法になります

次のチュートリアル