인터랙션 오브젝트로 채집물을 만들 수 있을까?
이전에 인터랙션 오브젝트 설계 (1), 인터랙션 오브젝트 설계 (2), 인터랙션 오브젝트 설계 (3)에 걸쳐 단순한 인터랙션 오브젝트를 어떻게 만드는지 알아봤습니다. 문득 오딘에 나오는 채집물을 만들 수 있을지 궁금해졌습니다. 실제로는 여기서 검토하는 것처럼 단순하지는 않지만 재미 삼아 이전에 만들었던 인터랙션 오브젝트로 오딘의 광물을 만들 수 있을지 알아보겠습니다. 먼저 오딘의 광물 동작을 정리해봅시다.

- 광물 오브젝트는 필드에 놓여 있어 다른 플레이어도 볼 수 있다.
- 광물에 다가가면 인터랙션 버튼이 나타난다.
- 인터랙션 버튼을 터치하면 정해진 시간 동안 채광 애니메이션을 재생한다.
- 채광이 끝나면 광물 아이템을 얻는다.
- 채광이 끝나면 광물 오브젝트가 사라진다.
- 광물 오브젝트는 정해진 시간 후에 필드에 다시 나타난다.
여기까지만 봐서는 인터랙션 오브젝트와 동작이 비슷해 보입니다. 인터랙션 오브젝트 설계 (3)에서 만들었던 구조를 기준으로 데이터를 채워 보겠습니다.
- 인터랙션 오브젝트
- 이름: ‘광물’
- 상태
- 상태1: '스폰됨'
- 애니메이션
- 인터랙션가능?: ‘가능’
- 다음상태이름: ‘상태2’
- 상태전환조건: ‘플레이어 인터랙션’
- 상태전환옵션: ‘없음’
- 상태2: ‘채광됨’
- 애니메이션
- 인터랙션가능?: ‘불가능’
- 다음상태이름: ‘없음’
- 상태전환조건: ‘없음’
- 상태전환옵션: ‘없음’
- 전환상태
- 상태1 → 상태2
- 애니메이션: ‘광물이 쪼개지는 애니메이션’
- 시간: ‘5초’
- 인터랙션
- 인터랙션 거리: ‘1미터’
- 인터랙션 버튼:
- 버튼 에셋 경로
- 버튼이름: ‘채광’
- 인터랙션 시간: ‘5초’
- 플레이어 애니메이션: ‘클래스 별 채광 애니메이션’
대강 비슷하긴 한데 이렇게 써놓고 보니 문제가 있습니다. 오딘에서 채집물은 채집이 끝나면 채집물이 채집되는 애니메이션을 재생한 다음 서서히 사라집니다. 서서히 사라지는 동작을 ‘채광됨’ 애니메이션에 포함할 수도 있지만 아티스트가 매번 채집물 애니메이션의 두 번째 상태에 서서히 사라지는 항목을 포함하도록 하는 건 썩 좋은 생각이 아닐 것 같습니다. 또 나무를 베는 동작을 생각해보면 나무가 서있다가 벌목을 해서 쓰러지는 애니메이션을 재생하고 쓰러져 있는 상태가 된 다음에 서서히 사라져야 하므로 쓰러진 상태까지는 애니메이션으로 제어하고 서서히 사라져가는 동작은 공용으로 처리하는 것이 좋겠습니다. 이를 반영해 봅시다.
- 인터랙션 오브젝트
- 이름: ‘광물’
- 상태
- 상태1
- …
- 표현: ‘표준’
- 상태2
- …
- 표현: ‘사라짐’
각 상태마다 표현 방법을 정의할 수 있게 할 겁니다. ‘표준’은 상태에 해당하는 애니메이션을 재생하는 것입니다. 애니메이션 설정에 따라 반복해서 재생하거나 마지막 프레임을 반복하고 있을 수 있고 이는 아티스트의 애니메이션 제어에 따릅니다. ‘상태2’의 표현 방법인 ‘사라짐’은 이 상태에서 애니메이션을 한 번 끝까지 재생하고 나면 서서히 사라지게 만듭니다. 서서히 사라지는 효과는 인터랙션 오브젝트의 데이터를 입력하는 사람이 아티스트의 도움 없이 설정할 수 있습니다.
이제 광물은 스폰됨 상태였다가 플레이어가 채광하는 인터랙션을 거치며 조금씩 쪼개지는 애니메이션을 재생하며 채광됨 상태가 완전히 쪼개진 상태의 애니메이션을 재생한 다음 서서히 사라지게 됩니다. 지난번에 알아본 단순한 인터랙션 오브젝트로 오딘의 채집물을 만들 수 있을 것 같습니다. 다만 오딘의 채집물은 이 정도 시스템으로 흉내낼 수 있도록 단순하게 만들어져 있기 때문에 따라할 수 있었습니다. 만약 채집물이 보상을 여러 개 가지고 있고 남은 보상에 따라 외형이 서서히 변하는 등 보다 복잡한 규칙으로 만들어져 있었다면 단순한 인터랙션 오브젝트만으로는 따라할 수 없었을 텐데 다행입니다.