Blender からオブジェクトをインポート
立体視を行う方法

SketchUp からのオブジェクトのインポート

概要

SketchUp は、建築のモデリングで一般的に使われているソフトウェアです。以前は、SketchUp のモデルを Unity で表示するために、ユーザーは Unity がサポートし、変換用の形式として使っている中間の形式に、変換する必要がありました。

この問題を解決し、現在、 Unity は SketchUp のファイルを変換することなく、直接インポートすることができるようになりました。また、以前は不可能でしたが、SketchUp ファイルの一部プロパティーに Unity からアクセスすることが可能になりました。

用語解説

用語 Definition(定義)
Node node は SketchUp の エンティティ、グループ、コンポーネントインスタンスの総称
Geo Coordinate 地理システム上で位置を特定する座標系

SketchUp モデルのインポート

SketchUp のファイルを Unity にインポートするのは、 Unity がサポートしている 3D モデル(FBX形式など)をインポートするのとほぼ一緒です。インポート方法は 3 通りあります

  1. メニューバーで Assets -> Import New Asset.. の順にクリックします SketchUp モデルをインポートするエディターメニュー

  2. Project ウィンドウにファイルをドラッグ&ドロップします

  3. Project ウィンドウのコンテキストメニューで「Import New Asset…」を選択します

モデルをインポートしたら、そのモデルをシーンに配置して使う事ができます。 SketchUp ファイルの階層は、 Unity のゲームオブジェクトの階層によって維持されています。

マテリアルとテクスチャ

モデルをインポートすると、そのモデルのマテリアルとテクスチャは、インポートした場所にある、別々のフォルダー 2 つに分かれてインポートされます。マテリアルは「Material」、テクスチャは「Texture」という名前のフォルダーです。

SketchUp の Materials と Textures フォルダー
SketchUp の Materials と Textures フォルダー

SketchUp ファイルからインポートされたテクスチャは、 Unity にインポートされた時点での、元のファイル名を維持しています。

SketchUp ファイルからインポートされたマテリアルは、 SketchUp のファイル名がマテリアル名のプレフィックスになります。

非表示ジオメトリ

Unity は SketchUp ファイルにあるノードのビジビリティ設定を見て、そのノードをインポートするかどうかを決めます。

SketchUp ファイルを最後に保存したときに、ノードがハイドに設定されていた場合、 Unity はそのノードをインポートしません。

選択的ノードインポート

仮に、複数の椅子をライブラリ化した SketchUp のファイルがあるとします。その中からいくつかの椅子だけをシーンに読み込みたい場合は、 SketchUp ファイルから必要なオブジェクトだけをインポートすることが可能です。これを実行するには、 SketchUp ファイルをインポートするときに、 Mac では ‘option’ キー、 Windows では ‘alt’ キーを押し続けます。

すると、何をインポートするか選択するダイアログが現れます。

インポートダイアログ
インポートダイアログ

このダイアログには、ファイル内にあるコンポーネントのインスタンスと、グループが表示されています。これによって Unity3D にどのコンポーネントのインスタンスや、グループをインポートするかを選択することもできます。

選択が終わったら、OK ボタンをクリックすると選択したノードだけがインポートされます。

表と裏面

デフォルトでは、 Unity はポリゴン数を削減するために表ポリゴンしかインポートしません。 例外は、 SketchUp 上で裏面ポリゴンにマテリアルが設定されていた場合です。

裏面ポリゴンを生成したいのであれば、 SketchUp Model インスペクターで設定することができます。

スケール変換

Unity は、デフォルトではモデルのスケール 1m(0.0254 インチ) を Unity の 1 単位として SketchUp ファイルをインポートします。

SketchUp Model インスペクターでインポート時のスケールを変更することができます。

高さ 1m に設定された立方体の SketchUp ファイル
高さ 1m に設定された立方体の SketchUp ファイル
変換単位の設定によって、インポートしたファイルのスケールが変わります。参考として置かれている緑の正方形は 1x1 単位長さです。
変換単位の設定によって、インポートしたファイルのスケールが変わります。参考として置かれている緑の正方形は 1x1 単位長さです。

SketchUp Component Definition、Instance、Group

SketchUp の Component Definition、Component Instance、Group を生成するとき、Unity は同じ概念を使用します。

Component Definition と Group はメッシュ内に生成されます。 そして、メッシュは、GameObject としてインスタンス化され、シーン内に置かれます。

SketchUp リファレンス

SketchUp Model Inspector

インポートした SketchUp モデルのインスペクターに、いくつかのオプションがあります。 インスペクターで加えた変更を有効にするには、「Apply」ボタンをクリックする必要があります。

SketchUp シーンのカメラ

Unity はファイルの各シーンごとに SketchUp ファイルのカメラデータを抽出し保管します。そのため、それを後で使用することができます。データの検索に関しては、API に関するページを参照してください。

座標

Unity は SketchUp ファイルの座標 (存在する場合) を抽出し保管します。この値は SketchUp モデルインスペクターを通して見ることができます。または、データを取り出す方法についてAPI リファレンスを参照してください。

デモパッケージ

デモパッケージは、Unity にインポートされた SketchUp のシーンのカメラと座標がどのように抽出されるかを説明します。

デモパッケージには以下が含まれます。

  • サンプル SketchUp ファイル
    • SketchUp ファイルからインポートしたテクスチャとマテリアル
  • SketchUpFileProperties.cs
    • SketchUp ファイルデータを保管するランタイムコンポーネント
  • SketchUpFilePropertiesInspector.cs
    • SketchUpFileProperties のインスペクター
    • データを SketchUpImporter から抽出し、SketchUpFileProperties に保管

制約

  • GIF テクスチャには対応していません
  • Line はインポートされません
  • 2D コンポーネント (テキスト、dimension) には対応していません
  • 動的コンポーネントには対応していません
  • 属性は Unity にインポートされません
  • SketchUp レイヤー はインポートされません
  • SketchUp 設定はインポートされません
  • SketchUp Drawing Styles はインポートされません
  • SketchUp Section Planes はインポートされません
  • SketchUp ア二メーション 設定はインポートされません
  • インポートされる SketchUp シーンデータは限られています
Blender からオブジェクトをインポート
立体視を行う方法