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