リソース
リソースとは、一度アップロードしたり作ったりして、いろいろな場所で使うもののことです。
| リソース | 使うのは |
|---|---|
| model | 3D オブジェクト |
| image | テクスチャ、または UI カードの中の画像 |
| video | 動画の面、またはカード |
| audio | 音源、または script から鳴らす単発の音 |
| font | テキスト |
| material | 複数のオブジェクトで使い回す |
| geometry | 複数のオブジェクトで使い回す |
| prefab | 保存したオブジェクトのツリー。また置き直せます |
| splat | gaussian splat のキャプチャ |
| card | UI のレイアウト |
| patch | 再利用・呼び出しができるビジュアルグラフ |
| script | TypeScript で書いた挙動 |
フォルダーとパス
リソースはファイルと同じようにフォルダーに入っています。パスは、フォルダー名をスラッシュで つないだものです。
Models/Trees/oak.glb
フォルダーの中で名前は一意なので、パスは常にちょうど 1 つのものを指します。
script どうしはパスで import し合います。つまり、リソースの名前を変えたり移動したりすると、 それを使っていたすべての script の import が書き換わります。手で直しに行く必要はありません。
import は依存物を連れてきます
自前のテクスチャとともに届いたモデルは、それらを自分の下にしまい込みます。モデルを移動・削除 すればテクスチャも付いていきます。1 つずつ管理する必要はありません。
オブジェクトはリソースを指すだけで、含んではいません
モデルのオブジェクトが持つのはモデルへの参照です。マテリアルのカラーマップが持つのは画像への 参照です。テキストのオブジェクトが持つのはフォントへの参照です。
差し替えが安上がりなのはこのためです。参照の先を変えれば、それを使っているものすべてが一度に 更新されます。マテリアルを 1 つ編集するだけで、シーン中の看板を塗り替えられます。
ある症状の理由もこれで説明がつきます。リソースが見つからないときは、エラーメッセージではなく、 「存在するのに描かれないオブジェクト」として現れます。
読み込みはシーンが動いている間に進みます
リソースはシーンが開いたあとに届きます。次のような形で気づくはずです。
- シーンが始まって少し経ってからモデルがぽんと現れる
- 完成して見えるマテリアルで、テクスチャが一瞬だけ欠ける
- テキストは非同期にレイアウトされるため、少し遅れて現れる
いちばん最初のフレームから画面に出ていなければならないもの(タイトルカード、ロゴなど)は、 大きなダウンロードに依存させないか、コンテンツが届くまでシーンを隠しておいてください。
次へ: カメラ — 来場者がそれを通して見るもの。