GameTech 2010 : Creating Whizzle using the UDK from Epic Games

반응형
위즐 제작 한글 문서 : http://udn.epicgames.com/Three/WhizzleCreationDocumentKR.html

프로그래머 1 명이 2달만에 만들었다고 하는데... 게임을 만드는 과정을 거의 처음부터 끝까지 보여줬다는 점에서 지금까지 UDK 같은 sandbox 로 게임 만드는 데모 중에서는 가장 괜찮은 편이었다.
 Whizzle Creation Document v1.2 이거 읽으면 될듯.
 


Interview: Psyonix talks about their free UDK game Whizzle
Whizzle download
UDK Psyonix Developer Diary HD

 * z 축으로 길게 세운 구멍뚫린 6 면체로 레벨 지형 만든 후 Start Point 지정
  * 이건 미리 CSG더하기 방식으로 터레인 만든 다음에 Convert -> Convert to Static Mesh 해 놓으면 나중에 콘텐츠 브라우저 -> NewPackage 에서 찾을 수 있는 듯
 * 보기 -> World Properties -> WorldInfo -> Global Gravity Z 값으로 중력 작게 만든다
  * ZoneInfo 에서는 Kill Z 값 지정 가능
 * Mesh 에 텍스처를 drop 해서 붙일 수 있음
  * 이걸 DoubleClick 하면 정적 메쉬 에디터를 열 수 있다.
 * Light Build 할 때는 Use Lightmass 를 빼면 빌드 속도가 빠르다.
 * 1인칭 -> 3인칭 만들기
  * 액터 클래스 -> CameraActor 를 맵에 양의 x 축 방향으로 Add
  * Kismet 에서 'Level Loaded'(New Event > Level Loaded), 'Set Camera Target'(New Action > Camera > Set Camera Target), Attach to Actor(New Action > Actor > Attach to Actor) 를 해 준다.
 * Kismet -> Matinee 에 키보드 이벤트 연결시켜줘서 캐릭터를 이동시키던데...
 * Physics 에 Constraint 를 줘서 z 축으로는 못 움직이게 해서 2D 이동 환경을 만든다.
 * Matinee 에서 Movement 트랙 선택 후, 키 추가로 원하는 위치에 이동시켜준 뒤 loop 돌리면 레벨 안에서 NPC 이동 경로를 지정할 수 있음
 * Contents Browser -> Unreal Static mesh Editor -> Tools -> Fracture Tool 로 부서지는 Mesh 만든다. 몇 부분으로 부서질 것인지를 생성으로 결정할 수 있음
  * LODInfo -> ... -> Elements 1 과 Lost Chunk Outside ... 에도 같은 Material 을 지정해 줘야 깨진 면의 texture 도 정상적으로 보인다
  * Slice 할 때 입력한 이름으로 아까 생성한 FracturedStaticMesh 를 찾은 후 Create New PhysX Destructible 을 눌러주면 PhysX 파괴 새로 만들기 창 뜨고 확인 누르면 파괴되는 조각 갯수만큼 메쉬 삼각형을 만드는 창이 보여진다.
  * 아직 저장 안 되었다는 의미의 * 표시가 보일 것임. Ctrl+S 로 저장. 그럼 옆에 PhysX Destructible Asset 이 나온다.
  * 이걸 할 때는 Light 의 Properties -> Light -> Light Component -> Lighting Channels -> Dynamic 을 해 줘야 하는 듯. 아니면 부서진 면이 빛을 못 받는 듯?
 * File -> New Terrain wizard -> 산 모양 아이콘 선택 -> 레벨 edit 가능
 * mesh paint


   1: simulated event PostBeginPlay() {
   2:     local RB_ConstraintActor TwoDConstraint;
   3:     TwoDConstraint = Spawn(class'RB_ConstraintActorSpawnable', self, '', Location, rot(0,0,0));
   4:  
   5:     // bLimited is set to 1 by default, so turn it off for Y and Z to allow Y and Z axis movement 
   6:     TwoDConstraint.ConstraintSetup.LinearYSetup.bLimited = 0;
   7:     TwoDConstraint.ConstraintSetup.LinearZSetup.bLimited = 0;
   8:  
   9:     // Don't allow the ball to swing, which would make it move along the X axis 
  10:     TwoDConstraint.ConstraintSetup.bSwingLimited = true;
  11:  
  12:     // Initialize the constraint and constrain the ball to the world 
  13:     TwoDConstraint.InitConstraint( self, None );
  14: }


TAGS.

Comments