「正弦波」を Unity で作ってみよう
まずは、こんな感じの正弦波を作りましょう!
プロジェクトは [Github] note-nota/SineWave を参照して下さい。
基本方針
Shader で再現してみよう!
点群がウネウネ動いても良いけども、計算点の間を適度に繋げて表現しないと「波」と伝わらない気がするので、Shader で再現してみよう。その際、Unity の Primitive な Plane は一辺が11点のメッシュで作られているので、「波」を再現するには役不足。。。ってことで、計算点をぐっと増やした Plane を Blender で作って、それに合わせて Shader で波を表現したいと思います。
今回は Blender でモデルを作って Unity にインポートするまでになります。Shader 編は こちら へどうぞ。
Blender でハイポリメッシュを作る!
今回は、1x1[m] の Plane を作ります。(この方が後で Shader 周りで規格化され使いやすいので。)頑張って(Blender 初めて使うんで…)"x-90 度の平面" を作ります。Unity にもっていく関係で座標変換されるようで、とりあえず平面に前後左右が無いので、上下だけ合わせておきます。
平面が無事作成出来たら、頑張って(Blender 初めて使うんで…)"細分化" します。こんな感じで良いのではないでしょうか?細分化 9 を 3 セット行ったので、1000 x 1000 くらいでしょうか?右下のステータスで「頂点:1,002,001 (=1,001 x 1,001)」となっているので、1[m] の間を 1,000 辺に分割出来たと思います。
ググっと平面に寄ってみるとこんな感じです。今回は各面を三角面にしました。よ~く見ると、三角形になっていることが確認できます。
Blender で FBX にエクスポートしたら、Unity にインポートします。
次回は、この Plane に波の Shader を当てていきます。
Blender で詰まったところ
Blender 初めて使うんで詰まったところをいくつか
- Unity にインポートしたときに縦に立った平面になる!
- Blender でエクスポートするときに軸方向を選択できるようだけども、うまい設定を見つけられなかった
- Blender の Object に対して回転を設定できるようだけども、そちらを変更しても出力に影響が無かった
- 結局、"平面" を追加するときに初期値として "x:-90deg" を入力するとうまくいった
- Unity にインポートしたときにサイズが大きすぎる!
- Blender 上で 1.0x1.0[m] に設定し、エクスポートの際にも Scale Factor を 1 に設定しても大きくなる
- Unity 側で FBX の Import Settings で設定を行うことで意図した通りのモデルになったので参考程度に
- Scale Factor : 1
- Convert Units : False