gamebryotip
맵 처리
맵
* 그라운드 매쉬 * 지형높이 : 아바타 좌표에서 높은 높이에서 Picking 함. (테스트 완료)
* 오브젝트 충돌 : 겜브리오 충돌시스템 사용함. MAX에서 충돌박스 심기
* 지형위 오브젝트로 이동 Issue : Picking 기법 체크
* 정적오브젝트
- 애니메이션 오브젝트 테스트 완료
* 동적맵구성
- Issue : 레벨 에디팅
아바타
* 충돌박스
- 큐브타입으로 심어서 테스트 완료
* 애니메이션
- Max에서 Gamebryo Animation Manager를 통한 텍스트키 심기
- Gamebryo Tools에서 Animation Manager아이콘을 클릭한다.
- Sequence Tags란에 속해있는 Extra Info Tags란에서 설정하면 된다.
- Key Text에서 텍스트 키 이름을 입력하고 Tag Time에서 원하는 시간을 입력한 후 Add Info Tag버튼을 누르면 텍스트키가 등록된다.
* 파츠
* 도구장착
익스포트
* Max의 dummy는 플러그인에서 성능 향상 쪽을 확인해서 Off해줄것 ( 자식없는것 없애는 게 있음 )
- Scene Graph Optimization 더블클릭 할것
* Max hierarchy와 똑같은 구조의 Scene graph Export하기
- Scene Graph Optimization에서 Remove childless nodes, Remove single-child nodes, Merge sibling nodes, Merge sibling NiTriShape objects 4개의 항목을 off한다.
* 애니메이션 매니저 사용하기 ⇒ .kf .kfm 파일을 뽑기 위해선 애니메이션 매니저를 반드시 써야한다. 메뉴얼_위치_artist_s_guide_-_gamebryo_3ds_max_plug-in_-_3ds_max_plug-in_tutorials_-_simple_animation_sequence}
* Gamebryo에서 캐릭터가 정면( X축 양의방향 )을 향하게 하려면 Max에선 캐릭터가 Y축 음의 방향을 바라보게 한 후 익스포트 해야한다.
* File Export Script관련( .nif .kf .kfm )
- Controller Extractor
- Plug-in 중에 Controller Extractor를 찾아 더블클릭하면 관련 옵션을 수정할 수 있다.
- 메뉴얼을 보면 시퀀스 추출 방법 선택, KF file naming convention, KFM file 생성 유무, 시퀀스간 트랜지션 셋팅 등을 설정할 수 있다.
- @ Root같은 .kf 파일이름에 Actor Roots Name(character name)을 집어 넣지 않으려면 KF File Naming Convention란에서 Use character name 항목을 비활성화 시키면 된다.
메뉴얼_위치_reference_-_toollibs_-_tool_plug-ins_-_controller_extractor}
* Hidden object 제거하고 Export하는 방법
- Process Script에서 Edit버튼을 누르고 Remove Hidden Object Plug-in을 추가
- Move up 버튼을 눌러 최상위로 올림
- Plug-in 중에 Scene Graph Optimization을 더블클릭해서 에디트창을 오픈
- Remove childless nodes 체크( Remove Hidden Object Plug-in을 추가 함으로써 Hidden Object의 Geometry는 모두 Export되지 않는다. Node의 자식이 없다는 건 Geometry가 없다는 것과 상통하므로 자식이 없는 불필요한 Node들은 제거해서 Export한다. 단, Leaf Node나 단일 Node가 필요한 Dummy일 경우에는 이 옵션을 체크 안 하거나 유저지정속성을 통해 Node가 유지되도록 해야한다. )
* Optimization을 통해 제거 될 수 있는 Node들을 보존하는 방법
- Scene Graph Optimization 내 Remove childless nodes나 Remove single-child nodes 항목을 체크하면 필요 없는 Node들을 제거하게 된다. 그러나 특정 문자열을 통해 노드가 제거하지 못하게 보존하는 방법이 있다.
- 해당 오브젝트 속성( Object Properties )을 열면 4번째 탭에 User Defined라는 항목이 있다. 항목을 선택해 공란에 “NiOptimizeKeep”라는 특수 문자열을 넣으면 된다.
* 파츠 아이템( 옷, 안경등 신체의 직접적으로 접촉되는 것들, 스킨정보 必 ) Export
- 캐릭터에 아이템을 장착한 상태에서 Export하면 된다.
- 장착한 아이템 빼놓고 나머지 것들은 모두 Hidden Object로 설정한다.
- 캐릭터에 biped정보도 함께 Export한다.
- 캐릭터와 아이템은 따로 링크를 시키지 않는다.
* 파츠 아이템( 손에 붙이는 무기나 오브젝트, 현재는 스킨정보 無 ) Export
- 캐릭터 biped정보는 필요 없고 순수 아이템 정보만 Export하면 된다.
- 캐릭터 본( 예시: 손, 발 )과 연결될 아이템 부위에 Dummy를 하나 만들어 아이템에 링크 시킨다.
- 원점에 위치하여 Export한다.
* 파츠 관련 이슈
- 예를들어 손에 주전자를 Attach한다고 할 때, 현 시점(2008.09.24)에서는 본에 직접적으로 Attach를 하지만 차후에는 손에 Dummy를 만들어 붙일 수 있게 변경 할 것이다.
- 손 <ATTACH> Dummy - 주전자 ==============⇒ 손 - Dummy <ATTACH> Dummy - 주전자
- 현재 손에 붙이는 무기나 오브젝트는 스키닝 정보가 없는 것들만 가능하지만 차후에는 스키닝 정보가 있는 것들도 지원해야 할 것이다.
* 각 애니메이션 별 Loop속성 설정 방법
- 캐릭터 애니메이션(kfm)
- Animation Manager에서 Loop Sequence란에 박스 체크
- 텍스처 좌표 애니메이션( ifl파일을 이용했을 경우 )
- Material Editor에서 맵핑 된 텍스처(ifl파일)를 선택
- 선택된 맵 에디터에서 Time란 안에 End Condition란에서 선택한 후 체크
- 오브젝트 트랜스폼 애니메이션
- Max 메인메뉴에서 Graph Editors → Track View - Curve Editor 선택하면 에디터 창이 열림
- 메뉴에서 Controller → Out-of-Range Types 선택하면 에디터 창이 열림
- Loop 그래프 밑에 버튼 2개를 모두 활성화 시킴
- 파티클 애니메이션
- 파티클 오브젝트를 선택하고 Max 기본 툴바에서 Modify를 선택
- 여러가지 파티클에 관련된 파라미터란들이 나오는데 스크롤을 쭈욱내리면 제일 밑에 Gamebryo Export Params란이 있다. 거기 안에 Simulation Options란에서 선택한 후 체크
- Loop속성이 잘 적용됐는지 확인 하는 방법
- Max에서 애니메이션 작업을 한 후 Asset Viewer에서 애니메이션을 돌려보면 보통 Loop를 하게 된다. 그러나 이걸 100% 신뢰해서는 안 된다. Asset Viewer가 내부적으로 Loop를 돌리기 때문이다( 추측 -_-;;; ) 그러므로 정작 App에서는 Loop가 안 될수 있다. Loop속성이 On이 되었는지 정확히 판단하려면 Time Controller를 뒤져봐야 한다.
- Asset Viewer의 Scene Graph Tree에서 해당하는 Geometry를 선택하면 노드에 관한 정보가 나온다. 보통 부모노드에 트랜스폼 정보가 있으므로 부모노드의 Time Controller 정보를 보면 된다.
- 해당 하는 Controller를 더블클릭 해서 Basic Info란의 Cycle Type을 확인해서 LOOP( Max에서 Loop를 On했을 경우)라고 써 있으면 정상적으로 익스포팅 된 것이다. 참고로 텍스처 좌표 애니메이션은 Max에서 키를 안 잡기 때문에 Time Controller에 아무 정보도 기입되어 있지 않다.
카메라
* Gamebryo좌표계랑 Max좌표계는 같은 오른손 좌표계를 쓰지만 방향을 나타내는 카메라 뷰 벡터들( Up, Direction, Right )은 서로 다르다.
- Gamebryo( Up : 양의 Y축, Dir : 양의 X축, Right : 양의 Z축 )
- Max( UP : 양의 Z축, Dir : 양의 Y축, Right : 양의 X축 )
- 그러므로 맥스에서 익스포터한 오브젝트들이 정상적으로 보이게 하려면 카메라를 X축으로 -90도 Z축으로 90도 회전해야 한다.
이펙트
* 빌보드 * 파티클
- Issue : Max 기반의 Effect 작업방식 확인 필요 .
물리
리소스 관리
게임로직
출처 : http://joygram.org/wiki/doku.php?id=gamebryotip
'Gamebryo' 카테고리의 다른 글
[펌] 게임브리오 관련.. (0) | 2011.07.25 |
---|---|
Gamebryo Default Coordinate (0) | 2011.06.17 |
[Link] 게임브리오 강의 (0) | 2011.03.28 |