ALCC2ProxyMesh:プロキシメッシュ Actor
プロキシメッシュの Actor で、LCC2 の ProxyMesh 法線モードに実際のシーンの深度と法線を提供する。
| モジュール | LCC4UnrealRuntime |
| ヘッダーファイル | LCC2ProxyMesh.h |
| 親クラス | AActor |
| ライセンス | ProxyMesh 法線モードにはライセンスが必要である。エディションとライセンス を参照する |
#include "LCC2ProxyMesh.h"
プロキシメッシュの仕組み、ホワイトモデルの作成の要件、配置手順、ベストプラクティス、トラブルシューティングは プロキシメッシュ を参照する。このページではインターフェースのみを挙げる。
Properties
| プロパティ | 型 | アクセス | 説明 |
|---|---|---|---|
StaticMeshComponent | UStaticMeshComponent* | 読み取り専用 | ルートのスタティックメッシュコンポーネント。シーンの深度と GBuffer を提供する。その StaticMesh のスロットにホワイトモデルを入れる |
コンポーネント自体は BlueprintReadOnly なので差し替えられないが、その StaticMesh は設定できる。
CustomDepth は Actor が自動的に管理する。有効なメッシュを割り当てると有効になり、メッシュが空の場合は有効にならず警告を 1 回出力する(インスタンスごとに最大 1 回)。詳しくは 動作 を参照する。
使い方
#include "LCC2ProxyMesh.h"
#include "LCC2Component.h"
#include "Components/StaticMeshComponent.h"
void AMyLightingSetup::SetupProxyMesh(ALCC2Actor* LCC2Actor, UStaticMesh* ProxyAsset)
{
// 3DGS と同じ位置に配置する。ペアリングは空間的な重なりで決まり、明示的な参照は不要である
ALCC2ProxyMesh* Proxy = GetWorld()->SpawnActor<ALCC2ProxyMesh>(
ALCC2ProxyMesh::StaticClass(),
LCC2Actor->GetActorLocation(),
LCC2Actor->GetActorRotation());
if (!Proxy)
{
return;
}
// メッシュを割り当てると CustomDepth が自動的にオンになる
Proxy->StaticMeshComponent->SetStaticMesh(ProxyAsset);
// ProxyMesh 法線モードに切り替える
ULCC2Component* Comp = Cast<ULCC2Component>(LCC2Actor->GetLCCComponent());
if (Comp)
{
Comp->SetLightMode(ELightMode::Lit);
Comp->NormalMode = ELCC2NormalGenerationMode::ProxyMesh;
// 未ライセンスの場合は黙って Fixed にフォールバックするので、確認が必要である
if (Comp->GetEffectiveNormalGenerationMode() != ELCC2NormalGenerationMode::ProxyMesh)
{
UE_LOG(LogTemp, Warning, TEXT("ProxyMesh requires a license"));
}
}
}
Blueprint での使い方は プロキシメッシュ - Blueprint での使い方 を参照する。
See Also
- プロキシメッシュ:完全な使用説明
- 法線とライティング:4 種類の法線モードの比較
- ULCC2Component:
NormalModeとその他のライティングのパラメーター - Enums:法線モードの値