カテゴリー別アーカイブ: オープンソース – Curl 3D Gallery

Google Sketchupから Curl 3D Galleryへファイルを読み込む方法

Curl 3D Galleryのダウンロードはこちらから
pcurl版(ユーザー用)
ソースコード版
(開発者用、sourceforge.net)

まずは、Curl 3D Gallery, Google SketchUpの連携に登場するファイル拡張子をご紹介します。


xxx.skp Google SketchUpモデルファイルです。このファイルを実行するとGoogle SketchUpが立ち上がります。

xxx.kmz Google Earth KMZ ファイルです。 このファイルを実行するとGoogle Earthが立ち上がります。
このファイルはGoogle Sketchup から、3Dモデルにエクスポートすることで生成されます。このファイルはkmlファイルを圧縮した形式のファイルです。

xxx.kml (通常はdoc.kml) Google Earth KML ファイルです。このファイルはkmzファイルを解凍すると生成されます。(Curl 3D Galleryでは、この形式のファイルを読み込みます。


次にファイルを変換していく方法をご紹介します。

流れは [Google Sketchup xxx.skp – Google Sketchup で エクスポート → xxx.kmz – 解凍 → xxx.kml Curl 3D Gallery で読み込み] という流れになります。

詳細な手順

皆さんが3Dモデルを Google 3D Gallery から取得してくる場合、そのファイルは xxx.skp という拡張子のファイルとなっています。

*モデル選択の目安は1MBサイズ程度のものまでで、複雑さも中程度までのものが、Curl 3D Galleryでスムーズに動かすポイントです。

まずは、このファイルを実行し、 Google Sketchupを立ち上げます。メニューバーの[ファイル]→[エクスポート]→[3D モデル]を選択し、ファイルを任意のフォルダに保存します。このときの保存形式は、xxx.kmz となっているはずです。


次に、この xxx.kmzファイルを解凍します。このファイルはzip形式と同様に解凍が可能です。

KMZファイル解凍の方法:ファイルをダブルクリックすると、Google Sketchupが立ち上がってしまいますので、解凍ソフト(よく出回っているものでOKです)をインストールしたのち、右クリックメニューから解凍、もしくは、ファイルの拡張子を kmz から zip に書き換えて解凍してください。

解凍先のフォルダの中に、xxx.kml (doc.kml)というファイルができていますか?

できていれば、このファイルを Curl 3D Gallery で読み込みます。

*注意:ローカルで起動した場合は、メニューが表示されますが、サーバで起動し、モデル情報をクエリ文字列にて指定した場合は、メニューは表示されなくなります。(詳細はこちら。)


どうでしょうか? 3D空間が再現されましたでしょうか?


もっときれいに再現するために

・イメージファイルを抽出するためには、Rubyのdxf出力サンプルをカスタマイズして使用します。
(dfx出力サンプルはこちら
SketchUpの「Plugins」フォルダにコピーして、再起動すると、Pluginsメニューに、LineDXF-3D==Faceが追加されます。(
Curl 3D Galleryのダウンロードはこちらから


出力対象のデータを選択状態にして、実行すると、DXFの出力先設定ダイアログが表示され、実行時に、選択した面で使用されているテクスチャイメージが、「C:textures」に出力されます。
(出力先は、固定にしていますので、Rubyスクリプトを変更し任意のディレクトリを指定してください。)
GetTexture.rbの40行目、tw.write_all(“C:\textures”, false) の部分を任意のディレクトリに変更します。

※ただし、ファイル名と、kmzで出力されたStyle名が異なる場合があるようです。その場合は、どちらかの名称の変更が必要になります。


Curl 3D Gallery 操作編-基本操作-

Curl 3D Galleryのダウンロードはこちらから
pcurl版(ユーザー用)
ソースコード版
(開発者用、sourceforge.net)

Google Sketchupのダウンロードはこちらから

この章では、Curl 3D Galleryの基本的な操作方法をCurl 3D Galleryに付属しているサンプルデータを用いて、説明していきます。

まずは、Curl 3D Galleryの機能をリストアップします。

・壁を認識した3D空間のウォークスルー
・リンク情報の読み込み(リンク情報とは、情報を持った画像のことです)
・リンク情報の貼り付け
リンク情報に関する機能
・URLリンク機能
・エレベーター機能
・モデルからモデルへの移動

・自分が動いた行動の記憶
・全体像の表示、全体像の表示からの移動
見た目や動きの設定変更

*注意:ローカルで起動した場合は、メニューが表示されますが、サーバで起動し、モデル情報をクエリ文字列にて指定した場合は、メニューは表示されなくなります。(詳細はこちら。)以下の操作は、モデル情報をクエリ文字で指定していない場合のみ有効な操作になります。

1.モデルの読み込み

起動画面は以下のようなイメージです。

「モデル情報読込み」にて、モデル情報ファイルを読み込みます。(”3D-GallerydataMusiamdoc.kml”)

モデル情報が読み込まれた状態

続いて、基本的な操作方法です。

2.基本的な操作の説明

操作に関する、画面右側のコントローラに関しての図説はこちらを参考にしてください。

次に画面上部にある各メニューの説明です

ファイル                    
モデル情報読み込み      …  モデル情報を読み込みます。        
リンク情報読み込み      …  リンク情報を読み込みます。        
リンク情報書き込み      …  リンク情報を書き込みます。        
操作履歴書き込み        …  操作履歴を読み込みます。        
操作履歴読み込み        …  操作履歴を書き込みます。        

編集                    
リンク情報設定          …  リンク情報の新規作成、既存編集を行います。        
リンク情報リスト        …  リンク情報をリスト形式で表示し、編集、削除を行います。        
操作履歴登録            …  操作履歴登録ダイアログを表示します。        
操作履歴再生            …  操作履歴を再生します。        
操作履歴クリア          …  操作履歴をクリアします。 

設定
カメラ リセット        …  カメラを起点位置に戻し、カメラパラメータも初期地に 戻します。        
パラメータ設定         …  カメラ パラメータ設定ダイアログを表示します。  

3.リンク情報の読み込み

リンク情報とは、壁や床に張られた、情報を持つイメージ画像の情報のことです。

「リンク情報読込み」にて、リンク情報ファイルを読み込みます。 (”3D-GallerydataMusiamLink.inf”)

リンク情報が読み込まれた状態

4.操作履歴情報の読み込み

操作履歴情報とは、自分の動いた動作記録のことです。操作履歴の作成方法は別の章でご説明いたします。

「操作履歴情報読込み」にて、操作履歴情報ファイルを読み込みます。 (”3D-GallerydataMusiamHistory.ope”)

操作履歴情報が読み込まれた状態

5.全体表示

全体表示では、モデルの上空から、モデルを眺め、指定したポイントに移動することが可能になります。

図による説明はこちら


6.惰性モード

惰性モードとは、Google Earthの挙動のように惰性で動くことを可能にするモードです。
どうでしょうか?基本的な操作はできましたか?

Curl 3D Gallery 操作編-応用操作-ではよりインタラクティブな操作の方法をご紹介しています。


Curl 3D Gallery 操作編-リンク情報設定-

Curl 3D Galleryのダウンロードはこちらから
pcurl版(ユーザー用)
ソースコード版
(開発者用、sourceforge.net)

Curl 3D Galleryでは、壁や床にリンク情報を画像ともにはりつけることが可能です。この章では、どのようにリンク情報を扱うかを説明します。

*注意:ローカルで起動した場合は、メニューが表示されますが、サーバで起動し、モデル情報をクエリ文字列にて指定した場合は、メニューは表示されなくなります。(詳細はこちら。)以下の操作は、モデル情報をクエリ文字で指定していない場合のみ有効な操作になります。

リンク情報の作成

リンク情報の作成、編集は、「リンク情報設定」メニューを押下します。

「配置面指示」ボタンを押下して、貼り付ける面を指示します。

貼り付ける面の張り付けたい位置の左下座標を指示します。

指示された面のID番号と左下座標が反映されます。

各パラメータの値を設定し、「実行」ボタンを押下します。(右上座標も画面指示できます。)

指示した面に貼り付けられます。

リンク情報を押下すると、指定した内容のポップアップ画面が表示されます。

「リンクを新規に開く」をクリックすると、新規ウインドウで、設定したURLリンクのページを開きます。



Curl 3D Gallery 操作編-操作履歴設定-

Curl 3D Galleryのダウンロードはこちらから
pcurl版(ユーザー用)
ソースコード版
(開発者用、sourceforge.net)

Curl 3D Galleryでは、自分の操作した情報を保存し、再現することが可能です。この章では、操作履歴の設定、保存、再現方法をご紹介いたします。

*注意:ローカルで起動した場合は、メニューが表示されますが、サーバで起動し、モデル情報をクエリ文字列にて指定した場合は、メニューは表示されなくなります。(詳細はこちら。)以下の操作は、モデル情報をクエリ文字で指定していない場合のみ有効な操作になります。

操作履歴登録画面の説明

操作履歴数              
記憶している操作履歴の数が表示されます。           

自動登録              
マウスオペレーション、移動操作、カメラ回転による操作を自動的に履歴に記憶します。           
操作の時間間隔も実時間で記憶されます。           

操作履歴登録              
現在位置、カメラ方向を記憶します。本登録では、前回の操作位置から滑らかな移動           
を行います。滑らかさは、分割数により調整できます。           

操作履歴は、追記されます。 クリアしたい場合は、メニューの「操作履歴クリア」で行います。

メニューの[設定]→[操作履歴再生]から、操作履歴を再生します。

操作履歴再生画面の説明

実行/中断                    
トグルボタンとなっており、押下中、操作履歴を再生します。                 

繰り返し再生                    
操作履歴が最後まで再生された際に、最初に戻るのかを指定します。                 

実行状況                    
再生中の操作履歴と操作履歴数を表示します。                 
スクロールバーの移動により、任意の操作履歴を表示することができます。

操作履歴の保存方法

メニューの[設定]→[操作履歴登録]から、操作履歴を保存します。

図での説明はこちらをご覧ください。

操作履歴ファイルの構造の情報についてはこちらをご覧ください。

Curl 3D Gallery 各種設定編

Curl 3D Galleryのダウンロードはこちらから
pcurl版(ユーザー用)
ソースコード版
(開発者用、sourceforge.net)

ここでは、各種設定の説明を行います。

*注意:ローカルで起動した場合は、メニューが表示されますが、サーバで起動し、モデル情報をクエリ文字列にて指定した場合は、メニューは表示されなくなります。(詳細はこちら。)以下の操作は、モデル情報をクエリ文字で指定していない場合のみ有効な操作になります。

まずは、パラメーターの設定を見てみましょう。

メニューにある[設定]→[パラメーター設定] から現在の設定情報の確認、変更が可能です。

パラメーターの設定

位置 (X座標、Y座標、Z座標)                  
現在の位置座標となっています。               

方向 (方位角、仰角)                  
方位角は、Y軸(デフォルト前方)を0として、反時計回りで指定します。               
仰角は、水平0で、-90°(真下)~80°の範囲で設定できます。               

視野角                  
Sceneのcameraの視野角となります。               

近クリップ面・遠クリップ面                  
Sceneのcameraの近クリップ面・遠クリップ面となります。               

移動量                  
マウス1ドット移動時の移動距離を設定します。 (左ボタン押下オペレーション)               

回転量 
マウス1ドット移動時の回転角度を設定します。 (右ボタン押下オペレーション)               

イベント最大
内部でのイベント保持の最大数 大きくすると遅延が中くなる場合があります。                
ただし、別の操作実行時(いったんマウスボタンを離すと別操作となります。)には、リセットされます。               

マウス比率 
マウスの移動量を増幅させます。 大きな値にすると、わずかな移動でも、大きな移動量となります。               

霧効果 
霧効果のON/OFFを設定します。               

霧開始距離・霧終了距離
霧効果の有効距離を設定します。               

アニメーション 
アニメーションGIFをアニメーション表示するかをON/OFFで設定します。               

更新間隔 
アニメーションの更新間隔を設定します。

図での説明はこちらをご覧ください。

Curl 3D Gallery 3Dモデル作成編-Google Sketchupを使ったモデル作成-

この章では、Google Sketchupを使った3Dオブジェクトを作成し、それをCurl 3D Galleryで読み込むことができる形式に変換するまでの流れをご紹介いたします。

まずは、Curl 3D Galleryのダウンロードと、Google Sketchupのダウンロードから始めましょう。

Curl 3D Galleryのダウンロードはこちらから
pcurl版(ユーザー用)
ソースコード版(開発者用、sourceforge.net)


Google Sketchupのダウンロードはこちらから


次にモデルの作成方法ですが、2つの方法があります。1つは自らGoogle SketchUpを利用し作成する方法、もう1つは既に存在するモデルを利用する方法です。以下にその2つの利用方法を記載します。

A: 自分で1から作成する場合

A-1.Google Sketchupを起動します。

*tips:寸法の調整
Google Sketchupの初期設定では寸法はインチ表示になっています。
Curl 3D Galleryでの壁の貼り付け、移動等の調整はミリ単位で行っていますので、Google Sketchupの単位を調整しておくと、見やすいかもしれません。

(調整の方法)


A-2.モデルを作成します。
今回は、簡単に床のみを作成してみましょう。

緑と赤の線上に面を作成します。

A-3.モデルのエクスポートを行います。

A-4.KMZファイルの解凍を行います。
エクスポートされて生成されたkmz形式のファイルはzip形式のファイルと同様に解凍することができます。

KMZファイル解凍の方法:ファイルをダブルクリックすると、Google Sketchupが立ち上がってしまいますので、解凍ソフト(よく出回っているものでOKです)をインストールしたのち、右クリックメニューから解凍、もしくは、ファイルの拡張子を kmz から zip に書き換えて解凍してください。

解凍されたファイルの中には、doc.kmlという形式のファイルが含まれています。

A-5.Curl 3D Galleryで読み込み。

*注意:ローカルで起動した場合は、メニューが表示されますが、サーバで起動し、モデル情報をクエリ文字列にて指定した場合は、メニューは表示されなくなります。(詳細はこちら。)


Curl 3D Galleryを起動し、[ファイル]->[モデル情報読み込み]を選択し、先ほど解凍されたファイルの中の、doc.kmlという形式のファイルを読み込みます。

いかがですか?
足もとに床が貼られたと思います。

ファイル変換が難しいですか?具体的な説明はこちら

B:Google 3D Galleryからファイルを読み込む場合


1から自分でモデルを作成しなくても、Google 3D Galleryからモデルをダウンロードし、使用することができます。

B-1.Google 3D Galleryからモデルをダウンロードする。

*モデル選択の目安は1MBサイズ程度のものまでで、複雑さも中程度までのものが、Curl 3D Galleryでスムーズに動かすポイントです。

B-2.以降はA-3からA-5までの手順と同様です。

モデルを作成する際の注意点

・面の表、裏には、気を付けてください。SketchUpの場合、裏面が見えていて、裏面にテクスチャを貼り付けていても、正しく見えますが、ファイルには、表面の情報しか出力されませんので、テクスチャの貼られていない面として表示されてしまうことになります。また、法線ベクトルも逆向きとなってしまいます。

参考ファイル

よりきれいに再現するために

・イメージファイルを抽出するためには、Rubyのdxf出力サンプルをカスタマイズして使用します。
(dxf出力サンプルのダウンロードはこちら
SketchUpの「Plugins」フォルダにコピーして、再起動すると、Pluginsメニューに、LineDXF-3D==Faceが追加されます。

出力対象のデータを選択状態にして、実行すると、DXFの出力先設定ダイアログが表示され、実行時に、選択した面で使用されているテクスチャイメージが、「C:textures」に出力されます。
(出力先は、固定にしていますので、Rubyスクリプトを変更し任意のディレクトリを指定してください。)
GetTexture.rbの40行目、tw.write_all(“C:\textures”, false) の部分を任意のディレクトリに変更します。

※ただし、ファイル名と、kmzで出力されたStyle名が異なる場合があるようです。その場合は、どちらかの名称の変更が必要になります。

・面の取り込みは、すべて三角形に分割して行っています。そのため、凹凸の激しい部分が極力ないモデルの方が、生成される面の数も減り、レスポンスもよくなります。ただし、テクスチャを張っている場合は、それらの境界部分がきれいに見えない(テクスチャがズレてしまう)ことがあり得ます。

・床と天井のように、隣り合う面は、隙間を空けて頂きますようお願いします。あまり接近しすぎていますと、Curl 3D Galleryでの表示の際に、両者が重なって、おかしく見えてしまう可能性があります。(10cm程度空けることが目安です。)

Curl 3D Gallery ローカル起動とサーバ起動の振る舞いの違い

Curl 3D Galleryのダウンロードはこちらから
pcurl版(ユーザー用)
ソースコード版
(開発者用、sourceforge.net)

ローカルで起動した場合は、メニューが表示されますが、サーバで起動し、モデル情報をクエリ文字列にて指定した場合は、メニューは表示されなくなります。

例: 下記のURLでは、メニューは表示されなくなります。
URL: http://localhost/curl/gallery/start.curl?model=data/Museum/doc.kml&link=data/Museum/link.inf&operation=data/Museum/History.ope )

クエリ文字列

model : モデル情報URL。start.curlからの相対パスで指定します。

link : リンク情報URL。start.curlからの相対パスで指定します。

operation : 操作履歴URL。start.curlからの相対パスで指定します。