【It's My House】部屋の上からのぞいてレイアウトしよう!2Dレイアウトモードを実装してみた!

 どうも!新入社員のタケです!


もうしばらくはIt's My Houseの室内バージョンを進めていくことになりました!

まだまだUnityと格闘してプログラミングとデザインをしていくと思います。

今回は部屋を真上から見ながらレイアウトすることができる、2Dレイアウトモードを実装していきます。


2Dレイアウトモードは今までのカメラとは違い、視点を回転することができないのでカメラ操作が変わります。

ホイールスクロールでズーム/ズームアウト、右クリックでカメラの位置を移動します。


これは以前作ったカメラアングルチェンジの延長線上にあるような機能です。

いままで5つのカメラアングルがありましたが、6つ目になる感じですね。

もちろん、この状態からそれぞれのカメラへ移動することも可能です。


この状態のイイところは上から見てレイアウトができるので、3Dではわかりづらい壁までの距離などが正確に理解できることです。

ということは正確に2Dの地図と合致しないといけないということですね。


仕組みとしてはこんな感じになっています。

カメラの設定を変更して平行投影にし、上から覗くようなアングルにします。


そしてこのモードの時だけ表示される床のテクスチャを床に合わせて配置して、部屋の間取りを描いています。

この地面だけはキューブマップでは表現できないからですね。


このモードを実装するときに一番大変だったのはズームと移動ですね。

ズームは通常のカメラとは違い、画角ではなくサイズという項目をいじってズームしているように見せます。

始めて使うパラメータだったのでちょっと戸惑いました。


そしてズームできたのは良かったのですが…

ズームしたときになぜかカメラの移動速度がめちゃくちゃ早くなっていました。


実はカメラの移動している距離は変わらないけれど画面を映す範囲が狭くなるので移動が速いように見えているのです。

これを直すにはズームした値に応じて移動倍率をどんどん下げていくことで対応しました。


moveSpeed -= moveSpeed * delta * wheelSpeed;

の一行ですね。

deltaという値がホイールのスクロール量でどんどん変わっていくので、その値を利用して移動速度と連携させるとこのようなことができます。



ついでに+と-ボタンでもズームしたりできます。

その時も速度を忘れずに下げないとおかしなことになってしまいますので、ご注意を!


--------------------------------------------------------------------------------

シェルパでは、3DCGや建築パースはもちろん
VRやARアプリの開発も行っています!
新しいことに興味のある方はきっと楽しめると思います!
新人研修も充実していて初心者でも3DCG経験者でも安心!

株式会社シェルパ
【福岡本社】
〒810-0042 福岡県福岡市中央区赤坂1丁目13-10赤坂有楽ビル7F 
【東京オフィス】
 〒101-0041 東京都千代田区神田須田町2丁目13-1YKS黒田ビル5F
TEL 092-717-6800 / FAX 092-717-6801

--------------------------------------------------------------------------------

コメント