3Dマイホームデザイナーで作成した家をGoogleEarth上に建てる

概要

 3Dマイホームデザイナーは、メガソフト社が販売する、間取り&3D住宅デザインソフトです。
 GoogleEarthは、Googleが無料で提供している3次元オンライン地図ソフトです。 GoogleEarthには、3Dの建物モデルを表示する機能があり、実際に建築したイメージを確認したり、周辺の建物との関係をチェックすることができます。
 このページでは、3Dマイホームデザイナーで作成した家をGoogleEarth上に建てる方法についてまとめてあります。

3DマイホームデザイナーでGoogleEarth形式で保存

 3Dマイホームデザイナーで建物を立体化し、「ファイル」「エクスポート」「GoogleEarth形式で保存」すると、3Dマイホームデザイナーで作成した家をGoogleEarth上に建てることができます。
 ただ、下記の点が満足できないため、自分でkmlファイルを作成することにしました。

  1. 見たい角度から簡単に見れない
  2. 同じ視点からビューで何回も確認することが難しい
  3. 初期表示されるカメラの位置がいまいち
  4. 初期表示では、アイコンと名前が表示されてしまう
  5. 3Dマイホームデザイナーの一部のバージョンで北の方向がずれる
初期表示で建物が見えない
北の方向がずれ隣の建物に食い込む

 GoogleEarthでの表示は、GoogleEarthが3Dに対応している必要があります。3Dに対応していない場合、平べったい航空写真の上に建物が建ちます。 また、既存の建物がある場所の場合、既存の建物と重なって表示されることがあります。 このような場合には、地形のチェックボックスをオフにすることで、平面的な表示にすることができます。

自分でkmlファイルを作成してGoogleEarthで表示

 自分でkmlファイルを作成することで、複数の視点を登録可能にしました。 左側にあるサブウィンドウの「LookAt」フォルダで、真上や東西南北の各方向からのアングルで表示することができます。また、「Camera」フォルダで、人の目線の位置から見上げるようなアングルで表示することができます。
 私が作成したkmlファイルに置き換えたkmzファイルもアップしてあります。 kmzファイルを見るためには、GoogleEarthをインストールする必要があります。 興味がある方は、ダウンロードして、GoogleEarthで動かしてみてください。 GoogleEarthの左側のタブで視点切替をすることができますので、いろいろな方向から見ることができます。
 サンプルは、更地ではなく元駐車場だったため、駐車中の車が重なってしまっています。 あと、窓の色は合わせていませんので、バラバラですが、気にしないでください。

サブウィンドウで視点切替
GoogleEarthの初期表示(LookAt 南西側)
LookAt 真上
LookAt 南東側
LookAt 西側
Camera 道路右側地表ビュー
Camera 道路正面地表ビュー
Camera 道路左側地表ビュー

GoogleEarthで表示した成果

 GoogleEarthで表示して北側から見ると、2階の奥の部屋の北西側の窓からは、景色が全く見えないことが判りました。 確かに敷地の写真を見ると、北西側の家は1階にしか窓がないのですが、屋根は2階建と同じぐらい高いため、隣の家の壁しか見えないのです。
 そこで、設計会社と相談して、窓の位置を少しずらし高窓にする対策を行いました。 あと、北東側の窓も高窓にして、風と光が入りやすくしました。
 家を建ててから、窓から隣の家の壁しか見えないとショックだったと思います。 GoogleEarthの3次元データにどの程度の精度があるか判りませんが、事前に対策ができて良かったです。

敷地の写真

LookAt 北西側(対策前)
LookAt 北西側(対策後)
LookAt 北側(対策前)
LookAt 北側(対策後)
LookAt 東側(対策前)
LookAt 東側(対策後)

kmlファイルの作成方法

 自分でkmlファイルを作成してみたいという方のために、kmlファイルの作成方法を紹介します。
 kmlファイルを作成する場合、3Dマイホームデザイナーのマニュアルを読んでも書いてありません。詳しく知りたい方は、GoogleのKMLのドキュメントを参照してください。
 このページを見て、自分でkmlを作成することは自由です。 ただ、3Dマイホームデザイナー用のkmlファイルを考えたのは私ですので、Descriptionにある「Kml:<a href="http://joe.ash.jp/">Joe Masumura</a><br>」の著作権表示だけは残して欲しいと思っています。

kmlファイルの取得

 kmlファイルを取得するには、GoogleEarthの左側のナビゲーションウィンドウで、右クリックして「この場所の情報を保存する」でkmz形式で保存できます。
 他には、Windowsの「Program Files (x86)」の「3DMHPRO9/Google Earth」フォルダにある、「m3d2kml.exe」ファイルを実行して、kmzファイルを作成することもできるようです。
 kmz形式のファイルは、kmlファイルなどをzip形式で圧縮したファイルですので、zip形式の解凍ツールで解凍できます。
 m3d2kml.exeを使ってkmzファイルを作成すると、3Dマイホームデザイナーで建物を変更して再出力した場合に差し替え可能なので、便利です。 下記のkmlファイルは、m3d2kml.exeを使って取得したkmlファイル(doc.kml)と置き換えてカスタマイズ可能となっています。

kmlテンプレート doc_tmpl.kml
上記サンプルで紹介したkmlファイル doc_jonan.kml

kmlファイルの構成

 kmlファイルは、下記のような構成になっています。
 XMLヘッダーとKMLヘッダーは、修正の必要がない固定文字列です。 kmlの情報はフォルダを分けて設定しています。 このフォルダに、openタグに1を設定しておくと、視点変更が簡単にできます。

<?xml XMLヘッダー ?>
<kml KMLヘッダー >
  コンテンツヘッダー
  初期視点情報
  <Folder>
    LookAt視点情報(省略可能)
  </Folder>
  <Folder>
    Camera視点情報(省略可能)
  </Folder>
  モデル情報
</kml>

コンテンツヘッダーの設定

 コンテンツヘッダーは、名前や著作権表示などを設定します。
 このkmlファイルの利用は自由ですが、著作権表示は残しておいてください。

<name>建物の名称</name>
<description><![CDATA[
Kml:<a href="http://joe.ash.jp/">Joe Masumura</a><br>
Model:<a href="http://www.megasoft.co.jp/3dmh/">3Dマイホームデザイナー</a>
]]></description>

初期視点情報の設定

 初期視点情報は、最初のLookAtタグで設定します。
登録した始点の中で、最も良い視点を登録すれば良いと思います。

<LookAt>
  <longitude>建物中心の経度</longitude>
  <latitude>建物中心の緯度</latitude>
  <altitude>0</altitude>
  <tilt>65</tilt>
  <range>25</range>
  <heading>起動時に表示したい方向</heading>
</LookAt>

モデルの設定

 モデルとは、建物に関する情報のことで、kmlファイル内では、Modelタグに記述されています。3Dマイホームデザイナーで出力した建物情報は、Modelタグ内のhouse.daeに格納されているため、簡単にモデルとビューを分けることができます。
 基本的にモデルの変更は必要ありませんが、位置の微調整と、高度の微調整と、3Dマイホームデザイナーで北方向の位置が出力されない場合の修正を行っています。
 建物の位置は、ModelタグのLocationタグのlongitudeタグ(経度)とlatitudeタグ(緯度)に設定します。 設定する緯度経度は、3Dマイホームデザイナーの十字マークで表示されている基準点の緯度経度です。 0.00001度で約1mぐらいの感覚で調整します。 kmlファイルで調整すると便利な点は、数字入力で正確に変更できる点と、GoogleEarthですぐに確認できる点です。
 高度は、altitudeタグで、m単位で設定します。 GoogleEarthの高度設定とGLの高さが、少しずれている場合がありますので、敷地の見え方を参考に調整します。
 3Dマイホームデザイナーで北方向の位置が出力されない場合は、北方向の角度をheadingタグに度単位で設定します。

<Model>
  <altitudeMode>relativeToGround</altitudeMode>
  <Location>
    <longitude>建物の基準位置の経度</longitude>
    <latitude>建物の基準位置の緯度</latitude>
    <altitude>建物の基準位置の高さ</altitude>
  </Location>
  <Orientation>
    <heading>建物の北の方向</heading>
    <tilt>0</tilt>
    <roll>0</roll>
  </Orientation>
  <Scale>
    <x>1.0</x>
    <y>1.0</y>
    <z>1.0</z>
  </Scale>
  <Link>
    <href>models/house.dae</href>
  </Link>
</Model>

GoogleEarthの視点の指定方法

 GoogleEarthの視点の指定方法には、LookAtタグとCameraタグの2つの方法があります。 LookAtタグは対象物の位置を指定するのに対して、Cameraタグは視点の位置を指定します。 それぞれの指定方法には、メリットがありますので、両方の指定方法を使っています。

LookAtによる視点の設定

 LookAtタグは、建物の中心位置だけ指定すれば、固定の数値で真上や東西南北から見ることができるため、設定が非常に簡単です。
 latitudeタグとlongitudeタグには、建物の中心の緯度経度を指定するため、すべてのLookAtタグで共通の値を設定します。
 tiltタグは、見下ろす角度を0~90度の間で指定します。真上から見る場合は0度、地平線が見えるぐらいの角度から見る場合は60~70度を指定します。
 rangeタグは、視点までの距離をmで指定します。真上から見る場合は100m、地平線が見えるぐらいの角度から見る場合は25~30mを指定すると、それなりの表示になります。
 headingタグは、上方向が北の場合は0度で、0~360度の間で指定します。 ですから、南側から見る場合は0度、西側から見る場合は90度、北側から見る場合は180度、東側から見る場合は270度となります。
 LookAtによる視点情報は省略可能ですし複数指定も可能ですので、フォルダを分けて設定しています。 kmlでフォルダを作成する場合、openタグに1を設定しておくと、フォルダが開いた状態で起動されるため、視点変更が簡単にできます。

<Folder>
  <name>LookAt</name>
  <open>1</open>
  <Placemark>
    <name>真上</name>
    <LookAt>
      <longitude>建物中心の経度</longitude>
      <latitude>建物中心の緯度</latitude>
      <altitude>0</altitude>
      <tilt>0</tilt>
      <range>100</range>
      <heading>0</heading>
    </LookAt>
  </Placemark>
  <Placemark>
    <name>南側</name>
    <LookAt>
      <longitude>建物中心の経度</longitude>
      <latitude>建物中心の緯度</latitude>
      <altitude>0</altitude>
      <tilt>65</tilt>
      <range>25</range>
      <heading>0</heading>
    </LookAt>
  </Placemark>
  <Placemark>
    <name>西側</name>
    <LookAt>
      <longitude>建物中心の経度</longitude>
      <latitude>建物中心の緯度</latitude>
      <altitude>0</altitude>
      <tilt>65</tilt>
      <range>25</range>
      <heading>90</heading>
    </LookAt>
  </Placemark>
  <Placemark>
    <name>北側</name>
    <LookAt>
      <longitude>建物中心の経度</longitude>
      <latitude>建物中心の緯度</latitude>
      <altitude>0</altitude>
      <tilt>65</tilt>
      <range>25</range>
      <heading>180</heading>
    </LookAt>
  </Placemark>
  <Placemark>
    <name>東側</name>
    <LookAt>
      <longitude>136.664472</longitude>
      <latitude>36.549559</latitude>
      <altitude>0</altitude>
      <tilt>65</tilt>
      <range>25</range>
      <heading>270</heading>
    </LookAt>
  </Placemark>
</Folder>

Cameraによる視点の設定

 Cameraタグは、視点の位置と見る方向を個々に指定する必要があるため、設定が面倒です。ただ、人の視線で建物を見上げるような指定も可能となります。
 latitudeタグとlongitudeタグには、視点位置の緯度経度を指定するため、個々のCameraタグで個別に設定する必要があります。道路側地表ビューを表示する場合は、道路の緯度経度を設定します。
 altitudeタグは、視点の高さですので、1.5mとしています。
 tiltタグは、見下ろす角度を0~180度の間で指定します。水平に見る場合は90度、人が建物を見上げる場合は100度ぐらいの値を設定します。
 headingタグは、建物の方向を0~180度の間で指定します。 建物が北側にある場合(南側から見る場合)は0度、東側にある場合は90度、南側にある場合は180度、西側にある場合は270度となります。
 Cameraによる視点情報は省略可能ですし複数指定も可能ですので、フォルダを分けて設定しています。 kmlでフォルダを作成する場合、openタグに1を設定しておくと、フォルダが開いた状態で起動されるため、視点変更が簡単にできます。

  <Folder>
    <name>Camera</name>
    <open>1</open>
    <Placemark>
      <name>道路側地表ビュー</name>
      <Camera>
        <longitude>道路の経度</longitude>
        <latitude>道路の緯度</latitude>
        <altitude>1.5</altitude>
        <altitudeMode>relativeToGround</altitudeMode>
        <tilt>100</tilt>
        <heading>建物の方向</heading>
      </Camera>
    </Placemark>
  </Folder>

Copyright (C) ASH Joe Masumura