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)를 호출한다.