リソース
リソースとは、一度アップロードまたは作成して、いろいろな場所で使うもののことです。モデル、画像、サウンド、スクリプトなどがあります。ここでは、フォルダーとパスのしくみと、オブジェクトがリソースをどう使うかを説明します。
| リソース | 使い道 |
|---|---|
| モデル | 3D オブジェクト |
| 画像 | テクスチャ、またはインターフェースのカードに載せる画像 |
| 動画 | 動画を映す面、またはカード |
| 音声 | 音源、またはスクリプトから 1 回だけ鳴らす音 |
| フォント | テキスト |
| マテリアル | 複数のオブジェクトで使い回すマテリアル |
| ジオメトリ | 複数のオブジェクトで使い回す形 |
| プレハブ | 何度でも追加できる、保存したオブジェクトのまとまり |
| スプラット | ガウシアンスプラットで撮影したデータ |
| カード | インターフェースのレイアウト |
| パッチ | 使い回して呼び出せるビジュアルなグラフ |
| スクリプト | TypeScript で書いた振る舞い |
フォルダーとパス
リソースは、パソコンのファイルと同じようにフォルダーに入っています。パスは、フォルダー名とリソース名をスラッシュでつないだものです。
Models/Trees/oak.glb
同じフォルダーの中で名前は重複しないので、パスは必ず 1 つのリソースを指します。
スクリプトは、パスを使ってほかのスクリプトを読み込みます。リソースの名前を変えたり移動したりすると、それを読み込んでいるスクリプトはすべて自動で更新されます。インポートを手で直す必要はありません。
モデルに専用のテクスチャが付いている場合、テクスチャはモデルの下に保存されます。モデルを移動・削除すると、テクスチャも一緒に移動・削除されます。1 つずつ管理する必要はありません。
オブジェクトはリソースを参照します
オブジェクトは、リソースのコピーを持っているわけではありません。リソースへの参照を持っています。
- モデルのオブジェクトは、モデルを参照します。
- マテリアルのカラーマップは、画像を参照します。
- テキストのオブジェクトは、フォントを参照します。
そのため、リソースを変更すると、それを使っているものがすべて一度に更新されます。マテリアルを 1 つ編集すれば、そのマテリアルを使っているシーン内の看板がすべて変わります。
このしくみから、ある症状の理由もわかります。リソースが見つからない場合、オブジェクトは存在していますが、描画されません。エラーメッセージも出ません。
リソースはシーンの実行中に読み込まれます
事前読み込みしていないリソースは、シーンが開いたあとで届きます。次のような形で気づくかもしれません。
- シーンが始まって少ししてから、モデルが表示される。
- マテリアルは仕上がって見えるのに、少しの間テクスチャがない。
- テキストが少し遅れて表示される。
タイトルカードやロゴのように、最初のフレームから画面に出ていなければならないものもあります。こうしたものは、大きなダウンロードに頼らないようにしましょう。事前読み込みにすることも、コンテンツが届くまでシーンを非表示にしておくこともできます。
次へ: カメラ — 見る人がシーンをのぞくためのしくみ。