3Dデータの作成

ウェブ出力

メリット

ウェブとは最強のプラットフォームです。
URLさえ叩けば、インストール不要でコンテンツが出現します。そして、完璧なマルチプラットフォーム。 アプリのようにiOS版、Android版などと開発や管理を分ける必要もありません。

ウェブにおけるテクニック

インストール不要という利点は、メリットであり、デメリットでもあります。
アプリであればいくら巨大なサイズのデータでも、インストール時のストレスのみで起動時には問題ありません。
しかし、ウェブではそうはいきません。アクセスされたその瞬間、如何にローディングストレスを感じさせずコンテンツを展開するかが、作成者の腕の見せ所です。
ポイントは、データサイズをより効率的により小さく抑えることです。

パフォーマンス

WebGLは、OpenGLの派生規格です。
ウェブだと遅いのではないかと思われるかもしれませんが、全然そんなことはありません。
かつての初代プレステやドリームキャストみたいなゲームマシンでは、極端にポリゴン数を節約するテクニックが重要でしたが、現代のPCやスマホ上では、そこまでの節約は必要ありませんし、 ましてゲーミングマシンとしてカスタマイズしたPC上であれば、現行のゲームプログラムと同じパフォーマンスとなります。

しかし、ウェブということは、どんな環境で表示されるかわかりません。 場合によっては、極端なローポリゴンモデルを意識する必要があるかもしれません。
低スペックなのに解像度をガンガン上げているような自作PCのような規格外のマシンや 極端に古いマシンなどでも表示されないとは限らないわけです。
これらを切り捨てるか、低スペックも考慮するかは、プロジェクト次第でありクリエーターの裁量です。

光源

glbエクスポート時の光源についての注意点

XR Studio Staging Editor では、GLBエクスポートデータにLightを含まれている場合、Lightをインポートできます。
Blender では、[Punctual Lights]にチェックを入れてGLBをエクスポートすると Light を含めたデータになります。
ちょっとしたTipsとなりますが、ライトのみをエクスポートすることでライトのみの Staging Data が生成できますので、AR での追加ライトとして使用することができます。
(AR では、舞台となるオブジェクトが必要ない場合もあるので、このTipsを覚えておくと良いでしょう)

原点

回転の中心

関節を持ったオブジェクトでは特に気をつけましょう

オブジェクトのorigin(原点)とは、個々のオブジェクトが回転する時の中心となります。
現バージョンの XR studio では、個々のオブジェクトのorigin(原点)を編集する機能はありません。
3Dツール内で正しく調整しておきましょう。
人物やロボットアームのような関節をもつオブジェクトの場合、パーツの関節部分にorigin(原点)があれば自然な動きを実現できます。

Bone Animation

Skeletal animation もしくは Skinned Mesh Animation 日本では、しばしばボーンアニメーションと呼ばれます。

Bone Animation のエクスポート

ボーンアニメを適応した場合、Armatureも含めてエクスポートする必要があります。
ポリゴン面の向きであるNormals(法線)は正しく揃えましょう。 カメラやヌルオブジェクトなどは XR Studio の中では不要なのでエクスポートに含める必要はありません。
(ライトに関しては、XR Studio Staging Editor で一部のデータを読み込めます)

複数のArmatureのハンドリング

XR Studio Performing Editor では、複数のArmatureやActionをインポートできます。
インポートされたActionは、どのSkinnedMeshでも動かすことができますが、対応を想定したSkinnedMeshでない場合、ポリゴンがゆがんだりしますので、 なるべく対応を想定した SkinnedMesh に対してActionを動かした方が良いでしょう。

Action のエクスポート

Blender 内で DopeSheet > ActionEditor を用いることで複数のアクションを Armature に適応できます。
通常、Armature の直下の子として登録されていきますが、たまに他の親を持つ Action ができることがあります。
Armature と Action の構造の確認と編集は、NLA Editor を使用してください。
(それぞれの項目にマウスを合わせてShift+Aキーで新規トラックの作成や新規ストリップの作成が可能になります。削除はXキーで、ストリップの移動はGキーで可能です)

ボーンアニメの初期位置

Blender 内でフレームを動かすことにより自在にMorphアニメの動きを確認できます。
これはプレビューのような感覚で捉えてしまうと混乱の元です。
エクスポートした時点のモーフの形がそのまま初期位置となります。
エクスポートは必ず、デフォルトのポーズをとるフレームまで戻してから行いましょう。

NOTE: Blender 2.8 の場合ですが、NLAツール上で第一階層にあるアニメーションクリップしかインポートできないようです。
ツールのアップデートで仕様が変わる可能性もありますが、アニメーションが正しくインポートされない場合、NLAツールの確認をお願いします。

ウェイトペイントのTips

Blenderの場合です。
Edit > Lock Object Modes のチェックを外す

リアルタイムに動かすということ

テクスチャサイズ

任意のサイズの画像をテクスチャとして使用できますが、2の累乗がもっともメモリ効率がよく利用にあたっての制限もないサイズとなります。

  • 64px x 64px
  • 128px x 128px
  • 256px x 256px
  • 512px x 512px
  • 1024px x 1024px

長さの単位

glTF形式では長さの単位はメートル法です。
XR Studio では、一体の人物モデルが画面中央に表示される状態を想定しています。人物のサイズなので最大2メートルくらいのオブジェクトが表示されるイメージです。
XR Script Editor 内でサイズの変更はできますが、応急的な処置と考えていただくよう推奨します。
やはり、モデル作成時にサイズは統一しておくべきです。

3Dツールにおける単位

Blenderのバージョン2.80以降はデフォルトの長さの単位はメートル法となっています。
他ツールやバージョンの古いBlenderをお使いの場合は、単位を揃える必要があります。

XYZ Axis

ツールにより軸が異なる場合がありますが、XR Studio では、Y軸が高さ、Z軸が奥行きです。
お使いの 3Dツールに XR Studio との差異がある場合、お気をつけください。

Blenderを含めいくつかの3DツールではYとZが逆になっている場合があります。
BlenderアドオンのglTF Exporterでは、出力時に「+Y Up」というオプションがありますのでこれを利用しましょう。
他ツールの場合でも手動で90度回転させることで対応できます。

GLBの圧縮

GLB には Draco Compression という圧縮方式が用意されています。
Web-XR Studio はこの Draco 圧縮に対応していますが、Bone Animation を持つ Skinned Mesh を圧縮した場合、Meshが消えてしまいますのでご注意ください。
(バグなのか、そういう仕様なのか、調査中ですが、GLB側のマターでそういう挙動になっています。)