このページでは

Model QML Type

3Dモデルデータを読み込むことができます。詳細...

Import Statement: import QtQuick3D
Inherits:

Node

Inherited By:

XrHandModel

プロパティ

詳細な説明

「モデル」アイテムを使用すると、メッシュを読み込み、マテリアルを追加することでそのシェーディングを変更することができます。モデルをレンダリング可能にするには、少なくともメッシュとマテリアルが必要です。

メッシュ形式と組み込みプリミティブ

モデルは、ストレージからスタティックメッシュ、または組み込みプリミティブタイプのいずれかを読み込むことができます。使用されるメッシュ形式は、エンジン固有のランタイム形式ですが、アセットインポートツール「Balsam」を通じて追加の形式もサポートされています。

組み込みプリミティブは、source プロパティを次のいずれかの値に設定することで読み込むことができます:#Rectangle, #Sphere, #Cube, #Cylinder or #Cone 。

Model {
    source: "#Sphere"
}

以下の表では、組み込みメッシュについてさらに詳しく説明しています。

名前説明面数
#Cone高さ100 、直径 の円錐です。底面は原点にあり、円錐はy方向に上向きになっています。78
#Cube原点を中心とし、x、y、z方向の辺の長さが100 の立方体。12
#円柱原点を中心とし、高さおよび直径が100 で、y方向に広がる円柱。316
#長方形原点を中心とし、100 の幅と高さを持つ、xy平面上に位置する長方形。2
#球原点を中心とし、100 の直径を持つ球。4900

カスタムジオメトリ

スタティックメッシュを使用するほか、実行時にモデルにカスタムの頂点データを提供するcustom geometry プロバイダーを実装することもできます。モデルでカスタムマテリアルを作成・使用する方法の例については、「カスタムジオメトリの例」を参照してください。

マテリアル

モデルは複数のサブメッシュで構成され、各サブメッシュは独自のマテリアルを持つことができます。 サブメッシュは、そのインデックスに対応する「materials 」リストのマテリアルを使用します。マテリアルの数がサブメッシュの数より少ない場合、リストの最後のマテリアルがそれ以降のサブメッシュに使用されます。この動作は、「サブメッシュの例」で実演されています。

モデルアイテムでは、PrincipledMaterial 、DefaultMaterial 、およびCustomMaterial のマテリアルを使用できます。

ピッキング

ピッキングとは、ある開始位置からシーン内にレイを送り、そのレイと交差するモデルを特定する処理のことです。Qt Quick 3D では、通常、タッチまたはマウスイベントによって生成された 2D 座標を使用して、ビューからレイが送信されます。 モデルがレイにヒットした場合、pickResult が返され、そこにはモデルへのハンドルと、レイがモデルにヒットした位置に関する情報が含まれます。custom geometry を使用するモデルの場合、ピッキングはモデルのbounding volume に対してのみ行われるため、スタティックメッシュデータに比べて精度は低くなります。レイが複数のモデルを通過した場合は、最も近いpickable モデルが選択されます。

なお、モデルをpickable にするには、pickable プロパティをtrue に設定する必要があります。詳細については、「Qt Quick 3D - ピッキングの例」を参照してください。

プロパティのドキュメント

bakedLightmap : BakedLightmap

このプロパティが有効で有効化されたBakedLightmap オブジェクトに設定されると、モデルはライティングのベイク時に生成されたライトマップを取得し、そのライトマップは永続的に保存されます。レンダリング時には、モデルは関連付けられたライトマップを読み込んで使用します。デフォルト値はnullです。

注: モデルに対して永続的に保存されるライトマップを生成する場合は 、そのモデルに `bakedLightmap` と `usedInBakedLighting ` の両方を設定する必要があります。これにより、そのモデルがライトマップ化されたシーンに参加するだけでなく、完全なライトマップをベイクして保存することも意図していることを示すことになります。

ライトマップのベイク方法の詳細については、Lightmapper のドキュメントを参照してください。

このプロパティは、ライトマップのベイク時と使用時の両方に影響します。ベイク実行時と、生成されたデータを使用するその後の実行時との間で、状態の一貫性を保つことが不可欠です。 たとえば、ライトマップキーを変更すると、以前に生成されたデータを読み込むことができなくなります。例外はenabled です。これは(ベイク実行以外で)ライトマップの使用を動的に切り替えるために使用できますが、レンダリング結果はシーン内のライトのbakeMode 設定に依存することに注意してください。

「 usedInBakedLighting 」および「Lightmapper 」も参照してください 。

bounds : Bounds [read-only]

モデルの境界は、モデルを取り囲むバウンディングボリュームの範囲を表します。

注: モデルを最初に読み込む必要がある場合、境界情報は すぐには利用できない場合があります。

castsReflections : bool [since 6.4]

このプロパティをtrue に設定すると、モデルは反射プローブによってレンダリングされ、反射面に映し出されます。

このプロパティは Qt 6.4 で導入されました。

castsShadows : bool

このプロパティが「true 」に設定されている場合、シャドウマップへのレンダリング時にはこのモデルのジオメトリが使用され、ベイクされたライティングにおいてもこのジオメトリに基づいて影が生成されます。

デフォルト値は「true 」です。

depthBias : real

モデルの深度バイアスを保持します。オブジェクトのソート時には、カメラからのオブジェクトまでの距離に深度バイアスが加算されます。これにより、互いに近いオブジェクト間で、フレームごとにレンダリング順序が異なってしまう場合がある場合でも、レンダリング順序を強制的に統一することができます。負の値を設定すると、ソート値はカメラに近づき、正の値を設定するとカメラから遠ざかります。

geometry : Geometry

モデルにカスタムジオメトリを指定します。カスタムジオメトリを使用する場合は、Model::source を空にしておく必要があります。

instanceRoot : QtQuick3D::Node

このプロパティは、インスタンスの座標系の原点を定義します。

詳細な説明については、概要ドキュメントを参照してください。

「 instancing 」および「Instancing 」も参照してください 。

instancing : QtQuick3D::Instancing

このプロパティが設定されている場合、モデルは通常通りレンダリングされません。その代わりに、インスタンステーブルで定義されているとおりに、モデルの複数のインスタンスがレンダリングされます。

「Instancing」も参照してください 。

instancingLodFactor : real [default: 0.0, since 6.12]

このプロパティを使用すると、インスタンス化されたモデルの特定のレベルについて、詳細度(LOD)を手動で設定することができます。

シーンに大規模なインスタンステーブルの複数のLODレベルが含まれている場合、最も適切な詳細レベルを手動で選択する必要があります。これは、個々のインスタンスの変換データがGPUレンダリング段階になって初めて利用可能になるため、自動LOD管理では個々のインスタンスの詳細を正しく計算できないことから、この手動設定が必要となります。

特定の LOD レベルでのジオメトリのオーバーヘッドを軽減するために、instancingLodFactor を手動で指定することができます。この値が1.0 に近いほど、そのオブジェクトに対してレンダリングされるジオメトリは少なくなります。0.0 という値は、ジオメトリ全体がフルディテールでオフロード/レンダリングされることを意味します。

注:この プロパティは、個々のインスタンスとカメラとの距離が事前に決定されていない場合に、自動LOD計算を上書きするために特に使用されます。

このプロパティは Qt 6.12 で導入されました。

levelOfDetailBiasも参照してください 。

instancingLodMax : real

このモデルのインスタンスが表示される、カメラからの最大距離を定義します。ディテールレベルの実装に使用されます。

instancingLodMin : real

このモデルのインスタンスが表示される、カメラからの最小距離を定義します。ディテールレベルの実装に使用されます。

inverseBindPoses : List<matrix4x4>

このプロパティには、スケルトンアニメーションに使用される逆バインドポーズ行列のリストが含まれています。各 inverseBindPose 行列は、skeleton 内の対応するJoint::index のグローバル変換の逆行列を意味し、これが初期状態で使用されます。

注:この プロパティは、Model::skeleton が有効な場合にのみ使用されます。

注: 一部の行列が設定されていない場合は 、単位行列が使用されます。

「Joint::index」も参照してください 。

levelOfDetailBias : real [since 6.5]

このプロパティは、自動詳細度メッシュが使用される前に、レンダリング時にモデルがどの程度のサイズである必要があるかを変更します。生成される各詳細度メッシュには、そのレベルが表示されるべき理想的なサイズ値が含まれており、これはレンダリングされたシーンのうち、そのメッシュが占める割合を表します。 画面上でわずか数ピクセルしか占めないモデルは、正しく表示されるために完全なジオメトリを必要としないため、この場合は代わりに低レベルの詳細度メッシュが使用されます。この値は理想値に対するバイアスであり、1.0 より小さい値に設定すると、より低い詳細度レベルに切り替わる前に必要なレンダリングサイズがさらに小さくなります。1.0 を超える値を設定すると、より低い詳細レベルのメッシュがより早く使用されるようになります。0.0 の値を設定すると、詳細レベルの使用が完全に無効化されます。

デフォルト値は1.0

注:この プロパティは、モデルのジオメトリに詳細レベルが含まれている場合にのみ効果を発揮します。

このプロパティは Qt 6.5 で導入されました。

Camera::levelOfDetailBiasも参照してください 。

materials : List<QtQuick3D::Material>

このプロパティには、指定されたジオメトリのレンダリングに使用されるマテリアルのリストが含まれています。何かをレンダリングするには、少なくとも 1 つのマテリアルが必要です。通常、ソースジオメトリに含まれるサブメッシュごとに 1 つのマテリアルを設定する必要があります。

「Qt Quick 3D - サブメッシュの例」も参照してください 。

morphTargets : List<QtQuick3D::MorphTarget>

このプロパティには、指定されたジオメトリのレンダリングに使用されるMorphTargetの一覧が含まれています。メッシュには、モーフターゲット用に、位置、法線、接線、副法線、テクスチャ座標、頂点色のいずれかの属性が少なくとも1つ含まれている必要があります。

「MorphTarget」も参照してください 。

motionVectorEnabled : bool [default: true, since 6.11]

モデルがモーションベクトルパスに参加するかどうかを指定します。

このプロパティが `true` に設定されている場合、モデルはそのモーション情報をモーションベクトルバッファに提供します。これは、時間的アンチエイリアシング(TAA)や、ピクセルごとのモーションデータに依存するその他のエフェクトで使用されます。

false に設定された場合、モデルはモーションベクトルの生成から除外されます。

このプロパティは Qt 6.11 で導入されました。

「Model::motionVectorScale」も参照してください 。

motionVectorScale : real [default: 1.0, since 6.11]

モデルによって生成される運動ベクトルに適用されるスケーリング係数を指定します。

1.0 の値を設定するとモデルの実際の動きが維持されますが、1.0 より大きい値を設定するとモーションベクトルが誇張され、1.0 より小さい値を設定すると縮小されます。これは、スタイル化されたエフェクトや、モーションベクトルバッファに依存するエフェクトの視覚的な挙動を微調整する際に役立ちます。

このプロパティは Qt 6.11 で導入されました。

Model::motionVectorEnabledも参照してください 。

pickable : bool

このプロパティは、モデルが選択可能かどうかを制御します。モデルを選択可能にするには、このプロパティをtrue に設定してください。デフォルトでは、モデルは選択できません。

「View3D::pick」も参照してください 。

receivesReflections : bool

このプロパティが「true 」に設定されている場合、モデルのマテリアルは反射プローブからの反射成分を取り込みます。モデルが同時に複数の反射プローブ内に存在する場合、最も近い反射プローブが考慮されます。

receivesShadows : bool

このプロパティを「true 」に設定すると、モデルのマテリアルは、影を投射するライトによる影の寄与を考慮するようになります。

注: このモデルでライトマッピングが有効になっている場合 、Light::bakeMode がLight.BakeModeAllに設定されている完全にベイクされたライトは、このプロパティの値にかかわらず、常にモデル上に(ベイクされた)影を生成します。

デフォルト値は「true 」です。

skeleton : Skeleton

モデルのスケルトンを格納します。スケルトンは、スキニングを行う際にinverseBindPoses と組み合わせて使用されます。

注: モデルのメッシュには 、ジョイント属性とウェイト属性の両方が含まれている必要があります。

注: このプロパティが設定されている場合 、スキニングアニメーションが有効になります。これは、モデルのグローバルな変形を無視し、Skeleton に基づいてModel が変形されることを意味します。

「 Model::inverseBindPoses 」 および「Qt Quick 3D - スキニングの簡単な例」も参照してください 。

skin : Skin

モデルのスケルトンが含まれています。スケルトンはスキニングに使用されます。

注: モデルのメッシュには 、ジョイント属性とウェイト属性の両方が含まれている必要があります。

注: このプロパティが設定されている場合 、スキニングアニメーションが有効になります。これは、Model がSkin::joints に基づいて変形され、モデルのグローバル変形が無視されることを意味します。

注: モデルにスケルトンとスキンの両方が存在する場合 、スキンが使用されます。

関連項目 Qt Quick 3D - Simple Skinning Example。

source : url

このプロパティは、Mesh format and built-in primitives に記載されているとおり、このモデルのジオメトリ、または以下に挙げる組み込みプリミティブメッシュのいずれかを含むメッシュファイルの場所を定義します。

  • "#Rectangle"
  • "#Sphere"
  • "#Cube"
  • "#Cone"
  • "#Cylinder"

texelsPerUnit : real [default: 0.0, since 6.10]

0より大きい値は、ライトマップのベイク処理中に、この特定のモデルに対してLightmapper::texelsPerUnit の値を上書きすることを意味します。

このプロパティは Qt 6.10 で導入されました。

「Lightmapper::texelsPerUnit」も参照してください 。

usedInBakedLighting : bool

このプロパティを「true 」に設定すると、モデルは、影の投影や間接光などの形で、ライトマップなどのベイク済み照明に寄与します。この設定は、モデルのライトマップ生成の制御とは独立しています。ライトマップ生成の制御には、bakedLightmap を使用してください。

デフォルト値は `false` です。

注: デフォルト値は false です。これは、デザイナーや開発者が、オブジェクトがベイクされた照明に参加するのに適しているかどうかを、常にモデルごとに評価する必要があるためです。

警告: 位置や回転、その他のプロパティが動的に変化するモデルは 、ベイクされたライティングの対象には適していません。

ライトマップのベイク方法の詳細については、Lightmapper のドキュメントを参照してください。

このプロパティは、ライトマップのベイク時にのみ関連します。レンダリング中に生成されたライトマップを使用する場合、このプロパティはその後何の影響も与えません。

「 Light::bakeMode 」、「bakedLightmap 」、「Lightmapper 」、および「Lightmaps and Global Illumination」も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.