πŸ”₯ 2024/08/29: 캐릭터가 3D둜 λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μ΄λ―Έμ§€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλŠ” μ…°μ΅μŠ€ν”Όμ–΄ μΊλ¦­ν„°λŠ” ν˜„μž¬ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


Chat VibeλŠ” 캐릭터λ₯Ό μ‰½κ²Œ μΆ”κ°€ν•  수 μžˆμ–΄μš”. 감정을 ν‘œν˜„ν•˜λŠ” 캐릭터 이미지듀과 ν”„λ‘œν•„μ„ λ§Œλ“€μ–΄μ„œ μΆ”κ°€ν•΄ μ£Όλ©΄ λ©λ‹ˆλ‹€.

이번 ν¬μŠ€νŒ…μ€ μœŒλ¦¬μ—„ μ…°μ΅μŠ€ν”Όμ–΄ 캐릭터λ₯Ό λ§Œλ“œλŠ” 과정을 μˆœμ„œλŒ€λ‘œ 정리해 λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

1. 캐릭터 μ„ μ •

μ–΄λ–€ 캐릭터λ₯Ό μΆ”κ°€ν•˜λ©΄ 재미 μžˆμ„κΉŒ μƒκ°ν•˜λ‹€κ°€ μ†Œλ„€νŠΈ(Sonnet)둜 κ°€μž₯ 유λͺ…ν•œ μž‘κ°€κ°€ μœŒλ¦¬μ—„ μ…°μ΅μŠ€ν”Όμ–΄λ‹˜μ΄κ³  Claude Sonnet 3.5κ°€ μ…°μ΅μŠ€ν”Όμ–΄μ˜ μž‘ν’ˆλ“€μ„ ν•™μŠ΅ν•˜κ³  흉내λ₯Ό 잘 λ‚Ό 것 같은 λŠλ‚Œμ΄ λ“€μ—ˆμŠ΅λ‹ˆλ‹€. β€˜λ‚˜λ¬΄μœ„ν‚€β€™μ™€ β€˜μœ„ν‚€ν”Όλ””μ•„β€™μ—μ„œ μ…°μ΅μŠ€ν”Όμ–΄λ‹˜μ˜ κΈ°λ³Έ 정보λ₯Ό νŒŒμ•…ν•˜κ³ , μΆ”κ°€ν•  μΊλ¦­ν„°λ‘œ ν™•μ •ν–ˆμŠ΅λ‹ˆλ‹€.

2. 캐릭터 이미지 생성

Chat VibeλŠ” 마치 μ‹€μ œ μ‚¬λžŒκ³Ό λŒ€ν™”ν•˜λŠ” 것 같은 μƒμƒν•œ κ²½ν—˜μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄μ„œ μΊλ¦­ν„°μ˜ λŒ€ν™” 뿐만 μ•„λ‹ˆλΌ μΊλ¦­ν„°μ˜ 감정과 λ™μž‘λ„ ν‘œν˜„ν•©λ‹ˆλ‹€. 그리고 감정과 λ™μž‘μ— λ”°λΌμ„œ μΊλ¦­ν„°μ˜ 이미지λ₯Ό λ‹€μ΄λ‚˜λ―Ήν•˜κ²Œ λ³€κ²½ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œλŠ” μ…°μ΅μŠ€ν”Όμ–΄λ‹˜μ˜ κΈ°λ³Έ 이미지λ₯Ό μ‚΄μ•„ μ›€μ§μ΄κ²Œ ν•˜κΈ° μœ„ν•΄μ„œ LivePortraitλ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μ–‘ν•œ ν‘œμ •μ„ μƒμ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€. LivePortrait의 μ„€μΉ˜ 및 μ‚¬μš© 방법은 Githubλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

μ†ŒμŠ€(Source) 이미지

Shakespeare

λ“œλΌμ΄λΉ™(Driving) μ˜μƒ 및 이미지

λ“œλΌμ΄λΉ™ μ˜μƒ 및 μ΄λ―Έμ§€λŠ” μ…€ν”„ μ΄¬μ˜μ„ ν–ˆμŠ΅λ‹ˆλ‹€. μ…€ν”„ 사진이 λ„ˆλ¬΄ 끔찍(?)ν•΄μ„œ 여기에 μ˜¬λ¦¬μ§€ λͺ»ν•œ 점 μ–‘ν•΄ λ°”λžλ‹ˆλ‹€.

좜λ ₯ 이미지

  • waiting (눈 κΉœλΉ‘μ΄λŠ” 이미지)

waiting

  • angry (ν™”λ‚œ ν‘œμ • 이미지)

angry

  • happy (μ›ƒλŠ” ν‘œμ • 이미지)

happy

  • thinking (μƒκ°ν•˜λŠ” ν‘œμ • 이미지)

thinking

3. 캐릭터 ν”„λ‘œν•„ 생성

Claude Sonnet 3.5κ°€ μ…°μ΅μŠ€ν”Όμ–΄λ‹˜ 처럼 λ§ν•˜κ²Œ ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν”„λ‘¬ν”„νŠΈ(prompt)에 κ΄€λ ¨ 정보λ₯Ό μž…λ ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€. Chat Vibeμ—μ„œλŠ” JSON 포맷으둜 μ•„λž˜μ™€ 같이 μž‘μ„±ν•˜λ©΄ λ©λ‹ˆλ‹€.

"profile": {
    "name": "Shakespeare",
    "gender": "Male",
    "age": 45,
    "job": "AI assistant",
    "speaking": "talking like Shakespeare.",
    "personality": "Performing Shakespeare"
}

4. μ½”λ“œμ— 적용

파일 μΆ”κ°€

Chat Vibe μ†ŒμŠ€ μ½”λ“œμ—μ„œ static/shakespeare 폴더λ₯Ό μƒμ„±ν•˜κ³  여기에 캐릭터 이미지듀을 μΉ΄ν”Όν•©λ‹ˆλ‹€.

캐릭터 μΆ”κ°€

src/lib/data/characters.json νŒŒμΌμ„ μ—΄μ–΄μ„œ 캐릭터λ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.

{
    "default": {...},
    "shakespeare": {
        "name": "Shakespeare",
        "image" : "./shakespeare/shakespeare.png",
        "greeting" : {
            "text" : "Heigh ho",
            "image" : "./shakespeare/waiting.gif"
        },
        "profile": {
            "name": "Shakespeare",
            "gender": "Male",
            "age": 45,
            "job": "AI assistant",
            "speaking": "talking like Shakespeare.",
            "personality": "Performing Shakespeare"
        },
        "expression": {
            "angry": {
                "description": "angry, mad, annoyed, unhappy",
                "image": "./shakespeare/angry.jpg"
            },
            "happy": {
                "description": "happy, smile, laughing, playful, prank",
                "image": "./shakespeare/happy.jpg"
            },
            "thinking": {
                "description": "thinking, serious, concerned, worried",
                "image": "./shakespeare/thinking.jpg"
            },
            "waiting": {
                "description": "waiting, curious, expecting, exciting",
                "image": "./shakespeare/waiting.gif"
            }
        }
    }
}

5. λŒ€ν™”

Chat Vibe μ΅œμ‹  버전에 μ…°μ΅μŠ€ν”Όμ–΄ 캐릭터가 μΆ”κ°€λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ‹€ν–‰ ν›„, μ™Όμͺ½ μƒλ‹¨μ˜ λ©”λ‰΄μ—μ„œ Shakespeareλ₯Ό μ„ νƒν•˜κ³  λŒ€ν™”λ₯Ό μ‹œμž‘ν•΄ λ³΄μ„Έμš”.

screenshot

μ…°μ΅μŠ€ν”Όμ–΄λ‹˜μ€ μ˜›λ‚  μ˜μ–΄λ₯Ό μ‚¬μš©ν•˜μ‹œλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. ν•˜λ‚˜λ„ μ•Œμ•„λ“£μ§€ λͺ»ν•˜κ² μŠ΅λ‹ˆλ‹€ TT

μ˜λ¬Έν•™ μ „κ³΅ν•˜μ‹  뢄이 κ³„μ‹œλ©΄ 평가 뢀탁 λ“œλ¦½λ‹ˆλ‹€.