klar.land用3Dデータの作成方法

·

·

ここでは、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の説明を参照のこと)。