아바타 표정 바꾸기

# 학습 과정 소개

AvatarRendererComponent의 `PlayEmotion`을 사용해 플레이어 아바타의 표정을 바꿀 수 있습니다. 특정 입력 키와 표정을 연결 지어 생동감 있게 감정을 표현할 수도 있고, 몬스터에게 맞았을 때 특정 표정을 재생시킬 수도 있습니다. 적극적으로 사용해 유저들끼리의 활발하고 쉬운 의사소통을 할 수 있게 도와주세요.

# 표정 종류

총 22가지의 표정을 제공합니다. 표정은 얼굴마다 다르게 나타나므로 크리에이터가 설정한 얼굴에 따라 가이드의 표정과 다를 수 있습니다

[{"표정":"맞기","key":"Hit","예시":"[png](16396401188336e54b6adf42b4088ad1c61a60f9c8731)"},{"표정":"웃음","key":"Smile","예시":"[png](16395549609346e876f6386bc4eda97306a53e89f0895)"},{"표정":"난처","key":"Troubled","예시":"[png](16395541972918701350d6bd1425384b71f7eef150433)"},{"표정":"울음","key":"Cry","예시":"[png](1639554951149c507945a898d4ec58fd2629df70cbeee)"},{"표정":"분노","key":"Angry","예시":"[png](16395560553809d8ab80b78c14f0faec4be3781b0a5fb)"},{"표정":"당황","key":"Bewildered","예시":"[png](16395560679398458bd2b686545c4bb2a8d20fe31f94b)"},{"표정":"곤란","key":"Stunned","예시":"[png](1639556098745cf8aff308154417c80014aa9b6e9d68e)"},{"표정":"토","key":"Vomit","예시":"[png](163955611166849281f37d4bb4107a3dce003f53d1fbc)"},{"표정":"황당","key":"Oops","예시":"[png](1639556132963546e5fdf3cde4a50b027994f3d086744)"},{"표정":"꺄오","key":"Cheers","예시":"[png](16395561463349a5bd1cd4ff8472bbea5a534cb19b75e)"},{"표정":"뽀뽀","key":"Chu","예시":"[png](163955615577069cd9078b46c4f16aabf999e635012bf)"},{"표정":"윙크","key":"Wink","예시":"[png](1639556257543f249e7a3d02a4707bdee12ea1acf54e2)"},{"표정":"눈물찍","key":"Pain","예시":"[png](16395562727335d82e3d6a88242839d6f176747b03346)"},{"표정":"초롱초롱","key":"Glitter","예시":"[png](166684095544355abeeb3a60e4e85a4118483915dfd1d)"},{"표정":"후하후하","key":"Despair","예시":"[png](16395562836016f39a4e3e8a54ef8ae0566e3b8862318)"},{"표정":"뿅","key":"Love","예시":"[png](1639556295930004061735ea14375bd2d90ede8cdc232)"},{"표정":"반짝반짝","key":"Shine","예시":"[png](163955630509906604406ad084f3284149221faaa08ce)"},{"표정":"활활","key":"Blaze","예시":"[png](163955631518406f4825034d74f1cb1952c139f46face)"},{"표정":"흐음","key":"Hum","예시":"[png](1639556324667dee4cdfa35eb41148d1becc71419f1fd)"},{"표정":"꾸벅꾸벅","key":"Bowing","예시":"[png](1639556334026de94b9e28d764207a8bd6e58d4429199)"},{"표정":"앗뜨거","key":"Hot","예시":"[png](163955640187085d52926ecf749ee8d6884447137ecd6)"},{"표정":"메롱","key":"Dam","예시":"[png](1639556413232d9ef215a4d144933ab1ae2fc01aa618b)"},{"표정":"창백","key":"qBlue","예시":"[png](1639556423490af2cf4bd2f4445898d4edc084cc4d99e)"}]

# 아바타 표정 바꾸기

키보드의 숫자키를 1부터 5까지 누르면 각각 다른 표정이 5초 동안 재생합니다.

  1. MyDesk에서 새로운 컴포넌트를 만들고, 스크립트 작성 화면을 엽니다.
  2. Function: 옆의 추가 [png](1635134683611e1fb1dfaa0c94f7386a012836b986188)를 눌러 New를 선택합니다.   
[png](164006572761813e6a63db24c41c8a87930b114f0ae3d)
  3. 함수 이름을 Emote로 변경하고, 더 보기 [png](16345206995612a35d54577d8466da03a9fe452a5218c) 를 선택해 Add Parameter를 두 번 추가해 매개 변수를 입력합니다.  
[png](164006784006957fd839bd3d546f8aa9c9e1639bfb3a0)
  4. `PlayEmotion`을 이용해 재생할 표정을 작성합니다.
  5. Entity Event Handler에 `KeyDownEvent`를 추가하고, 표정 재생을 위해 필요한 입력 키를 작성합니다.


    
    
    @Component
    script EmoteInputHandler extends Component
        @ExecSpace("ServerOnly")
        method void Emote(number key, string userId)
        local avatar = _UserService:GetUserEntityByUserId(userId).AvatarRendererComponent
    
        if key == 1 then
            avatar:PlayEmotion(EmotionalType.Angry, 5) -- 화난 표정을 5초 동안 재생
        elseif key == 2 then
            avatar:PlayEmotion(EmotionalType.Cry, 5)
        elseif key == 3 then
            avatar:PlayEmotion(EmotionalType.Chu, 5)
        elseif key == 4 then
            avatar:PlayEmotion(EmotionalType.Smile, 5)
        elseif key == 5 then
            avatar:PlayEmotion(EmotionalType.Wink, 5)
        end
        end
    
        @ExecSpace("ClientOnly")
        @EventSender("Service", "InputService")
        handler HandleKeyDownEvent(KeyDownEvent event)
        --------------- Native Event Sender Info ----------------
        -- Sender: InputService
        -- Space: Client
        ---------------------------------------------------------
    
        -- Parameters
        -- local key = event.key
        ---------------------------------------------------------
    
        local myUserId = _UserService.LocalPlayer.OwnerId
    
        if key == KeyboardKey.Alpha1 then -- 숫자 1을 누르면, Emote 함수의 key 1 표정 재생
            self:Emote(1, myUserId) 
        elseif key == KeyboardKey.Alpha2 then
            self:Emote(2, myUserId)
        elseif key == KeyboardKey.Alpha3 then
            self:Emote(3, myUserId)
        elseif key == KeyboardKey.Alpha4 then
            self:Emote(4, myUserId)
        elseif key == KeyboardKey.Alpha5 then
            self:Emote(5, myUserId)
        end
        end
    end
    

[gif](1656036982832fc9cbd58c5f241c0a6b505178529fffb)