おもちゃラボ

Unityで遊びを作ってます

【Unity】水面の表現を無料で簡単に作る

池や海などの水面を作ろうとすると、シェーダを書いたり波動方程式を計算したり大変だ・・・!というイメージがありますが、Unityを使えば超簡単に無料で水面を作ることができます

f:id:nn_hokuson:20170802201618j:plain

地形を作る

まずは雰囲気を出すため(笑)地形を作っていきます。今回はAsset Storeで配布されている「Stones and buried treasure」というローポリのアセットを使わさせていただきました。

f:id:nn_hokuson:20170802181702j:plain:w400

いい感じに岩や木、石を組み合わせて池を作ります。箱庭みたいで楽しい・・・

f:id:nn_hokuson:20170802200138j:plain

このままでは、まだまだ池の雰囲気のかけらもありませんね。いま作った池に水を張っていきましょう〜。

水面のアセットをインポートする

池ができたところで水面のアセットをインポートします。水面のアセットはStandard AssetのEnvironmentに含まれています。

ツールバーからAsset→Import Package→Environmentを選択し、その中から、Waterに関するものだけをインポートしましょう。WaterとWater(Basic)を選択してください。

f:id:nn_hokuson:20170802200204p:plain:w350

インポートできたら、「Standard Assets/Environment/Water/Water/Prefabs/」の中にある「WaterProDaytime」をシーンビューにドラッグ&ドロップしてください。円形の水面が表示されます。これを池にフィットするように配置してください。

f:id:nn_hokuson:20170802175933j:plain

配置できたら、カメラの位置を調節して実行してみてください。水面に波紋のアニメーションが表示されましたね!

f:id:nn_hokuson:20170802201223g:plain

しかも、水面が揺れるだけではなく、周囲の岩が反射していたり、水中にある岩が揺らめいていたりと、なんともリアルです。

f:id:nn_hokuson:20170802201004j:plain

デフォルトでは水面の形状は円形ですが、インスペクタの「Water Plane Mesh」に任意の形状のメッシュを指定することで、好きな形の水面を作ることができます。ミッキーとかの形にもできますよ(笑)

f:id:nn_hokuson:20170802201509p:plain:w250

また、波のスケールや反射・透過光の屈折などもインスペクタから調節できるようになっています。至れり尽くせりですねー。

まとめ

今回は簡単にUnityで水面&波の表現を作る方法を説明しました。水面の表現は作ってみるととても簡単で、見た目の効果は大きいので何かと重宝します^^