일단 긴글
- 액션 카메라 컨트롤 시스템
보스를 만났을 때, 막타를 때릴 때, 커다란 스킬을 쓸 때 등에서 턴제 게임에 어울리는 카메라 연출이 들어가야 합니다.
턴제 게임에서 역동적인 카메라 연출이 ‘힘들고 다른’ 것이지 ‘불가능’ 한 것이 아닙니다.
그리고 이 카메라 연출은 액션게임의 그것과 같은 수준의, 트리거 시스템에 연동되는 섬세한 카메라 조작 툴이 필요합니다.
툴 제작 외에 따로 도입하거나 연구하여야 할 기술 과제는 없으며, 툴 제작 없이 인력만으로도 가능한 분야이긴 합니다.(효율이 낮지만) 적절한 툴의 개발과, 이를 이용한 수작업이 필수로 보입니다.
2. 타격시 렉돌(Ragdoll)을 포함한 물리 시스템
타격시 타격감을 향상시킬때 쓰이는 기능의 예상되는 일람은 다음과 같습니다.
- 캐릭터를 띄워서 날려 보낼 수 있다.
- 강/약에 따라 캐릭터가 날라가던가, 밀리던가 등의 변화가 있다.
- 캐릭터가 날라가서 주변과 상호작용 할 수 있다.
- 캐릭터의 관절이 절차적 애니메이션 (procedural animation) 을 통해 자동으로 애니메이션이 생성된다.
이를 위해 캐릭터와 오브젝트들의 다이나믹한 상호작용을 위해 물리 시스템의 추가가 필요합니다.
일반적으로 캐릭터를 날려 버리는 것은 기본으로 내장되어 있는 피직스 시스템으로 충분하지만,
자연스러운 캐릭터 애니메이션을 위해서는 렉돌 피직스 (Ragdoll physics : 주로 캐릭터의 죽는 모습에 사용되는 절차적 생성 물리 시스템) http://ko.wikipedia.org/wiki/%EB%9E%98%EA%B7%B8%EB%8F%8C_%ED%94%BC%EC%A7%81%EC%8A%A4 기능이 추가로 필요합니다.
렉돌을 직접 만져 보시려면 http://www.planetdan.net/pics/misc/tetka.html 에 가 보세요. 캐릭터를 집어서 던질 수도 있습니다.
2-1 렉돌/물리를 사용하기 위한 클라이언트 기술적 요구사항 - 축약된 기능구현으로 해결.
턴제라는 게임의 특성상, 렉돌의 자유도를 100% 로 할 이유는 없어 보입니다. 렉돌 피직스의 각종 변칙적 요인들은 다양한 상태의 물리 소스에서부터 비롯되는데, 실시간 전투라면 다양한 공격이 다양한 경우에 발생할 수 있지만 턴제 전투에서는 물리적 벡터 자체가 한정적이고 변수가 거의 없다시피 하므로, 미리 힘을 규격화하여 계산해 놓고, 이를 이용하는 방식을 사용하는 등으로 예상치 못한 변수를 줄이고, 화면을 제어할 수 있을 것으로 보입니다.
단, 클라이언트 상에서 지형과 오브젝트들의 3차원 충돌처리를 해 놓아야 하며 이는 지금도 가능한 상태입니다.
기타 사소한 문제들이 예상될 수 있지만 대부분 극복 가능한 수준이며, 어느 정도의 시행착오만 필요할 것으로 예상됩니다.
그래픽적으로는 , 관절이 꼬이는 candy wrap 현상등이 일어날 수 있어서 이 부분을 개선해야 하나. 사실상 화면에 보여지는 캐릭터의 사이즈로 볼 때 개선하지 않아도 별 문제가 없으리라 보여집니다.
또한 렉돌의 영향에서 벗어나 있는 망토와 머리카락등의 물리 기술은 따로 개발하여야 합니다.
고급 기술로 망토와 같은 천을 리얼하게 움직이게 할 수 있는 Cloth physics 를 사용할 수 있지만, 이번 경우에는 사용하지 않고 bone을 이용한 물리 기술로 응용하여도 충분할 듯 합니다. (물론, Cloth Physics 를 먼저 검토해볼 예정입니다)
2-2 렉돌/물리를 사용하기 위한 서버 기술적 요구사항 - 기존대로 2D로 동작. 변화없음.
턴제라는 게임의 특성상, 공격할때의 물리적 벡터가 충분히 예측 가능하므로 다소 변수가 있더라도 대부분 큰 문제없이 계산할 수 있을 것으로 보입니다. 물론 기울어진 언덕 등으로 인해 예측과 다른 현상이 일어나더라도, 서버는 기존대로 2D 동작해도 상관 없을 것으로 보입니다.
캐릭터가 죽었을 때는 서버는 계산할 필요 없이 클라이언트 단에서만 물리 표현을 하고 끝내면 되며,
캐릭터가 날라간 후에 죽지 않고 다시 살았다 하더라도 서버에서는 이동한 (이동했으리라 생각되는) 위치만 미리 점유하여 가지고 있다가 날라간 캐릭터가 다시 일어나 그 셀로 걸어오면 문제 없습니다.
이렇듯, 완전한 실시간 액션게임보다는 조금 못하겠지만 간략화된 기술로 게임의 특성에 어울리는 충분한 효과를 낼 수 있으리라 보여집니다.
2-3. 렉돌 사용에서 예상되는 문제사항 및 결론 - 사용 가능.
기획적 문제 :
타겟 캐릭터가 위치를 이동해 버림으로써 생길 수 있는 기획적 문제. 이건 팀장이 정리중입니다.
퍼포먼스 문제 :
정확하게는 조사를 해봐야 알겠지만, 분명히 부하를 유발합니다. 사양이 예상보다 높아질 수 있으며, 저사양 또는 물리엔진이 돌아가지 않는 환경에서는 어떻게 표현할 것인지 연구해 볼 필요가 있습니다.
기타 예상하지 못한 문제들 :
물리 시스템의 렌덤성으로 인해, 예상하지 못한 움직임을 보이는 경우가 생길 수 있습니다. 이런 경우를 위해 시행착오의 시간이 필요할 듯 합니다.