More Related Content Similar to NDC 2011 영웅전 런칭팀 박영준 (20) NDC 2011 영웅전 런칭팀 박영준1. NDC 2011 마비노기 영웅전 액션 시스템 기민하고 다채로운 .액션 프로토타이핑 비결 . 영웅전 런칭팀 박영준 선임연구원 2. 목차 제 소개 화두 개발자에게도구를 멍석깔기 - 액션스테이트, 자동빌드, 리로딩 시스템 춤사위 - 절차적 기술, 카록 힘겨루기의 비밀, 물리, 카메라 시스템 유저에게도구를 창발적재미요소 – 마나엠버, 중력역전, 프랍골렘의 비밀 독특한게임요소 정리 3. 제 소개 박영준 선임 연구원 (gp2k@nexon.co.kr) 2006년 Tri-D 모바일 게임 2006년 넥슨, 영웅전 프로젝트 피오나, 리시타초기 액션 제작 카메라 시스템 액션 시스템 제작 이비 사이드 이비 변신 1차 카록 스태프 이비 개편 캐릭터 전문 개발자? 4. 소개 요것 들을 어떻게 만들었나비밀얘기를 해드리겠습니다. 잠시 후에 만나뵈요~ 7. 화두? 멋지고 근사한 게임 만들기!? 다양하고 화려한 액션 타격감 차별화 다른 게임에서 없던 새로움을 창조하기 1. 2. 8. 액션 게임 하면 화려하고, 다양한 액션즐길거리 타격감 그 중 액션 다양화가 기본이자 큰 관건 9. 나는 병목이다 모든 공정이 프로그래머로… 흔한 실수… 문제가 뭐냐? 모션 병목 프로그래머 이펙트 사운드 밸런싱 스토리 10. 파생되는 문제점 환… 나는 그냥 모션이 잘 붙나 안 어색한가 한번만 보면 되는데… 소리타이밍이 맞나 크기는 적당한가 확인 하고파… 애니메이터 사운드 담당 최신의 데이터로 지속, 반복적으로 밸런싱테스트를 좀 해야하는데… 악순환 기획자 병목 프로그래머 …… 난 지금 디버깅 중이라 님들 못 도와줌. No, I will not fix your ……. 창의력을 쏟을 여력이 없다. 11. 해결책 데이터 드리븐액션 스테이트 시스템 빌드 자동화 독립적인 빌드 머신 항상 최신의 실행 가능한 빌드 버전을 확보하자. 실시간 리로드 모션 하나 바꿨다고 재시작하면… 인생은 값지게, 코스트는 값싸게! 멍석 깔기… 잉여력을 보다 창의적인 곳에 투자 14. 혹시 이러지 않나요? 숲을 보지 못한 채 나무만 만드는? 하루 종일 엑셀 보면서 데이터만 넣고 있나요? 작업 물이 게임에서 보일 날 만을 손꼽아…? 디자이너가 리소스 붙여 달라고 자꾸 조르나요? 모션 하나 늘어나는 게 부담스러우세요? 이런 분들은 주목! 15. 액션 스테이트란? 본격 데이터 드리븐 모션 컨트롤링 시스템 스테이트 머신(FSM) 기반 영웅전 액션의 기민한 프로토타이핑 초석 A 상태 특정 조건 B 상태 … … 16. 뭐가 필요할까요? 기본적인 요구조건은 간단 액션 게임이니만큼… 키 조작으로액션을 컨트롤 할 수 있으면 장땡 +α 자체적으로 기본적인 밸런싱을 할 수 있으면 각 파트에서 독립적으로 프로토타이핑 가능하게 17. 이게 되면 이런게 좋습니다 누구에게나 게임 만드는 재미를 게임의 재미는? 조립! 숫자만 집어넣고, 툴만 보다 보면 의욕이 떨어짐 시너지 하나씩 조립해 가면서 내 작업물의 결과를 보는 것! 직접눈으로 봐야 시너지 직접 봐야 신나지 시너지! 18. 액션 스테이트의 구성 숲 액션 스테이트 시스템 나무 액션 스테이트 스크립트 시스템 애니메이션 이벤트 시스템 수식 구문 시스템 19. 숲? 액션 스테이트 시스템 애니메이션 이벤트 시스템 이펙트 … 공격판정on/off 유저 입력 모션 출력 액션 스테이트 스크립트 시스템 내,외부적 상태 수식구문 시스템 공격 대미지 … 각종 타이밍 20. 어떻게 쓰나? 논리적인 단계로 작성 자세한 구현은 몰라도 유저의 어떤 입력에 어떻게 반응할 것인가를 논리적 단계로 작성 21. 우리는 이렇게 써요… 4타 스매시 싸우전드니들 액션 구성 찌르기 시작 모션 오른쪽 찌르기 왼쪽 찌르기 왼쪽 마무리 모션 오른쪽 마무리 모션 기본 자세 23. 나무? 애니메이션 이벤트 시스템 수식 구문 시스템 시작 사운드 출력 공격 시작 공격 끝 이펙트 출력 공격판정 타이밍 계산 공격 대미지 계산 25. 꿈같은…비하인드 스토리… 2008년 12월 기존의 액션 시스템 갈아 엎어서 시작! 얼마전G-Star 나갔었는데 새로 게임 만드는 느낌… BUT…… 2009년 3월 20일 CBT! 피말리는마이그레이션 여태껏 잘 되던 게임이 지금엔 되는게 없다! 액션 시스템 갈아엎고 1개월 간 모션 복구, 3개월 뒤 출시 늦었다고 생각할 때가 이른 것! 이거 없었으면… …… 용사님… 27. 자동 빌드 시스템의 구성원 소스 컨트롤 Alienbrain 자동 빌드시스템 Cruise Control .Net - 정기 빌드 - 파일 변화 감지 자동 빌드 빌드스크립트 Nant 28. 빌드머신이 하는 일 클라이언트 풀 리빌드7분 컴파일타임 최적화 멀티 프로세스 컴파일 (VS2008) 그래픽 리소스 빌드– 모델링, 애니메이션 1~2분 데이터 빌드– 기획데이터, NPC 대사1분 29. 좋은 점 항상 최신의 실행 가능한빌드 버전 특정 일자에 빌드된빌드 버전도 받을 수 있음 작업자가 작업물을 올리면 빌드가 되므로 버그 추적에 굿! 언제나 실행 가능! 단순 조립에 따로 시간을 들일 필요가 없음 약 10분만에 뚝딱! 30. 나쁜 점 빌드 복구하는 시간..OTL… 빌드 복구하는 시간..OTL… 빌드 복구하는 시간..OTL… 빌드 복구하는 시간..OTL… 빌드 복구하는 시간..OTL… 빌드 복구하는 시간..OTL… 빌드 복구하는 시간..OTL…… 32. 리로딩… 설계 초반부터 리로딩 가능한 구조로 작업 개발 콘솔이 있다면 간단히 콘솔 명령어로… 솔직히 안 쉽습니다…… 안 쉽죠잉~ 36. 개발자에게 도구를 II. 춤사위 이제 멍석을 깔았으니까 그 위에서 마음껏 놀아보자~~~ 절차적 애니메이션 기법 물리를 게임에 녹이기 똑똑한 카메라 38. 절차적 애니메이션 기법? 최종 단계의 모션을 제작 X 각 단계별 모션재료를 모아 합성하여 최종 모션을 자동 생성하는 것. 인생은 값지게, 코스트는 값싸게 39. 개발자에게 도구를II. 춤사위 1. 절차적 애니메이션기법 시퀀스 트랜지션 모션 A 모션 B 트랜지션 구간 비교적 간단하나 효과 큰 것 중 하나 없으면 아쉬움 애니메이터가 각 모션들의 이음매를 덜 고심 보다 창의적이고 퀄리티 높은 액션 연출 가능 40. 어떻게 하는 건데? 간단합니다 트랜지션 하려는 n (n >=2) 개의 모션을 큐잉 모든본에 대해 다음을 계산 Lerp(Q1, Q2, ratio) 모션 A 모션 B Q2 Q1 42. Hand IK가 뭐하는 건데? Inverse Kinematics ( 역 운동학) 말단 관절(손, 발)로 특정 위치로 이동하게 중간 관절은 자동으로 계산되어 움직임 소위 손 갖다 대기 43. 더 필요한 것 손이 못 박힌 것 처럼 움직임 손을 꽉 잡게 하고 싶다. 44. IK 한 위치에서 BoneMerge Blending 다음 보간시에 위치 재조정 … IK + Bone Merge Bone Merge Blending IK Blending 48. 카록!? 신 캐릭 온 몸이 무기 얼굴도…. 핸드 액션특화! 손으로 잡고 때리고 칼 보다 정교해야 칼은 스치면 맞는가… 싶겠지만 손은 잡아야 된다. 물리적움직임이 극대화 우리의 강점 51. 절차적 모션 블렌딩 모션의 재료들을 만든 다음 그 재료를 적절히 합성 최종 모션을 자동 생성 52. 왜 모션 블렌딩? 작업 시간 단축? 작업을 가능케! 다양한 환경, 다양한 몬스터에상호작용 모든모션 만들기 비쌈! 보다 정밀한 모션 연출 몬스터사이즈가 달라질 수도 있고… 물체가 움직일 수도 있고… 이걸 다 모션으로 만들 순 없다. 56. 기본적인 접근 모든 엔티티가 물리 인스턴스를 가짐 모든 엔티티간의 물리 상호 작용이 가능 창발적인 요소를 섞어라. 물리 기반 플레이의 다양성 공은 어디로 튈지 모르기에 재미있다. 그냥 가지고 노는것만으로도 재미가 있게 57. 모든 것이 물리? 모든 물체는 물리적 상호 작용을 할 수 있다 기술 실험 훗날,갈고리 사슬 액션의 모토가 되었다 58. 물리로 놀거리 창발적인 요소를 섞어라 그냥 가지고 노는것만으로도 재미가 있게 다른 파티원을 기다릴 때의 지루함을 물리적 놀거리로 승화 60. 카메라 시도1 맵에 박힌 카메라 – G모 게임처럼… 너무손이많이갔다 맵재활용면이나물리적액션을다양화시키는면등에무리가있음 62. 카메라 시도3 맵만 만들어 놓으면 카메라 워크는 신경 안 써도 되게. 착안! – S모 사의 L모게임 변형되는 원형체의 COM*을 따라서 카메라를 움직이면!? 맵이 어떻게 생겼든 부드러운 이동 가능? *COM : 질량 중심(Center Of Mass) 64. 이젠 그랬으면 좋겠네… 프로그래머 잡무에서 해방 가끔 빌드 머신 애먹임…OTL… 모델러 항상 리테일퀄리티의 게임 화면에서 자신의 모델을 감상 가능 애니메이터 모션 바로바로 볼 수 있음 모션 이음매 노이로제에서 해방 독창적인 액션 구상에 시간을 더 씀 월드 모델러 카메라 안 박아도 되니 살 것같다 하지만 예외 처리가… OTL… 기획자 기획 데이터를 바로 바로 테스트해 볼 수 있네 값진 인생 살 맛 나는 세상~ 67. 중력역전 맵에 물리 프랍이 많다. 띄워 올리자! 유저에게 도구를 1. 창발적 재미 더하기 73. 프랍골렘 블랙홀 같은 느낌으로 맵에 있는 프랍을 흡입 물리 프랍을 보다 적극적으로 공격에 활용 유저에게 도구를 1. 창발적 재미 더하기 78. 필요한거? 프레임 동기화 기술 손 발이 딱딱 맞는 찰진 그래플링 모션 연출 그래플링 모션 싱크 렉방에서도거뜬해야 81. 뭐하는거? 무기를 물리 오브젝트로 활용 집어 던져서 공격이 가능함 다시 가서 집어 들 수 있음 무기 전환 기둥 vs맨손 전환 (강하고 느림 vs빠르고 약함) 액션 타입을 전략적으로 선택 가능 83. 리프트 맵에 보이는 건 다 물리 프랍 들고 휘두르고 던지게 하자 크기, 종류에 따라 다른 모션, 다른 공격 패턴 유저에게 도구를 2. 독특한 게임 요소 84. 유저에게 도구를 2. 독특한 게임 요소 보스 피니시스샷 카메라 AI 보스 피니시 순간정지하여 자동으로 간지나는 스샷을 마구 방출한다. 카메라의 위치, 각도는 모두 AI가 계산 팀 내 사진 전문가의 조언을… T 85. 보스 피니시스샷 카메라 AI 보스 피니시 순간 정지하여 간지나는 스샷을 마구 방출한다. 카메라의 위치, 각도는 팀 내 사진 전문가의 조언을… 87. 버그 지론? 뻔 히 보이는 것도 만들고 보면 버그가 생긴다 자라보고 놀란 가슴 솥뚜껑 보다 놀란다지만 버그 때문에 새로움에 시도를 못하랴? 버그는 또 다른 창의적 플레이의 요소 물론 버그 잡는 일은 참 힘들고 고된 의무 하이 리스크 하이 리턴 88. 정리 기민하게 개발자에게 도구를 멍석깔고- 액션 시스템 춤추고 - 절차적 기법, 물리 다채롭게 유저에게 도구를 창발적 재미 더하기 독특한 재미요소 보다 창의적인데 에너지 집중 89. 게임 개발은 발상과 실현을 한곳에서 이루는 최고로 창의적인 행위입니다. 지속적으로 창의력을 키우시고 창의력을 키울 수 있는 여건을 스스로 개척해 보세요. 명심하세요 인생은 값지게, 코스트는 값싸게 91. Q&A 영웅전 관련 세션 5월 30일 월요일 5월 31일 화요일 6월 1일 수요일 6월 3일 금요일 92. Reference 자동 빌드 관련 http://www.alienbrain.com/ http://nant.sourceforge.net/ http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET 이미지 출처 http://www.flickr.com/photos/codepo8/2051716273/ http://www.flickr.com/photos/andrewmaciejewski/3627890636/ http://www.flickr.com/photos/striatic/20181712/ http://www.flickr.com/photos/25559122@N06/4494862270/ http://www.flickr.com/photos/traitlinburke/3728905329/ http://www.flickr.com/photos/clearlyambiguous/165316414/ http://www.flickr.com/photos/cheekyneedle/201733816/ http://www.flickr.com/photos/joost-ijmuiden/3613829273/ http://www.flickr.com/photos/munaz/2483674584/ http://www.flickr.com/photos/nicmcphee/276227701/ http://www.flickr.com/photos/68489630@N00/99797066/