RISU를 이리저리 가지고 놀다가
'여기에 3D 모델 넣어서 이야기 해보면 좀 그럴듯하지 않나'
라는 생각으로 대충 시작해본 프로젝트 .
그러나 나는 딱히 개발자도 아니고 코딩을 잘하는 편도 아니다.
다만 이 채널을 눈팅해도 딱히 방법은 없었다.
그래서 이리저리 찾아보다보니 이런 유툽이 보였다.
https://www.youtube.com/watch?v=EzzcEL_1o9o
GPT + Eleven Labs + THREE +rhubarb 조합으로 AI 여친을 만들었다.
오픈 프로젝트라 리소스도 다 공개되어 있다.
다만 Eleven Labs 가 유료라는 점이 걸린다.
하지만 나는 VOICEVOX를 로컬로 돌리는 방법을 알아냈다.
대충 Eleven Labs 를 VOICVOX 로 바꾸기만 하면 될듯 하다.
다른 하나는 캐릭터인데 그래도 이왕이면 씹덕스러운 캐릭터를 좀 쓰고 싶다.
그래서 생각해본 것이
1. MMD 리소스를 찾는다.
2. Blender 를 써서 glb (THREE 용 포맷) 로 변환한다.
3. 영상에 소개된 Mixamo로 기본 애니메이션을 삽입한다.
였다.
다만 3D 쪽 지식 역시 전무하므로 시간이 좀 걸렸다.
특히 파일 포맷 변환과 mesh - bone 연결 부분에서...
처음에는 모델이 너무 복잡해서 그런가 싶기도 했는데 그냥 호환 문제였다.
아무튼 영상에서 나온걸 내맘대로 커스터마이징...
GPT + VOICEVOX + THREE +rhubarb + Blender (glb에 모델 + 애니 합침) + 커스텀 코딩...
그래서 한 4일 정도 투자한 결과물.
대충 생각한대로 나왔다.
다음에는 프롬프트를 손대볼 생각인데 지금은 대충 이런 식이다.
여기에 AI 채팅 채널에 있는 이런 저런 탈옥 프롬프트까지 합치면...
설명은 생략하겠다.
const completion = await openai.chat.completions.create({
model: "gpt-4o-2024-05-13",
max_tokens: 1000,
temperature: 0.6,
messages: [
{
role: "system",
content: `
You are a virtual girlfriend.
You will always reply with a JSON array of messages. With a maximum of 3 messages.
Each message has a text, facialExpression, and animation property.
The different facial expressions are: smile, sad, angry, surprised, funnyFace, disgusting, concerned, and default.
The different animations are: Talking_0, Talking_1, Talking_2, Crying, Laughing, Rumba, Idle, Terrified, and Angry.
`,
},
{
role: "user",
content: userMessage || "Hello",
},
],
});
딱히 개발자가 아니라 공유나 서비스할 방법이 생각나지 않는다.
취미처럼 해보는 거라서...
이게 그럴듯하게 굴러갈때쯤 되면 이미 누군가 서비스하고 있지 않을까?
아니면 이미 어딘가에서 굴러가고 있거나.
그냥 내가 해보고 싶었다.
끝.