Enums:列挙型のリファレンス
LCC4UnrealRuntime モジュールが公開する列挙型である。
| モジュール | LCC4UnrealRuntime |
| ヘッダーファイル | Core/LCCEnum.h |
#include "Core/LCCEnum.h"
BlueprintType が付いた列挙型は Blueprint で直接使用でき、Switch ノードに接続したり変数の型として使ったりできる。
Rendering
ERenderMode
レンダリングモード。ULCCComponentBase::RenderMode に使う。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
Splatting | 3DGS | 3D ガウススプラッティングとしてレンダリングする。画質が高くコストが大きい |
PointCloud | Point Cloud | 点群としてレンダリングする。画質が低くコストが小さい |
点群に切り替えるとコストを大きく下げられ、俯瞰、ミニマップ、遠景のようにディテールが不要な場面に適する。点群モードでは 3DGS 専用のパラメーター(球面調和、SplatScale、GlobalAlpha)が効かない。
関連するインターフェース:SetRenderMode、ToggleRenderMode
ELoadMode
読み込みのフィルターモード。ULCCComponentBase::LoadMode に使う。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
Both | Both | 主体と環境をレンダリングする |
OnlyMain | OnlyMain | 主体のみレンダリングする |
OnlyEnvironment | OnlyEnvironment | 環境のみレンダリングする |
None | None | 何もレンダリングしない |
主体は撮影の中核となる領域で、環境は外周を補うデータである。None は一時的に隠しつつメモリのデータを保持するのに相当し、復帰は再読み込みよりはるかに速い。
関連するインターフェース:SetLoadMode
ELightMode
ライティングモード。ULCCComponentBase::LightMode に使う。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
Unlit | Unlit | シーンのライティングの影響を受けず、撮影時の元のカラーを表示する |
Lit | Lit | シーンのライティングに参加し、動的なライトと相互作用できる |
撮影したデータには現場のライティングがすでにベイクされているため、Lit に切り替えるともう 1 層重なって露出オーバーになりやすい。LCC2 では LightingScale を合わせて使い、元の明るさを下げる。3DGS モードでのみ有効である。
関連するインターフェース:SetLightMode、ToggleLightMode
EShadowMode
影のモード。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
None | None | 影を受けない |
Static | Static | 静的な影を受ける |
Dynamic | Dynamic | 動的な影を受ける |
EColorationMode
点群レンダリングモードでの着色方式。ULCCComponentBase::ColorationMode に使う。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
Elevation | Evelation | 標高で着色し、元のカラーを上書きする |
Data | Data | データが持つ RGB を使う |
Elevation は ElevationColorBottom と ElevationColorTop と組み合わせて地形の高さの可視化に使う。Data は実際の地物の色を示す。レンダリングモードが点群のときにのみ有効である。画面パラメーターの調節 - 点群を参照する。
ELCC2NormalGenerationMode
LCC2 の法線生成モード。ULCC2Component::NormalMode に使う。
3DGS のデータ自体はジオメトリ法線を持たないが、ライティングには法線が必要である。最初の 3 つのモードはいずれも近似的な構成で、ProxyMesh だけが実際の法線を提供する。
| 値 | パネルでの表示 | 実際の明暗 | 説明 |
|---|---|---|---|
Fixed | Fixed | なし | 3DGS 全体でユーザーが指定した 1 つのワールド法線を共有する。既定は上向き。全体の明るさは dot(法線, ライティングの方向) に等しい |
ViewFacing | View Facing | なし | 全体がカメラを向き、受光が均一になる |
Hemispherical | Hemispherical | なし | カメラに依存しない法線で、画面上の位置を固定のワールド半球にマッピングする |
ProxyMesh | Proxy Mesh | あり | シーン内の ALCC2ProxyMesh が実際の深度と法線を提供し、3DGS はカラーのみを担う |
各モードのトレードオフ:
| モード | 利点 | 欠点 |
|---|---|---|
Fixed | 斜めの光の帯が出ず、カメラの移動に対して完全に安定し、コストが最も低い | 立体感のある明暗がまったくない。光が法線の裏側から来ると全体が暗くなる |
ViewFacing | 設定不要で、斜めの光の帯が出ない | 立体感のある明暗がない。カメラを回すと全体の明るさが揺れる |
Hemispherical | 斜めの光の帯が出ず、カメラの移動に対して安定し、日光が動くときの遷移がもっとも滑らか | 依然として実際の明暗ではない。NormalPole と NormalHemiSpread の調整が必要 |
ProxyMesh | 実際のジオメトリ法線と深度が得られる | 形状の合うプロキシメッシュを作って配置する必要がある。ライセンスが必要で、未ライセンスの場合は Fixed にフォールバックする |
選択の指針:既定は Fixed。滑らかな日光の推移が必要なら Hemispherical、実際の立体感のある明暗が必要なら ProxyMesh を使う。ViewFacing は素早く効果を見る用途にのみ適する。
関連するページ:ULCC2Component、ALCC2ProxyMesh
Clipping and Section
EClipType
クリッピングの方向。ALCCClippingVolume::Mode に使う。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
Inside | Inside | ボリュームの内側が切り取られる |
Outside | Outside | ボリュームの外側が切り取られる |
Inside は穴を開けたり外殻を切り開いたりするのに使い、Outside は関心のある領域だけを残すのに使う。
EClipVolumeType
クリッピングボリュームの形状。ALCCClippingVolume::VolumeType に使う。
| 値 | 説明 |
|---|---|
Box | ボックス形のボリューム |
Sphere | スフィア形のボリューム |
ESectionType
断面の方向。ALCCSectionPlane::Mode に使う。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
Upside | Upside | プレーンの上方が切り取られる |
Downside | Downside | プレーンの下方が切り取られる |
上下はプレーン自身の向きに対するものであり、ワールド座標ではない。断面プレーンを回転させれば任意の方向の断面を得られる。
ELoadRegion
読み込む領域。ALCCLoadVolume::Mode に使う。
| 値 | パネル表示 | 説明 |
|---|---|---|
Inside | Inside | ボリューム内部のデータのみ読み込む |
Outside | Outside | ボリューム外部のデータのみ読み込む |
EClipType との違い:ここで選ぶのはどの部分を読み込むかであり、どの部分を切り取るかではない。外れた領域はまったく読み込まれないため、読み込み量とビデオメモリの使用量を減らせる。判定はノード単位なので、境界はクリッピングボリュームより粗い。
ELoadVolumeType
読み込みボリュームの形状。ALCCLoadVolume::VolumeType に使う。
| 値 | 説明 |
|---|---|
Box | ボックス形のボリューム |
Sphere | スフィア形のボリューム |
関連するページ:ALCCClippingVolume、ALCCSectionPlane、読み込みボリューム
Data and Format
ELCCVersion
データのバージョン。
| 値 | 説明 |
|---|---|
LCC | LCC1 形式 |
LCC2 | LCC2 形式 |
関連するインターフェース:ULCCComponentBase::GetLccVersion
EFileFormat
ファイルの形式。ULCCUtilLibrary::DetermineFileFormat の戻り値の型である。
| 値 | 対応する拡張子 |
|---|---|
None | 識別できない、またはパスが存在しない |
LCC | .lcc |
Splats | .splats |
LAS | .las |
PLY | .ply |
DetermineFileFormat の識別範囲は限られている点に注意する。.lcc2、.sog、.spz はいずれも None を返す。 これらの形式を判定するには拡張子を直接見る。詳しくは DetermineFileFormat を参照する。
EDataSourceType
LCC2 のツリーのデータソースの形式。FLCC2MetaInfo::SplatType に使う。
| 値 | 説明 |
|---|---|
SOG | .sog のデータソース |
SPZ | .spz のデータソース |
PLY | .ply のデータソース |
これは通常の C++ の列挙型で UENUM のマークがなく、Blueprint からは見えない。
EFileType
データの内容の種類。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
Portable | Portable | RGB のみで球面調和がない |
Quality | Quality | RGB と球面調和の両方を含む |
Portable のデータには使える球面調和がないため、bUseShcoef は編集できない。CanSetShcoef() は実際には種類が Quality かを判定している。
ELCCSourceType
データのソース。ULCCUtilLibrary::DetermineSourceType の戻り値の型である。
| 値 | 説明 |
|---|---|
Local | ローカルのファイル |
Http | ネットワークのアドレス |
ECollisionType
コリジョンデータの形式。ULCCUtilLibrary::DetermineCollisionType の戻り値の型である。
| 値 | 説明 |
|---|---|
None | コリジョンデータがない |
Bin | 旧形式の .bin |
Lci | 新形式の .lci |
Ply | 点群の .ply のコリジョン |
None が返る場合、bEnableCollision を有効にしても効果がない。
ELoadStatus
読み込みの状態。
| 値 | 説明 |
|---|---|
Success | 成功 |
Failure | 失敗 |
Progress | 進行中 |
States
ULCCComponentBase の状態クエリとイベントに使う状態の列挙型で、Core/LCCEventTypes.h に定義されている。
列挙値は追加のみで変更されない(Blueprint は値で保存する)。今後のバージョンで新しい値が追加される可能性があるため、コールバックは自分が知らない値も許容すべきである。
ELCCLoadState
読み込み状態。Load() から初回表示まで。Loaded の後もデータはカメラ周辺に継続して流入し、そのために状態が後退することはない。
| 値 | 説明 |
|---|---|
Unloaded | モデルを読み込んでいない |
Loading | 読み込みを開始済み。bounds とメタ情報を読める。ビューに必要なデータがストリーミング読み込み中で、進捗は GetLoadProgress で見る |
Loaded | 現在のビューの読み込みが完了。すべてのデータが正しく読めたとは限らない。一部のデータの読み取りに失敗した場合は OnLoadFailed が通知し、モデルが完全に表示されないことがある。モデルが解放されるまで Loaded を保つ |
Failed | 前回の読み込みが失敗し、モデルがない |
ELCCCollisionState
コリジョン状態。コリジョンを有効にしてから最初のコリジョンメッシュが準備できるまで。コリジョンはカメラ周辺で読み込まれて移動に応じて流入し、Loaded はカメラ付近のコリジョンが準備できたことを指し、モデル全体にコリジョンがあることを意味しない。
| 値 | 説明 |
|---|---|
NoCollision | コリジョンがオフ、またはモデルがない |
Generating | 単一ファイルモデル(PLY/SPZ/SOG)のみ:ガウシアンからコリジョンメッシュを生成中で、数秒から数分かかる。キャッシュがあればスキップする |
Loading | カメラ付近のコリジョンメッシュを読み込みと cook 中。読み込み距離内にまだコリジョンデータがない場合は Loading を保つ |
Loaded | カメラ付近のコリジョンが初めて準備完了し、付近の物体をすり抜けなくなる。コリジョンがカメラの移動に応じて流入し続けている間も Loaded を保つ |
Failed | コリジョンはオンだが提供できない:コリジョンデータがない、生成が未ライセンス、または生成に失敗した。Output Log を参照し、オフにして再度オンにすると再試行する |
ELCCLoadAnimationState
読み込みアニメーションの状態(bEnableAnimation)。アニメーションは読み込み時間で計時され、データを待たない。Finished はアニメーションが再生し終わったことを指し、モデルが画面上で完全であることを意味しない。
| 値 | 説明 |
|---|---|
NoAnimation | アニメーションがオフ、またはモデルがない |
Playing | 読み込みアニメーションが再生中。Load / Refresh / SetEnableAnimation で最初からやり直す |
Finished | アニメーションが再生し終わり、環境も出現済み。正方向はモデルの完全表示、逆方向は消失済み。アニメーション設定の変化で再生し直すと Playing に戻る |
ELCCLoadError
読み込み失敗の原因で、FLCCLoadFailure::Error に使う。
| 値 | 説明 |
|---|---|
None | エラーなし |
FileNotFound | Load に渡したファイルが見つからない(.lcc モデルの場合は隣の data.bin / index.bin も含む)。何も読み込まず、読み込み済みのモデルは残る。パスを確認する |
InvalidData | ファイルは見つかったが破損している、データファイルが足りない、またはプラグインが読めるモデルではない。何も読み込まれていない(GetLoadState が Failed)か、モデルは読み込まれたが一部のデータの読み取りに失敗して表示が不完全(GetLoadState が Loading または Loaded)のいずれかである。詳しくは Message と Output Log を参照する |
Performance and Scheduling
ETraversalType
ノードのトラバース方式。プロジェクト設定(Project Settings → Plugins → LCC4Unreal)の Default Traversal Type に使う。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
Circle | Circle | カメラを中心、最大レンダリング距離を半径とする円形のトラバース |
Sector | Frustum | カメラの視錐台に基づくトラバース |
Frustum は視野内のノードのみを処理するため通常はより軽いが、視点を素早く回すと視野外のノードがプリロードされておらず、補完の遅れが見えることがある。
列挙型の名前は Sector だがパネルでの表示は Frustum である点に注意する。
ESortMethod
半透明のソート方式。プロジェクト設定の Default Sort Method に使う。
| 値 | 説明 |
|---|---|
GPU | GPU のソートを使う |
CPU | CPU のソートを使う |
通常は GPU を使う。
ESortMode
ソートの順序。
| 値 | 説明 |
|---|---|
Ascending | 昇順 |
Descending | 降順 |
EComputeType
計算パイプラインの種類。
| 値 | 説明 |
|---|---|
Compute | グラフィックスパイプライン上の Compute を使う |
AsyncCompute | 非同期の Compute パイプラインを使う |
現在の実装は Compute を使う。AsyncCompute はレンダリングの問題があり、まだ有効になっていない。
Localization
ELocale
ロケール。ULCCUtilLibrary::GetLocale の戻り値の型である。
| 値 | 説明 |
|---|---|
EN_US | 英語 |
ZH_CN | 簡体字中国語 |
ELanguagePreference
プラグイン UI の言語の設定。プロジェクト設定の Language に使う。
| 値 | パネルでの表示 | 説明 |
|---|---|---|
FollowEditor | Follow Editor | エディターの現在の言語設定に従う |
AlwaysEnglish | Always English | 常に英語にし、エディターの言語の影響を受けない |
Using Enums in Blueprint
Blueprint では Switch ノードで列挙型を分岐できる。
[Get Render Mode]
Target = (LCC Component)
│ Return Value ──┐
▼ │
[Switch on ERenderMode] ◀┘
│ Splatting ──▶ (3DGS の分岐のロジック)
│ Point Cloud ─▶ (点群の分岐のロジック)
直接比較することもできる。
[Get Effective Normal Generation Mode]
│ Return Value ──┐
▼ │
[Equal (Enum)] ◀─────────┘
A = (Return Value)
B = Proxy Mesh
│
▼
[Branch]
See Also
- ULCCComponentBase:
ERenderMode、ELoadMode、ELightModeの使い方 - ULCC2Component:
ELCC2NormalGenerationModeの使い方 - ULCCUtilLibrary:形式系の列挙型を返すユーティリティ関数
- Structs:これらの列挙型を使う構造体