ツクロウヤ

Unityによるゲーム開発記やUnity,3dsMaxのTipsなどを記載していきます。

【Unity】マップなどの配置ツール

最近、仕事や個人開発で背景を作る機会が増えてきましたので、その辺で作ったツールのご紹介。

背景を作成する際は柱や地面のタイルなどパーツ毎にアセットを作成し、Unity上もしくは3Dツール上でそのアセットを配置して背景を作成しています。

スナップ機能などがあるとはいえ、Unity上でちまちま並べるのは結構面倒だなということで、配置を補助するツールを作ってみました。

f:id:ArtAwA:20170228224546j:plain

■機能概要

主な機能は以下のようなものがあります。

・「原点」:原点に移動

・「近似値」:選択オブジェクトのサイズに合わせて整列

 例:10*5のサイズのオブジェクトがx:9, y:5.5にいるとx:10, y:5に移動する

・「移動 - 相対」:数値の値だけ相対的に移動

・「移動 - パーツ幅」:選択オブジェクトのサイズ幅で移動

・「回転 - 相対」:数値の値だけ相対的に回転

・「スケール」:スケールを数値に合わせて設定

・「反転」:その軸に対して逆スケールを掛けて反転

・「SizeCheck」:選択オブジェクトのサイズをConsoleに表示

※近似値や移動-パーツ幅などは仕様上、複数オブジェクトに対応していませんので、複数選択時はボタンが押せないようになっています。

(選択したオブジェクトの配下にあるメッシュオブジェクトを全て取得してサイズを計算しているため)

■使い方 

スクリプトの準備】

先にこちらのスクリプトを入れてください。(2017/2/28更新)

artawa.hatenablog.com

今回のスクリプトも同様に保存して入れてください。

スクリプトの実行】

上部のタブの「Custom」→「Prefabs」→「MapTools」を選択すると配置ツールが起動します。
実際のツールの使い方はウィンドウを見ればわかると思うので割愛。

スクリプト

 【Unity】マップなどの配置ツール

ちなみに実際の作業時はこれで配置してものをMeshBakerなどでマージしてDrawCallを「1」に抑えるといったことをやっています。

が、マージする際に重なった頂点を合成してくれたりはしないので、無駄な頂点が多かったり、ライトをベイクした時に切れ目がおかしかったりということがあります。

なので、場合によっては3Dツール上で配置して、モデルだけはマージさせて、マテリアルなどはUnity上でMeshBakerなどでマージするといったこともやる場合があります。

それでは今回はこの辺で
(´・ω・`*)ノシ