UserData
업데이트: 2020/01/30
개요
UserData는 모델의 아트메쉬에 설정된 사용자 데이터를 Unity에서 가시화하는 기능입니다.
사용자 데이터는 아트메쉬에 대해 임의의 태그를 부여할 수 있는 기능으로, SDK상에서 특수한 처리를 실시하는 아트메쉬를 지정하는 경우 등에 활용할 수 있습니다.
사용자 데이터에 대한 자세한 내용은 여기를 참조하십시오.
Unity에서 사용자 데이터를 사용하려면 다음 절차를 수행하십시오.
- .userdata3.json 파싱
- 아트메쉬에 UserData 설정
1. .userdata3.json 파싱
.userdata3.json을 CubismUserData3Json을 사용하여 파싱합니다.
CubismUserData3Json에 대해서는 여기를 참조하십시오.
var userData3Json = CubismUserData3Json.LoadFrom(jsonString);
.userdata3.json의 패스는 .model3.json에서 CubismModel3Json을 사용하여 취득할 수도 있습니다.
취득할 수 있는 패스는 .model3.json으로부터의 상대 패스입니다.
var userDataPath = modelJson.FileReferences.UserData; var jsonString = ((TextAsset)Resources.Load<TextAsset>(userDataPath)).text;
CubismModel3Json에 대한 자세한 내용은 여기를 참조하십시오.
파싱한 .userdata3.json에서 아트메쉬 데이터를 가져옵니다.
var drawableBodies = userData3Json.ToBodyArray(CubismUserDataTargetType.ArtMesh);
2. 아트메쉬에 UserData 설정
.userdata3.json에서 취득한 사용자 데이터를 Prefab의 아트메쉬에 적용합니다.
아트메쉬에 사용자 데이터 정보를 부여하려면 CubismUserDataTag를 사용합니다.
// Prefab의 아트메쉬 참조를 취득 var drawables = cubismModel.Drawables; for (var i = 0; i < drawables.Length; ++i) { var index = -1; for (var j = 0; j < drawableBodies.Length; ++j) { if (drawableBodies[j].Id != drawables[i].Id) { continue; } index = j; break; } if (index < 0) { continue; } // 이미 CubismUserDataTag가 연결되어 있으면 재사용 var tag = drawables[i].gameObject.GetComponent<CubismUserDataTag>(); if (tag == null) { tag = drawables[i].gameObject.AddComponent<CubismUserDataTag>(); } // 유저 데이터를 CubismUserDataTag로 설정 tag.Initialize(drawableBodies[index]); }
이 기사가 도움이 되었나요?
네아니요