
【Unity】シェーダー学習ログ #8
前回はこちら。
海を動かす
こないだ平面にシェーダー貼り付けて、カートゥーン風の海を作った。しかし実際のところ、この海ってどれぐらいの大きさにしとけば良いんだろうか?一画面でおさまる規模感ならまだしも、箱庭系ゲームだと切実な問題だ。
Here's a little trick I've been using to render the ocean in A Short Hike! The water is just a plane that follows the player around. The texture and vertex animations are all done in world space! #madewithunity #gamedev pic.twitter.com/mnxMnKgBYM
— adamgryu (@adamgryu) April 1, 2019
A Short Hikeの製作者によると、プレイヤーを中心に平面の海を動かしてるらしい。やはり天才か・・・
どうやら、ワールド座標ベースでUVを動かすのが良いらしい。よし、パクろう。
愚直にワールド座標のXとZを波作るときのボロノイに突っ込んでやれば良いのだけど、UnityとBlenderで座標系が違うからちょいちょい混乱するわよ。 pic.twitter.com/enQ2yNoWMN
— よすお/かびねこ@ばついちこもち (@psu_yoshio) October 23, 2021
なので、先日作った海シェーダーの水面UVにワールド座標をそのままぶちこんでみる。
こないだ作った海シェーダーのUVをワールド座標基準で動かすやつ。プレイヤーの近辺(カメラに写ってる範囲)だけ海を描画したらいい感じになるっぽい。 pic.twitter.com/QqC0akbo4U
— よすお/かびねこ@ばついちこもち (@psu_yoshio) October 23, 2021
先日作った、雑なTerrainに海をぶつけてみたところ。
水面の模様がワールド座標に追従している様子が分かる。
海ついてくるやつー pic.twitter.com/LFdXYCMYEH
— よすお/かびねこ@ばついちこもち (@psu_yoshio) October 24, 2021
こっちはCinemachineでカメラをキャラクター(に見立てたカプセル)を追従させて、そのキャラクターにあわせて海を動かしてみたところ。これも特に問題なさそう。
Boltマクロはこんな感じ。海のY座標だけは後々調整すると思うので、もともとのオブジェクトの座標を入れてる。
今回はこんだけだ!以上解散!