7-1. RobloxにおけるModelとは

RobloxにおけるModelとは

RobloxにおけるModelとは

一般的にゲーム開発では「Model」は3Dのメッシュデータを指しますが、RobloxにおけるModelは異なります。RobloxのModelは、複数のオブジェクトやコンポーネント(Part、MeshPart、Script、サウンド、エフェクトなど)をグループ化するためのコンテナです。Modelにより、これらの要素を一つの単位としてまとめて取り扱うことを可能とします。

Folderとの違い

FolderもまたRobloxでのグループ化のためのコンテナですが、ModelとFolderは明確に異なります。特にModelはFolderにはない特定のプロパティやAPIを持っており、より複雑な制御や管理が可能です。Folderは単純なグループ化や階層構造の構築に適していますが、Modelはそれに加えて複数のオブジェクトの動作を統合的に扱う機能を提供します。

Modelがもつ特徴的なプロパティ

PrimaryPartとPivot

PrimaryPartはModel内の特定のPartを基準点として指定するプロパティです。これにより、Model全体の位置や向きの操作が容易になります。PivotはModelの基準点(回転軸)を定義するために使用され、Modelの動きや配置をより細かく制御できます。
PivotとPrimaryPartはModel単位での3D座標変換を行うために必要となる重要な要素となります。Modelの3DTransform手法と合わせて後項で詳しく解説します。

ModelStreamingMode

ModelStreamingModeは、Modelのロード方法を指定するプロパティです。これにより、Model単位でまとめたロードや、初期ロード時に必要な部分を先にロードすることや常駐すること、などが可能です。このプロパティはエクスペリエンスがとなっている場合にのみ利用できます。(現在、がデフォルトです。)
このStreamingに対する設定は、現状Modelにしかない点に注意が必要です。PartやFolderなどにはないため、Streaming時に常駐化したいオブジェクトがある場合などはModelにしておく必要があることになります。

LevelOfDetail

LevelOfDetail(LOD)は、プレイヤーからの距離に応じてModelの表示を最適化するためのプロパティです。これにより、遠くにあるオブジェクトの描画負荷を軽減し、パフォーマンスを向上させることができます。

Scale

Modelに含まれるBasePartすべてを統一的にスケールすることができるプロパティです。3D操作上はもちろん、Script上からまとまった単位として大きさの変更などの制御が可能となります。

Modelの重要性

ModelはRobloxのエクスペリエンス開発において、エンティティを構成する基本的な単位となりえます。これにより、見た目、挙動、音など様々な要素を統一的に管理することが可能になります。単純なエクスペリエンス制作ではBasePartをベースとした制作も可能ですが、リッチなエクスペリエンスを制作するにはModelによるグループとして取り扱いが不可欠です。
加えて、ModelはBasePart等にはないStreaming制御やLOD制御などのプロパティを持ち、より高度な制御を可能とします。この点においても、高度なエクスペリエンスを構成するためにModelは重要な役割を担っています。

参照すべき情報

以下のドキュメントを参照することでより詳細な仕様を理解することが可能です。