virtual Chara 개발 - 3
htps : // 이 m/네
환경:
Windows 10
Unity 2018.4.1
RealSense D435i
Nuitrack 디버깅 정보 :
테스트하는 동안 시각적 디버깅 정보를 얻는 것은 처음부터 중요했습니다. Nuitrack 문서 페이지에는 골격 데이터를 유용한 방식으로 시각화하는 Unity 튜토리얼이있는 것이 좋았습니다.
h tps : // 어쨌든 d. 3ぢゔぃ. 이 m/인형 t등 ck/두 c/우니 tyRG반 dS 케톤 s_파게. HTML
SimpleSkeletonAvatar.cs 클래스를 상속하고 몇 가지 조정을 추가하여 골격 표현을 항상 비디오 이미지에 맞게 스케일하거나 이동시킬 수있었습니다. 이렇게 함으로써, 이용자 동영상이나 골격의 가시화를 축소해 오른쪽 상단으로 이동시켜, 캐릭터의 방해가 되지 않게 할 수 있었습니다. 또한 디버그 데이터가 표시되는 것을 전환하는 기능을 키에 매핑했습니다.
얼굴 추적을 구현할 때 시각적 디버깅을 위해 얼굴 데이터를 표시하는 기능도 필요합니다. 불행히도 튜토리얼은 없지만 방법은 비슷했습니다. 추적 된 얼굴 자료를 가져 오는 방법은 여기에 설명되어 있습니다.
h tps : // 어쨌든 d. 3ぢゔぃ. 이 m/인형 t등 ck/도 c/인 s단세_바세 d_아피. HTML
Nuitrack.GetInstancesJson()이라는 메서드가 있으므로 최신 업데이트에서 모든 얼굴 추적 자료를 포함하는 json 문자열을 반환합니다. 이 문서를 FaceInfo라는 Nuitrack SDK 클래스로 변환할 수 있습니다. 이 클래스에서 얻을 수 있는 가장 흥미로운 변수는 「landmark」 로, 31의 얼굴의 포인트를 포함한 Vector2 배열입니다. 이러한 정규화된 좌표에서 사용자의 얼굴에 해당하는 표시를 동영상에 인스턴스화하기 위한 투영 좌표를 계산할 수 있습니다.
sample1.cs
private void ProcessFaceLandmark()
{
nuitrack.Skeleton skeleton = CurrentUserTracker.CurrentSkeleton;
_faceInfo = NuitrackHelper.GetFaceInfo();
if (CanProcessFaceLandmark(skeleton))
{
for (int i = 0; i < _landmarks.Count; i++)
{
Vector2 landmarkNormalizedPos = _faceInfo.Instances[0].face.landmark[i];
_landmarks[i].SetActive(true);
_landmarks[i].transform.position = GetLandmarkRenderPosition(_image, landmarkNormalizedPos);
}
}
else
{
for (int i = 0; i < _landmarks.Count; i++) _landmarks[i].SetActive(false);
}
}
private Vector2 GetLandmarkRenderPosition(RawImage image, Vector2 landmarkPosition)
{
float width = _image.rectTransform.rect.width;
float height = _image.rectTransform.rect.height;
Vector2 imagePosition = _image.gameObject.transform.position;
float jointX = (imagePosition.x - (width / 2.0f)) + (landmarkPosition.x * width);
float jointY = (imagePosition.y + (height / 2.0f)) - (landmarkPosition.y * height);
return new Vector2(jointX, jointY);
}
다음은 Nuitrack 관절의 회전 제한에 대해 게시합니다. 그럼 다시
Reference
이 문제에 관하여(virtual Chara 개발 - 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NestVisual/items/8fbfd8718b2bb04a9a20텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)