Skip to content

Avatar

Pawn Module / AvatarSystem

Avatar

엔티티의 외형을 정의하는 ScriptableObject. IAvatar와 IPawnModule을 동시에 구현한다.

ScriptableObject IAvatar IPawnModule

데이터 구조

Avatar는 Forks/Pawn/Avatar 메뉴로 생성하는 에셋이다. 네 개의 uint ID 필드로 렌더러와 오디오 시스템이 참조할 외형·음성 에셋 키를 보관한다.

필드타입설명Setter
BodyId uint 신체 메쉬 / GS 에셋 키 SetBody(uint)
OutfitId uint 장착 복장 에셋 키 SetOutfit(uint)
AccessoryId uint 장착 악세서리 에셋 키 SetAccessory(uint)
VoiceId uint 음성 에셋 키. 외형과 묶인 고유 목소리 설정. SetVoice(uint)
Avatar.cs
[CreateAssetMenu(menuName = "Forks/Pawn/Avatar", fileName = "PawnAvatar")]
public class Avatar : ScriptableObject, IAvatar, IPawnModule
{
    [SerializeField] private uint bodyId;
    [SerializeField] private uint outfitId;
    [SerializeField] private uint accessoryId;
    [SerializeField] private uint voiceId;

    public uint BodyId      => bodyId;
    public uint OutfitId    => outfitId;
    public uint AccessoryId => accessoryId;
    public uint VoiceId     => voiceId;
}

Flow 노드

Avatar 관련 노드는 모두 Pawn/Build 카테고리에 등록된다.

[FlowNode("Avatar", "Pawn/Build")]
AvatarNode
입력 없음
0AvatarAvatar

직렬화된 Avatar 에셋을 그래프에 공급하는 소스 노드.

[FlowNode("Pawn Avatar", "Pawn/Build")]
PawnAvatarNode
0PawnPawn
1AvatarAvatar
0PawnPawn

기존 Pawn에 Avatar를 설정한 뒤 반환. Pawn 입력이 없으면 빈 Pawn을 자동 생성. 내부적으로 pawn.SetAvatar(avatar)를 호출한다.

연계