Rendu indépendant par caméra
Par défaut, le mode de rendu (RenderMode) et le mode de chargement (LoadMode) d'un LCC Actor sont identiques pour toutes les vues. Vous pouvez surcharger ces réglages pour un joueur précis ou un SceneCapture précis : par exemple, afficher du 3DGS au joueur 1 et un nuage de points au joueur 2 en écran partagé ; ou faire en sorte que le SceneCapture d'une minimap effectue un rendu en nuage de points vu du dessus et ne charge que la partie principale pour réduire le coût.
Les pipelines LCC1 et LCC2 prennent tous deux en charge ce groupe d'interfaces. Pour les signatures, voir ULCCComponentBase - Multi-Viewport.
Uniquement à l'exécution
Les paramètres de ces fonctions sont des objets d'exécution (APlayerController / USceneCaptureComponent2D) qui n'existent pas encore à l'étape de placement dans l'éditeur ; ce ne sont donc pas des propriétés de panneau et ils ne peuvent être appelés qu'en Blueprint ou en C++ pendant que le jeu tourne. Les RenderMode / LoadMode du panneau sont les valeurs par défaut globales qui s'appliquent à toutes les vues ; ce groupe d'interfaces effectue une surcharge locale par-dessus les valeurs globales, et une vue qui n'appelle aucune fonction de surcharge continue d'utiliser le réglage global.
Note : les caméras sont distinguées par leur « identité de vue » : l'ID unique de la vue de rendu pour une vue joueur, et l'index de son RenderTarget pour un SceneCapture. C'est pourquoi vous devez passer le
PlayerController(et non le Pawn) — un Pawn ne porte aucune information sur « dans quel viewport il est affiché ».
Surcharge par joueur (écran partagé / plusieurs joueurs locaux)
// Le viewport du joueur 2 affiche un nuage de points ; les autres viewports ne sont pas affectés
LCCComponent->SetPlayerRenderMode(Player2Controller, ERenderMode::PointCloud);
LCCComponent->SetPlayerLoadMode(Player2Controller, ELoadMode::OnlyMain);
Blueprint texte :
[Custom Event: SetupSplitScreen]
│
▼
[Get Player Controller] Player Index = 1 → Player2Controller
│
▼
[Set Player Render Mode]
Target = (LCC Component)
Player Controller = Player2Controller
In Render Mode = Point Cloud
Le réglage prend effet à l'image suivante. Sans appel à une fonction de surcharge, tous les viewports partagent le réglage global du panneau.
Surcharge par SceneCapture (minimap / vue de surveillance)
// La minimap utilise un nuage de points + la partie principale seulement, pour le coût le plus faible
LCCComponent->SetSceneCaptureRenderMode(MinimapCapture, ERenderMode::PointCloud);
LCCComponent->SetSceneCaptureLoadMode(MinimapCapture, ELoadMode::OnlyMain);

Le viewport principal affiche du 3DGS, tandis que la minimap SceneCapture en haut à gauche utilise un nuage de points vu du dessus
Prérequis : pour effectuer un rendu de contenu LCC dans un SceneCapture, activez d'abord SceneCaptureComponent Support dans les paramètres du projet ; cette option est désactivée par défaut.
Attention au moment d'appel (piège courant)
Une surcharge de SceneCapture ne prend effet qu'une fois qu'un ID de vue valide peut être calculé. Si la capture n'a pas encore effectué un rendu, il n'y a pas d'ID et le réglage est ignoré silencieusement (sans erreur). Garantissez le bon moment avec l'une des deux approches suivantes :
- Capturer une fois, puis régler, puis capturer de nouveau :
Capture Scene→SetSceneCaptureRenderMode/LoadMode→Capture Scene. - Ou cochez
Capture Every Framesur le SceneCapture2D pour que le ViewState reste résident et que le réglage prenne effet.
Vérifiez également que le Texture Target du SceneCapture2D est affecté ; à un moment trop précoce comme BeginPlay, attendez une image avant d'appeler.
Erreur courante 1 : appeler
SetSceneCapture...avantCapture Scenealors que la capture n'a pasCapture Every Framecoché → le réglage est perdu et l'image ne change pas.Erreur courante 2 : relier
Targetau SceneCapture2D. Le branchement correct est Target = le composant LCC capturé, et le SceneCapture2D se place dans le paramètreIn Capture 2D.