3D 学校内地図システムの開発 松江工業高等専門学校情報工学科 研究者 : 錦織優子 指導教員 : 越田高志 2010 年 02 月 04 日
目次 1 はじめに...1 2 研究目標...1 3 システム開発について...1 3.1 要素技術について...1 3.2 システムの実装...2 3.2.1 外観の 3D モデルの作成...2 3.2.2 ウォークスルー可能な 3D モデルの作成...4 3.3 システムの実行評価...6 3.3.1 Google Earth との連携...6 3.3.2 ウォークスルーの実行...7 4 おわりに...9
1 はじめに近年, インターネットの利用形態がサービスを利用するだけの受身型からユーザ自らがサービスを発信する能動型に変化してきている. 具体的には Google や Yahoo など様々な企業が Web サービスをユーザに無償で提供し, さらにそれらの Web サービスを目的に応じて, 自由に組み合わせて新しい Web サービスとして提供するマッシュアップという利用形態も一般化してきている. また, 地図の表現方法も Google Map[1] や Google Earth[2] などのサービスの登場により, 多彩になってきており, それらを組み合わせて新しい地図サービスを開発することも可能になってきている. しかし, ホームページ上での大学などの学校案内地図は現在も写真や平面地図などの 2 次元の平面的データがほとんどであり, そこから得られる情報も少ない. そこで, 我々は地図の Web サービスをマッシュアップして, 学校内地図を 3D で表示するシステムを開発することにした. 2 研究目標本システムは Google SketchUp[3] を用いて校内の 3D モデルを作成し,Google Earth と連携して Google Earth 上に作成した 3D モデルを,3D 地図として表示する. 実際に現地を訪れる前に, 事前にホームページ上で実物に近い形で確認できるようにしたい. 平面だけの 2 次元表示だと確認しにくい点も 3 次元で表示することにより確認しやすくなると考えられる. 具体的な機能として, 作成した建物内をウォークスルー可能にする. 訪問したい研究室を指定することで, 正門から研究室までのルートを表示する. 地図上に各研究室の情報なども表示する. 事務関係の部屋に対しては, マウスカーソルでその部課名と事務員名が表示される. などを実装することを目標とした. また, 松江駅付近の 3D 地図も併せて作成し, バス乗場やタクシー乗場なども確認できるようにする. 3 システム開発開発について 3D データの作成には,Google Earth との連携がしやすいことやフリーで利用できるなどの理由から,Google SketchUp を利用することにした. 作成した 3D データを Google の各種サービス (Google Earth, Google Map など ) と連携 マッシュアップして新しいサービスとして開発する. 3.1 要素技術素技術について Google SketchUp について説明する.Google SketchUp は,3D モデルを作成, 編集, 共有できるソフトウェアで, 様々なアプリケーションで作成した 3D データを利用できる. 例えば,DXF と DWG の両方をインポートおよびエクスポートでき, 更に EPS,PDF,VRML などにもエクスポートできる.Google Earth KMZ は,3D モデルをその地理情報とともにパッケージ化するための Google 標準のファイル形式である.KMZ 形式でエクスポートした 3D データは Google Earth 上にインポートし組み込むことができる. SketchUp の起動画面を図 1 に示す. 1
描画ツール群 プッシュ / プル ウォーク コンポーネント 図 1 Google SketchUp の実行画面 画面左側にあるラージツールバーからツールを選択して作業を行う. 描画ツールでは平面の図形を描画することが出来る. 描画した図形はプッシュ / プルツールやその他のツールで立体化 変形させることが出来る. また画面右側のコンポーネントウィンドウからは, 共有されているコンポーネントをダウンロードし, 使用することが出来る. 作成した 3D モデルはウォーク機能によってウォークスルーを実行できる. 3.2 システムの実装 3.2.1 外観の 3D モデルの作成 SketchUp 利用法を習得するために, まず松江高専の外観の 3D データを作成した. 図 2 に示す. この 3D データは, 松江高専校舎の 1 棟 ~3 棟の平面データを作成し押し出して立体化し, 窓や入り口などの装飾を作ったものである. 内部を詳細に作りこんでいないため, ウォークスルーすることは不可能である. 2
図 2 外観の 3D データ Google SketchUp のテンプレートは初期設定ではフィート -インチ表記となっている.SketchUp7 では, 作成開始時にテンプレートを選ぶことが出来るが, 作成開始当初に使用していた SketchUp6 では開始時に選ぶことが出来ず, テンプレートは初期設定であるフィート -インチ表記になってしまっていた. そのことに気が付かず作成をしたことが原因で, 非常に小さいサイズで作成してしまったため,Google Earth 上に配置した時にうまく表示できないという状況に陥った. しかし, インチ単位のデータからメートル単位へのデータへ変換する方法を探し出すことができ ( 図 3),3D データを作成し直すことなく変換することができた. 単位の変更はシステム環境設定のテンプレートタブより行うことが出来た. 図 3 インチからメートルへの変更 3
また 3D モデルの大きさを変更する方法も探し出し ( 図 4),Google Earth 上に表示することが可能な 3D モデルを作成しなおすことなく作ることが出来た. 大きさの変更には尺度ツールを用いた. 緑の点のいずれかをクリック ドラッグすることで大きさを変更することが出来る. その際, 画面右下に表示される入力ボックスに数値を入力すると, 入力された数値の比率で拡大 縮小を行うことができる. 図 4 尺度ツールによるサイズの変更 3.2.2 ウォークスルー可能可能な 3D モデルの作成次に, 外観だけでなく校舎内部の様子をウォークスルーし, 確認できるようにデータの作成を行った. 図 5 参考にした校内地図 4
まず, 校内地図 ( 図 5) や写真などを参考に校舎の平面データを作成し, それを立体化し床とする. それ を 3 つに複製し, それぞれに 1~5 階の校内の壁を書き込んだのち, それに沿って厚み 0.2m の壁オブ ジェクトを並べていった.( 図 6) 図 6 壁の配置 すべての壁を並べ終えたら, それらを重ねて立体構造にする.( 図 7) 図 7 重ね合わせた校舎 3D モデル 5
その後, 外壁や階段などを作成し立体モデルにする.( 図 8) 図 8 外壁作成後の校舎 3D モデル このような手法で 3D モデルを作成すると, 内部をウォークスルーすることが可能となる. 3.3 システムの実行評価 3.3.1 Google Earth との連携 Google Earth との連携には,Google Earth から地図データを取得し,SketchUp に表示する方法と,SketchUp で作成した 3D データを KMZ 方式でエクスポートし,Google Earth にインポートし表示する 2 通りの方法がある.SketchUp 上で表示したものを図 9,Google Earth 上で表示したものを図 10 に示す. 6
図 9 GoogleEarth から取り込んだ地図データの SketchUp への配置実行図 図 10 Google Earth への 3D モデルの配置実行図 3.3.2 ウォークスルーの実行前述の方法で立体的に作成した 3D モデルの内部はウォークスルーすることが可能である. 実際にウォークスルーを行っている様子を図 11 に示す. 7
図 11 ウォークスルー実行画面 図から, 内部の様子が実際と近い形で見ることができることがわかる. また, 作成した 3D モデルは図 12 に示すように,Google Earth 上でもウォークスルーが可能である. 図 12 Google Earth 上でのウォークスルーの実行 現在, 他の高専や大学などのキャンパスマップは平面図や写真がほとんどであり ( 図 13),3D ものは存在していない. 平面図や写真などでは校舎内の部屋の大まかな位置は分かるが, 内部の様子などを知ることは出来ない. それに比べて 3D の場合は実際の景観に近い様子で内部を知ることが出来る. そのため,3D データとして学校案内図を示すことができれば, 平面図や写真のものと比べてかなり分かりやすいといえる. 8
図 13 岡山理科大学のキャンパスマップ 4 おわりに今回,3D データを作成するツールとして Google SketchUp を利用したが, 機能が豊富であるが故に, なかなか利用法の習得が難しく, 時間が掛かかり, 予定していた開発まで行うことができなかった.Google Earth や Google Map など Google の他のシステムとも連携が可能なので, その選択は間違いなかったと考える. 今後の課題として, まず, 第一に校舎の 3D データ化の完成と Google Earth とそのデータをホームページ上にリンクすることを今後行っていきたい. また, 今回は余裕がなくて詳しく調べることができなかったが,SketchUp では Ruby によるコマンド スクリプトを実行できる機能 [4] があるので, 例えば図にラベルを追加する, 放物線や楕円などの幾何学的図形を描画するなどのタスクを自動化する方法も習得して, 正確に早く 3D データを開発方法も理解したいと考えている. 参考文献 [1]Google Maps API: http://code.google.com/intl/ja/apis/maps/ [2]Google Earth API: http://code.google.com/intl/ja/apis/earth/ [3]Google SketchUp: http://sketchup.google.com/intl/ja/ [4]SketchUp と Eclipse による 3D モデリング : http://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-sketchup1/ 9