Unity에서 FaceOSC로 VTuber 하는 느낌(전편)
개시하다
이번에는 얼굴 검사까지.
다음에 모델 동작 적어놓을게요.
일단 성과물의 GIF는 아래에 둔다.
유닛 초보자니까 틀리면 알려주세요.
왜 FaceOSC냐면요.
유닛으로 얼굴 체크하려고 했는데.
Facetracker는 유료입니다.
OpenCV도 유료니까.
OSS를 사용한 FaceOSC
따라서 Unity에서 FaceOSC를 사용하는 경우
유니티 패키지를 제작해 공개했기 때문에 소개해드릴게요.
OSC 수신UnityOSC이 유명한 것 같아요.
그루브 Tips선생님 uOSC좋아요.
이번에 사용한 건 이거예요.
UFaceOSC
이번에 만든 유니티 포장.
uOSC에서 FaceOSC에서 받은 OSC 메시지를 지웁니다.
유닛 경험이 적기 때문에 버그가 있으면 절 찾을 수 있으면 좋겠어요.
가져오기/raw
에 오류가 있을 수 있습니다.
컨디션
유닛으로 얼굴 체크하려고 했는데.
Facetracker는 유료입니다.
OpenCV도 유료니까.
OSS를 사용한 FaceOSC
따라서 Unity에서 FaceOSC를 사용하는 경우
유니티 패키지를 제작해 공개했기 때문에 소개해드릴게요.
OSC 수신UnityOSC이 유명한 것 같아요.
그루브 Tips선생님 uOSC좋아요.
이번에 사용한 건 이거예요.
UFaceOSC
이번에 만든 유니티 포장.
uOSC에서 FaceOSC에서 받은 OSC 메시지를 지웁니다.
유닛 경험이 적기 때문에 버그가 있으면 절 찾을 수 있으면 좋겠어요.
가져오기/raw
에 오류가 있을 수 있습니다.
컨디션
FaceOSC v1.1
uOSC v0.0.1
UFaceOSC v0.0.1
사용법
[Assets] => [Import Package] => [Custom Package...]
에서 UOSC 및 UaceOSC 가져오기[GameObject] => [Create Empty]
게임 대상 만들기Inspector
부터 Add Componet
까지 부착[Scripts] => [uOSC] => [uOscServer]
8338
부터 Add Componet
새 스크립트 만들기(이번엔 [New Script]
라는 이름으로 만들었음)using System.Collections;
using UnityEngine;
using uOSC;
using UFaceOSC;
public class main : MonoBehaviour {
private UFaceOSC.Parser faceOscParser;
void Start()
{
// UFaceOSCのパーサクラスを初期化
faceOscParser = new UFaceOSC.Parser();
// uOscServerコンポーネントを取得して受信時のコールバック関数を設定
var server = GetComponent <uOscServer>();
server.onDataReceived.AddListener(OnDataReceived);
}
void OnDataReceived(Message message)
{
// パーサクラスにOSCアドレスとOSCメッセージを渡す
faceOscParser.SetData(message.address, message.values);
if(faceOscParser.found == 1) {
// FaceOSCから受信した顔の頂点情報を取得
float[] raw = faceOscParser.raw;
// or Vector2[] rawPoints = faceOscParser.GetRawPoints();
// FaceOSCから受信した口の高さを取得
float mouthHeight = faceOscParser.gesture.mouth.height;
}
}
}
세부내용
UFaceOSC.Parer 클래스의 구성원 변수는 FaceOSC의 다음 OSC 메시지 주소를 기반으로 합니다.
입 높이면main
그러니까/gesture/mouth/height
오른쪽 눈의 열기faceOscParser.gesture.mouth.height
때문에/gesture/eye/right
.
또 faceOscParser.gesture.eye.right
용/pose/position
으로, Vector2
용/pose/orientation
으로 되돌아왔다.Vector3
만 되돌아오는 방법을 준비했다./raw
맞아요. 수량은 66이에요.이 상수도 Vector2[]
에서 읽을 수 있다.
성과물
이번 환경+라이브 2D로 VTuber 느낌을 해봤어요.
사용한 모델은 Live 2D로 공개된 샘플을 사용했습니다.
길어졌으니까 그 근처는 다음에 쓰자.
감상
Unity에서 FaceOSC를 사용한 예가 있지만 오픈 소스는 발견되지 않았습니다.
상상을 초월한 유니티 피로(편리하지만).
다음에 마스코트 이미지 건드리고 싶은 놈.
Reference
이 문제에 관하여(Unity에서 FaceOSC로 VTuber 하는 느낌(전편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/enkatsu/items/713cc8be1c2886b8319f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Unity에서 FaceOSC를 사용한 예가 있지만 오픈 소스는 발견되지 않았습니다.
상상을 초월한 유니티 피로(편리하지만).
다음에 마스코트 이미지 건드리고 싶은 놈.
Reference
이 문제에 관하여(Unity에서 FaceOSC로 VTuber 하는 느낌(전편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/enkatsu/items/713cc8be1c2886b8319f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)