이터니티 개발 관련 공식 자료를 아카이빙 하기 위한 페이지입니다.

왜 앉지를 못하니?

2025. 12. 11

안녕하세요~! 체어킹 입니다.


이번 글에선, 자연스러운 의자 앉기를 위해 고군분투한 과정을 소개 드리고자 합니다.

재밌게 봐주세요~ 꾸벅~!



 상태의 의자 앉기, 어떤 점이 아쉬울까?

"의자 근처에서 휴식을 하면, 다가가 자연스럽게 앉았으면 좋겠어요."

 말은 의자 앉기 모션을 개발하기 위한  미팅에서 들었던 의견입니다.

자연스럽게 앉는다는 것은 어떤 의미일까요?


앉기

서기



갑자기 앉을 위치와 자세로  바뀌고, 다리도 의자에 묻혀 있고...

의자에 파묻힌 채로 서기도 합니다


현재 플레이오네 엔진 상황을 살펴보니, 앉기와 서기 동작에서 문제가 있었습니다.

갑자기 위치가  바뀌고, 다리가 의자에 파묻히는 어색한 모습이 보였죠.

 이런 일이 생길까요?

캐릭터마다 키와 다리 길이가 다르고, 의자 크기도 제각각이기 때문인데요.

어떻게 해야 자연스러울지 고민해 보고 계획을 세워봅니다.


자연스러운 앉기 구현을 위한 개발 포인트

  • 1.앉기 시작 위치

  • 다리 길이가 서로 다르기 때문에, 작은 캐릭터는  가까운 위치에서, 
     캐릭터는 조금  떨어진 위치에서 앉기 시작해야 자연스러울  같습니다.

  • 2.앉기 준비

  • 앉기 시작 위치와 방향으로  번에  돌지 않도록, 부드럽게 보간을  주면 보다 자연스러울  같습니다.

  • 3.앉기

  • 엉덩이 위치를 의자 높이에 맞추되,  번에 이동시키지 않고 모션이 진행되는 동안 서서히 보간하면 자연스러울  같습니다.

  • 4.앉기 도착 위치

  • 작은 캐릭터는 의자 앞쪽에,  캐릭터는   깊숙한 위치에 앉게 해야 자연스러울  같습니다.

  • 5.앉았을  높이

  • 작은 캐릭터의 발이 바닥에서 뜨는 것은 괜찮지만,  캐릭터의 발은 땅에 파묻히게 됩니다.

  • 캐릭터의  위치와 각도를 지형에 맞춰 자연스럽게 조정하는 기능인, 
    Foot IK를 활용해 발을  위에 있게 해줘야겠습니다.

  • 6.서기

  • 보정했던 위치에서 다시 돌아갈 때도 보간을 사용해야 부드럽게 동작이 연결됩니다.

  • 7.섰을  위치

  • 서기가 끝났을 때는 앉기 시작했던 위치로 돌아가도록 처리하면 전체 과정이 매끄럽게 연결될  같습니다.

이렇게 일곱 가지 요소를 적용하면 훨씬 자연스러운 동작이  것입니다.


"아, 그리고 휴식 스킬을 사용 했을  반경 5m내에 의자가 있으면 찾아가 앉을  있어야 합니다!"

...이런. 제가 놓친 부분이 있었네요.

'0. 의자에 앉기 위해 다가가기'  추가해봅니다.

이제  여덟 개의 목표를 달성하면 자연스러움을 구현할  있겠지요?


0. 의자에 앉기 위해 다가가기

  • '이건 간단하지. 그냥 다가가면 되잖아?' 라고 생각했으나...


  • (아니!)

  • 캐릭터 최대 충돌 박스 크기를 고려해 네비게이션 메시(캐릭터가 이동할  있는 영역)를 생성하다 보니, 
    의자에 접근할  없는 경우가 생겼습니다.

  • 결국 담당자 분께 사정을 말씀 드려 의자 충돌 박스를 조절하고 다가갈  있는 의자로 수정을 합니다.

  • 마음이 편해졌습니다. 이제 다음으로 넘어가 봅니다.

1. 앉기 시작 위치

  • 작은 캐릭터(예: 10살 인간)와  캐릭터(예: 17살 자이언트)는  차이가 큽니다.

  • 작은 캐릭터는 의자 가까운 위치에서,  캐릭터는 상대적으로 다리가 길기 때문에 
      위치에서 앉기 시작해야 합니다.

  • 이러한 다양성은 데이터 애셋을 만들어 종족별, 나이별로 설정할  있도록 했습니다

2. 앉기 준비

  • 앉을  바라보는 방향은 의자 방향,  의자에 다가갔던 방향 반대쪽이 되어야 합니다.

  •  길찾기로 앉을 위치까지 이동했더라도 약간의 오차가 발생할  있어,  위치 오차도 보간으로 맞춰줍니다.

  •  과정은  0.2초 정도의 시간을 줘서 자연스럽게 처리합니다.

3. 앉기

  • 앉는 모션을 재생하면서 동시에 엉덩이 위치를 의자의 앉는 위치에 서서히 맞춥니다.

  • 플레이오네 엔진에서는 앉기 전에 높이를 맞추는 과정에서 튀는 현상이 있었는데,
    애니메이션  목표 위치까지 보간으로 이동시키는 추가 처리를  개선했습니다.

4. 앉기 도착 위치

  • 1. 앉기 시작 위치 같은 이유로, 작은 캐릭터는 의자 앞쪽에,  캐릭터는 의자 안쪽에 앉도록 설정했습니다.

  •  역시 데이터 애셋에서 종족별, 나이별로 조절할  있게 했습니다.

5. 앉았을  높이

  •  캐릭터는 엉덩이를 의자에 맞춘 순간 다리가 땅에 파묻히는 문제가 발생합니다.

  • 캐릭터의  위치와 각도를 지형에 맞춰 자연스럽게 조정될  있도록, 
    Foot IK 기능을 사용해 다리를 자연스럽게 들어 올리도록 했습니다.

6. 서기

  • 서는 모션을 하는 동안 다시 원래 위치로 돌아갑니다.

  • 제자리에서 서기만 하면 서기가 끝났을  의자에 묻힌 상태가 되기 때문에, 
    위치 보간을 통해 자연스럽게 서도록 처리했습니다.

7. 섰을  위치

  • 목표 위치는 처음에 앉기 시작한 위치로 설정합니다.


 결과...

인간 열살

자이언트 열일곱살



앉고 서는 동안의 보간을 적용한 결과

발에 Foot IK를 적용해  위에 있도록 처리한 결과

훨씬 자연스러워졌습니다!


추가적으로, 원래 IK는  키로 인해 앉았을  다리가 땅에 묻히는 경우에만 사용하려고 했지만, IK가 생각보다  동작해 키가 작은 캐릭터에게도 적용해 보았습니다.


인간 열살 IK


짧은 다리를 힘껏 뻗어 앉으려는 모습이 귀엽긴 하지만, 10살 키에는 너무 높은 의자였는지 부자연스러운 연출 구간이 있네요.

힘겹게 앉기 보다는, 자연스러운 연출을 위해 점프해서 앉는 모션을 추가하는  개선의 여지가 있어 보입니다.

앞으로도 ‘더욱 자연스러운 의자 앉기’를 위해 계속 개선해 나가겠습니다!


이상 체어킹 이었습니다. <(O_O)




무엇이든 앉혀 드립니다.


출처: https://mabinogi.nexon.com/eternity/dev_view.asp?id=4893196

이터니티 개발 관련 공식 자료를 아카이빙 하기 위한 페이지입니다.

about|item 정보|Sitemap|공지사항|광고문의
* 이 사이트는 류트 서버 라바뉴가 운영하는 개인 사이트입니다. 업데이트는 개인 일정과 마비노기 플레이를 하고 틈틈이 하고 있습니다.
* 사이트 내 정보는 테스트 서버에서 확인 + 인터넷 검색 + 인게임 확인 + 유튜브 + 제 개인적인 생각 등으로 이루어져있습니다.