ここでは、3Dデータを表示するためにklar.landで現在利用可能なオプションと、満足のいく結果を得るためにデータをどのように処理すべきかを説明する。
Programm
3Dデータ作成にはblenderを推奨する。
blenderからエクスポートされるglbファイルには、ベイクされたテクスチャと、可能な限り圧縮されたすべてのアニメーションとマテリアルが含まれていなければならない。
ウェブブラウザでの3D表示の最高のパフォーマンスは、コンポーネント/頂点の可能な限りの圧縮と縮小によって達成される。 これは、最終的にユーザー体験にプラスになる。
データ形式
klar.landは、glb/gltfデータ形式のデータを処理し、そこにオブジェクト名が明記されており、相互作用の基礎となる。 呼称はこのマニュアルのさらに下に記載されている。
データをアップロードする
管理者メニューを通じて、適切なアクセス権を持つ人は、3Dデータをアップロードするための新しいいわゆる「ステージ」を作成することができる。
この目的のために、glbファイルはドラッグ・アンド・ドロップするだけで提供されたフィールドにアップロードすることができる。 ローディング・バーはアップロードの進捗状況を示す。 この動作中で、まだアップロードが完了していない間は、ブラウザのウィンドウを閉じてはならない。
テキストフィールド “JSON “には、glb/gltfファイルと3D環境に対する個々のインタラクションコマンドが定義されている。 ステージ」の設定や微調整に関するさまざまな可能性は、JSONの説明書に記載されている。
素材
1. 変更可能な材料については、”MaterialHolder “と呼ばれるオブジェクトを作成する。
カメラ
初期カメラ(シーンのロード時に表示されるビュー)はDefaultcamと呼ばれなければならない。
2. 他のすべてのカメラ名は cam で終わらなければならない。
照明
1.エリアライトの名称は、エリアライトで始まること。
2.ポイントライト
オブジェクト
オブジェクト名も対応するメッシュに割り当てなければならない。
複数のオブジェクトが同じ名前を持つ場合、例えば複数の卵の場合、名前は「Egg_1、Egg_2、Egg_3」などとする。
3. 輸出前に、対象物に1の尺度を与えるべきである。
ビデオテクスチャを持つオブジェクトの場合、標準的なUVマッピングで単純な平面(矩形)を作成することを推奨する。 それぞれ異なる対象物を異なる映像で見せるのであれば、これらは異なる素材でなければならない。 同じ素材を使ったオブジェクトも同じ映像になる。
素材/テクスチャー
1. ガラス素材の場合、名称はGlassで始まらなければならない。
2.アンビエントオクルージョンマップを焼くことは、ダイナミックシャドウの計算は計算量が多いため、パフォーマンス上重要である。
3.ベイクされたアンビエントオクルージョンマップには、Blenderの特別な非標準ノードが使用される。 既存のブレンドファイルから抽出するのがベストだ。 適切なブレンドファイルをお持ちでない場合は、こちらまでご連絡いただきたい。
ステージでのナビゲーション
フロア上のナビゲーション(フロア上のどこをクリックしてもよい)が必要な場合は、フロア・オブジェクトの名前を”_floor “とし、オブジェクトのピボットを中央に置くべきである。 注意:Blenderの階層では、メッシュオブジェクトだけが”_floor “と呼ばれなければならない。
floorオブジェクトの代わりに、オブジェクトに”_navMesh “という名前を付けることもできる。 これは自動的に不可視化され、Jsonコードの「userScale」パラメーターによって、_navMeshの上からの高さをメートル単位で指定することができる。 このように、_floorオブジェクトと比べると、適応の可能性が広がる。
アパートや部屋などでは、グランドスポットの使用を推奨する。 これらは、特に壁へのナビゲーションを防ぐ。 これを行うには、”_floor “という名前のフロアオブジェクトのすぐ上に、マテリアルを含まない複数のプレーン(=矩形)を作成し、それらの名前に “groundspot “という文字列を含めるだけでよい。 さらに、Jsonコードには以下の内容が含まれていなければならない:
{ "Stage3dData": [ { "navigationmode":2, ..... } ] }
アニメーション
アニメーション名は、対応するオブジェクト名で始めなければならない。
だから、例えばこうだ。
卵_1が食卓に飛ぶ
ポットの中の卵_2
重要:アニメーションとオブジェクトの名前に一貫性を持たせること! 作成中も、後処理・変更中もだ!
アニメーションを複製しないこと!
アニメーションの情報は別のリストで:
1. アニメーション名(任意のアニメーション名)
2.アニメーショングループ(1つのオブジェクトをクリックした後、複数のオブジェクトがクリック可能になる場合、それらすべてに同じグループ名を付ける必要がある)。
3. アニメーションレイヤー(ボタンがクリックされ、カメラがカメラスポットに飛ぶ => レイヤー0、オブジェクトがクリックされ、アニメーションが再生される => レイヤー1、サブオブジェクトがクリックされ、再生される)
4.アニメーションの状態(オブジェクトが再度クリックされたときに、最初にクリックされたときとは異なるアニメーションが再生される場合、最初のアニメーションは状態0、2回目のアニメーションは状態1でなければならない(例えば、最初のクリック => ドアが開き、2回目のクリック => ドアが閉じる))。
5. アニメーション・トリガー・オブジェクト(クリックされたときにアニメーションをトリガーするオブジェクト)
6. アニメーションカメラ(トリガーオブジェクトがクリックされたときに切り替えられるカメラ)。
7.タイムコード付きアニメーション(3Dプログラムで指定されたアニメーションの正確な名前、再生されるタイムコードも含む)。
(アニメーションとその命名についての詳細は、JSONの説明を参照のこと)。