NDC 2011마비노기 영웅전 액션 시스템기민하고 다채로운        .액션 프로토타이핑 비결        .영웅전 런칭팀박영준 선임연구원
목차제 소개화두개발자에게도구를멍석깔기 - 액션스테이트, 자동빌드, 리로딩 시스템춤사위 - 절차적 기술, 카록 힘겨루기의 비밀, 물리, 카메라 시스템유저에게도구를창발적재미요소 – 마나엠버, 중력역전, 프랍골렘의 비밀독특한게임요소정리
제 소개박영준 선임 연구원 (gp2k@nexon.co.kr)2006년 Tri-D모바일 게임2006년 넥슨, 영웅전 프로젝트피오나, 리시타초기 액션 제작카메라 시스템액션 시스템 제작이비사이드 이비변신 1차카록스태프 이비 개편캐릭터 전문 개발자?
소개요것 들을 어떻게 만들었나비밀얘기를 해드리겠습니다.잠시 후에 만나뵈요~
Coming Soon…
개발자에게 도구를I. 멍석 깔기기민하게!!!
화두?멋지고 근사한 게임 만들기!?다양하고 화려한    액션타격감 차별화다른 게임에서 없던    새로움을 창조하기1.2.
액션 게임 하면화려하고, 다양한 액션즐길거리타격감그 중 액션 다양화가 기본이자 큰 관건
나는 병목이다모든 공정이 프로그래머로…흔한 실수…문제가 뭐냐?모션병목 프로그래머이펙트사운드밸런싱스토리
파생되는 문제점환…나는 그냥 모션이 잘 붙나 안 어색한가 한번만 보면 되는데…소리타이밍이 맞나 크기는 적당한가 확인 하고파…애니메이터사운드 담당최신의 데이터로 지속, 반복적으로 밸런싱테스트를 좀 해야하는데…악순환기획자병목 프로그래머……난 지금 디버깅 중이라 님들 못 도와줌.No, I will not fix your …….창의력을 쏟을 여력이 없다.
해결책데이터 드리븐액션 스테이트 시스템빌드 자동화 독립적인 빌드 머신항상 최신의 실행 가능한 빌드 버전을 확보하자.실시간 리로드모션 하나 바꿨다고 재시작하면…인생은 값지게, 코스트는 값싸게!멍석 깔기…잉여력을 보다 창의적인 곳에 투자
개발자에게 도구를I. 멍석 깔기 액션 스테이트빌드 머신 실시간 리로드
개발자에게 도구를    I. 멍석 깔기1. 액션 스테이트
혹시 이러지 않나요?숲을 보지 못한 채 나무만 만드는?하루 종일 엑셀 보면서 데이터만 넣고 있나요?작업 물이 게임에서 보일 날 만을 손꼽아…?디자이너가 리소스 붙여 달라고 자꾸 조르나요?모션 하나 늘어나는 게 부담스러우세요?이런 분들은 주목!
액션 스테이트란?본격 데이터 드리븐 모션 컨트롤링 시스템스테이트 머신(FSM) 기반 영웅전 액션의 기민한 프로토타이핑 초석A 상태특정 조건B 상태……
뭐가 필요할까요?기본적인 요구조건은 간단액션 게임이니만큼…키 조작으로액션을 컨트롤 할 수 있으면 장땡+α자체적으로 기본적인 밸런싱을 할 수 있으면각 파트에서 독립적으로 프로토타이핑 가능하게
이게 되면 이런게 좋습니다누구에게나 게임 만드는 재미를게임의 재미는?조립!숫자만 집어넣고,툴만 보다 보면 의욕이 떨어짐시너지하나씩 조립해 가면서 내 작업물의결과를 보는 것!직접눈으로 봐야 시너지직접 봐야신나지시너지!
액션 스테이트의 구성숲액션 스테이트 시스템나무액션 스테이트 스크립트 시스템애니메이션 이벤트 시스템수식 구문 시스템
숲?액션 스테이트 시스템애니메이션 이벤트 시스템이펙트…공격판정on/off유저 입력모션 출력액션 스테이트 스크립트 시스템내,외부적 상태수식구문 시스템공격 대미지…각종 타이밍
어떻게 쓰나?논리적인 단계로 작성자세한 구현은 몰라도유저의 어떤 입력에어떻게 반응할 것인가를 논리적 단계로 작성
우리는 이렇게 써요…4타 스매시싸우전드니들 액션 구성찌르기 시작 모션오른쪽 찌르기왼쪽 찌르기왼쪽 마무리 모션오른쪽 마무리 모션기본 자세
우리는 이렇게 써요…실제 액션 스테이트 구조 (뷰어 화면…)
나무?애니메이션 이벤트 시스템수식 구문 시스템시작사운드 출력공격 시작공격 끝이펙트 출력공격판정 타이밍 계산공격 대미지 계산
실제 작업 환경
꿈같은…비하인드 스토리…2008년 12월 기존의 액션 시스템 갈아 엎어서 시작!얼마전G-Star 나갔었는데 새로 게임 만드는 느낌…BUT……  2009년 3월 20일 CBT!피말리는마이그레이션여태껏 잘 되던 게임이 지금엔 되는게 없다!액션 시스템 갈아엎고 1개월 간 모션 복구, 3개월 뒤 출시늦었다고 생각할 때가 이른 것!이거 없었으면………용사님…
개발자에게 도구를I. 멍석 깔기2. 또 다른 도구, 자동 빌드개발자의 또 다른 강력 도구
자동 빌드 시스템의 구성원소스 컨트롤Alienbrain자동 빌드시스템Cruise Control .Net- 정기 빌드- 파일 변화 감지  자동 빌드빌드스크립트Nant
빌드머신이 하는 일클라이언트 풀 리빌드7분컴파일타임 최적화멀티 프로세스 컴파일 (VS2008)그래픽 리소스 빌드– 모델링, 애니메이션 1~2분데이터 빌드– 기획데이터, NPC 대사1분
좋은 점항상 최신의 실행 가능한빌드 버전특정 일자에 빌드된빌드 버전도 받을 수 있음작업자가 작업물을 올리면 빌드가 되므로버그 추적에 굿!언제나 실행 가능!단순 조립에 따로 시간을 들일 필요가 없음약 10분만에 뚝딱!
나쁜 점빌드 복구하는 시간..OTL…빌드 복구하는 시간..OTL…빌드 복구하는 시간..OTL…빌드 복구하는 시간..OTL…빌드 복구하는 시간..OTL…빌드 복구하는 시간..OTL…빌드 복구하는 시간..OTL……
개발자에게 도구를I. 멍석 깔기3. 리로딩 시스템
리로딩…설계 초반부터 리로딩 가능한 구조로 작업개발 콘솔이 있다면 간단히 콘솔 명령어로…솔직히 안 쉽습니다……안 쉽죠잉~
그리하여…요새는 스킬이나모션 만들 때 프로그래머가 관여 안 해요 컨텐츠?
 그럼 뭐 하냐?
 프로그래머 입장에서 보다 창의적이고 기술 지향적인 도전을 수행할 시간이 생김미래의 시간을 Save중력역전, 프랍골렘, 힘 겨루기, 단데기, …이런 것들이 요래서 탄생할 수 있었습니다.
개발자에게 도구를II. 춤사위이제 멍석을 깔았으니까그 위에서 마음껏 놀아보자~~~ 절차적 애니메이션 기법 물리를 게임에 녹이기 똑똑한 카메라
개발자에게 도구를II. 춤사위1. 절차적 애니메이션기법IK 블렌딩 등 절차적 애니메이션 기법을 활용하여 작업의 노고를 덜어줌
절차적 애니메이션 기법?최종 단계의 모션을 제작 X각 단계별 모션재료를 모아합성하여최종 모션을 자동 생성하는 것.인생은 값지게, 코스트는 값싸게
개발자에게 도구를II. 춤사위      1. 절차적 애니메이션기법시퀀스 트랜지션모션 A모션 B트랜지션 구간비교적 간단하나 효과 큰 것 중 하나없으면 아쉬움애니메이터가 각 모션들의 이음매를 덜 고심  보다 창의적이고 퀄리티 높은 액션 연출 가능
어떻게 하는 건데?간단합니다트랜지션 하려는 n (n >=2) 개의 모션을 큐잉모든본에 대해 다음을 계산Lerp(Q1, Q2, ratio)모션 A모션 BQ2Q1
개발자에게 도구를II. 춤사위      1. 절차적 애니메이션기법Hand IK손잡기…
Hand IK가 뭐하는 건데?Inverse Kinematics ( 역 운동학)말단 관절(손, 발)로 특정 위치로 이동하게중간 관절은 자동으로 계산되어 움직임소위 손 갖다 대기
더 필요한 것손이 못 박힌 것 처럼 움직임손을 꽉 잡게 하고 싶다.
IK 한 위치에서 BoneMerge Blending다음 보간시에 위치 재조정…IK + Bone MergeBone Merge BlendingIK Blending
Hand IK 결과1단방향IK
Hand IK 결과 2쌍방향 IK
그래서 탄생!카록 힘 겨루기의 탄생 비화!!!
카록!?신 캐릭온 몸이 무기 얼굴도….핸드 액션특화!손으로 잡고 때리고칼 보다 정교해야칼은 스치면 맞는가… 싶겠지만 손은 잡아야 된다.물리적움직임이 극대화  우리의 강점
필요한건 뭐?정교한 손 액션!
본격! 절차적 모션 블렌딩이것이 플레이의 핵심 기술!
절차적 모션 블렌딩모션의 재료들을 만든 다음그 재료를 적절히 합성최종 모션을 자동 생성
왜 모션 블렌딩?작업 시간 단축?  작업을 가능케!다양한 환경, 다양한 몬스터에상호작용모든모션 만들기 비쌈!보다 정밀한 모션 연출몬스터사이즈가 달라질 수도 있고…물체가 움직일 수도 있고…이걸 다 모션으로 만들 순 없다.
Hand IK + 모션 블렌딩카록 힘 겨루기!
Hand IK + 모션 블렌딩자매품~
개발자에게 도구를II. 춤사위2. 물리를 게임에 녹이기우리의 손에 물리 엔진이 있다.어떻게 물리를 게임에 녹일까?
기본적인 접근모든 엔티티가 물리 인스턴스를 가짐모든 엔티티간의 물리 상호 작용이 가능창발적인 요소를 섞어라.물리 기반 플레이의 다양성공은 어디로 튈지 모르기에 재미있다.그냥 가지고 노는것만으로도 재미가 있게
모든 것이 물리?모든 물체는 물리적 상호 작용을 할 수 있다기술 실험훗날,갈고리 사슬 액션의 모토가 되었다
물리로 놀거리창발적인 요소를 섞어라그냥 가지고 노는것만으로도 재미가 있게다른 파티원을 기다릴 때의 지루함을물리적 놀거리로 승화
3. 카메라 기법개발자에게 도구를II. 춤사위
카메라 시도1맵에 박힌 카메라 – G모 게임처럼…너무손이많이갔다맵재활용면이나물리적액션을다양화시키는면등에무리가있음
카메라 시도2키보드 입력 방식 카메라전투중에카메라 변경키 조작이 어렵다충돌 문제
카메라 시도3맵만 만들어 놓으면 카메라 워크는 신경 안 써도 되게.착안! – S모 사의 L모게임변형되는 원형체의 COM*을 따라서 카메라를 움직이면!?맵이 어떻게 생겼든 부드러운 이동 가능?*COM : 질량 중심(Center Of Mass)
오호! 좋은데?인생이 값지나?근데.. 사람들이 마우스 모드를 더 좋아해서...
이젠 그랬으면 좋겠네…프로그래머잡무에서 해방가끔 빌드 머신 애먹임…OTL…모델러항상 리테일퀄리티의 게임 화면에서 자신의 모델을 감상 가능애니메이터모션 바로바로 볼 수 있음모션 이음매 노이로제에서 해방  독창적인 액션 구상에 시간을 더 씀월드 모델러카메라 안 박아도 되니 살 것같다하지만 예외 처리가… OTL…기획자기획 데이터를 바로 바로 테스트해 볼 수 있네값진 인생 살 맛 나는 세상~
유저에게 도구를창발적 재미 더하기 독특한 게임 요소다채롭게!!!
유저에게 도구를1. 창발적 재미 더하기맵을200% 활용하기
중력역전맵에 물리 프랍이 많다. 띄워 올리자!유저에게 도구를    1. 창발적 재미 더하기
실제보다 더 리얼하게!맵에 있는 물리 프랍을200% 활용!실제 물리식에 근간한 움직임이 오히려 리얼해보이지 않는다.헐리웃 물리가 필요
몬스터랙돌화
프랍이 떴을 때 자전을 해야 더욱 리얼
 거리에 따른 높이 변화높이진원지에서의 거리
더 높이 더 리얼하게
프랍골렘블랙홀 같은 느낌으로 맵에 있는 프랍을 흡입물리 프랍을 보다 적극적으로 공격에 활용유저에게 도구를    1. 창발적 재미 더하기
마나앰버플레이어의 움직임 역시 물리적으로 해보자유저에게 도구를    1. 창발적 재미 더하기
재미난 시도마나앰버의모양에 따라 다른 물리 특성
유저에게 도구를2. 독특한 게임 요소지금껏 보지 못했던 것을 보여주자
그래플링유저에게 도구를    2. 독특한 게임 요소
필요한거?프레임 동기화 기술손 발이 딱딱 맞는 찰진 그래플링 모션 연출그래플링 모션 싱크렉방에서도거뜬해야
완벽히 싱크 맞춤
무기 던지기유저에게 도구를    2. 독특한 게임 요소
뭐하는거?무기를 물리 오브젝트로 활용집어 던져서 공격이 가능함다시 가서 집어 들 수 있음무기 전환기둥 vs맨손 전환 (강하고 느림 vs빠르고 약함)액션 타입을 전략적으로 선택 가능
무기 던지기 플레이
리프트맵에 보이는 건 다 물리 프랍들고 휘두르고 던지게 하자크기, 종류에 따라 다른 모션, 다른 공격 패턴유저에게 도구를    2. 독특한 게임 요소
유저에게 도구를    2. 독특한 게임 요소보스 피니시스샷 카메라 AI보스 피니시 순간정지하여자동으로 간지나는 스샷을 마구 방출한다.카메라의 위치, 각도는 모두 AI가 계산팀 내 사진 전문가의 조언을…T
보스 피니시스샷 카메라 AI보스 피니시 순간 정지하여간지나는 스샷을 마구 방출한다.카메라의 위치, 각도는 팀 내 사진 전문가의 조언을…
물리기반 리액션죽을 때 프랍으로 분해되는 몬스터유저에게 도구를    2. 독특한 게임 요소
버그 지론?뻔 히 보이는 것도 만들고 보면 버그가 생긴다자라보고 놀란 가슴 솥뚜껑 보다 놀란다지만버그 때문에 새로움에 시도를 못하랴?버그는 또 다른 창의적 플레이의 요소물론 버그 잡는 일은 참 힘들고 고된 의무하이 리스크 하이 리턴

NDC 2011 영웅전 런칭팀 박영준