Aller au contenu

Personnages intangibles

Un personnage intangible est un personnage sans corps dans le niveau — une voix au téléphone, un narrateur, un interphone, une entité désincarnée. Il prend part à un Dialogue et peut se voir attribuer des répliques, mais comme il n'apparaît jamais à l'écran, il n'a besoin de rien de plus qu'un nom et une voix : ni mesh, ni instance de niveau, ni emplacement de mise en scène.

Libretto fournit une classe de base toute prête pour exactement ce cas de figure, si bien que vous n'avez que rarement à implémenter l'interface LBRDialogueCharacter à la main.

En créer un

Dérivez votre classe de personnage de ULBRIntangibleCharacter. Il s'agit d'un UObject BlueprintType et Blueprintable : vous pouvez donc en créer un Blueprint directement dans le Content Browser — sans C++.

Creating a Blueprint from ULBRIntangibleCharacter

Comme il dérive de UObject (et non d'AActor), un personnage intangible n'a aucune présence dans le monde. Lorsqu'un Dialogue en a besoin, Libretto utilise simplement l'objet par défaut de la classe (class default object) comme instance — il n'y a rien à placer ni à faire apparaître.

Le configurer

Tout ce dont vous avez besoin se trouve dans les valeurs par défaut de la classe. Deux propriétés comptent :

Property Type Rôle
CharacterName FText Le nom d'affichage montré dans l'éditeur et, le cas échéant, en jeu (sous-titres). Utilisez du texte localisé — il peut être présenté aux joueurs.
CharacterGender ELBRCharacterGender (Male / Female) Alimente la sélection de voix TTS lors de la génération audio pour ce personnage.

Class defaults: name and gender

C'est là toute la configuration. La classe de base raccorde déjà ces valeurs à l'interface : elle renvoie CharacterName depuis LBRGetCharacterName et CharacterGender depuis LBRGetCharacterGender.

Tip

Le genre ne détermine que la voix TTS choisie à la génération. Si vous ne générez jamais d'audio de synthèse pour ce personnage, vous pouvez le laisser à sa valeur par défaut.

Également disponible — rôles de mise en scène

ULBRIntangibleCharacter expose aussi une propriété StageRoles (un GameplayTagContainer, présentée via GetStageRoles). Elle est facultative et vide par défaut ; vous n'en avez besoin que si vous associez les personnages aux emplacements de scène par rôle. Pour une pure voix/narration, laissez-la vide.

En quoi il diffère d'un personnage ordinaire

Un personnage doté d'un corps dérive généralement d'une base telle que ALBRSimpleDialogueCharacter et fournit des composants de mesh (LBRGetBodyComponent, LBRGetHeadComponent) utilisés pour lier les pistes d'animation, de lip-sync et de caméra à la génération. Un personnage intangible n'en fournit délibérément aucun, si bien que ces pistes sont ignorées pour lui — seuls son audio parlé et ses sous-titres sont produits.