Upload
chan-hyun-park
View
28
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
UNITY3D 워밍업
유니티 엔진 스펙
기본 기능• 통합 빌드 시스템• 포워드 랜더링• 스크립팅• 물리 엔진• 애니메이션• 파티클 시스템• 지형 시스템• 사운드
고급 기능 (pro 버젼 )
• 디퍼드 라이팅 패스• 오클루젼 컬링• 라이트 매핑• 포스트 이펙트 필터• 확장 플러그인
멀티 플랫폼 엔진• Web browser, flash, iso, android• Windows, mac, wii, playstation3, xbox360
랜더링 & 셰이더• 모델링 에셋 연동
– FBX 기반– 3DSMAX, MAYA, CHEETAH3D, CINEMA4D, BLENDER– PSD,PNG,PICT,TIFF,JPG : 레이어가 있어도 모든 레이어는 엔진에 임포트가 되면서
자동으로 합쳐진다 .
• 통합 세이더 시스템– ShaderLab– Fixed Function Program– Vertex / Fragment
• 고급 렌더링– Defferred Lighting Path– Realtime Shadow System– Dual Lightmapping– Surface Shader Program
* 유니티는 근거리 라이트 (Lightmap Near) 와 원거리 라이트 (Lightmap Far) 2 개를 사용한다 .
유니티 기본 패키지• Toonshading• Water• post processing effect(ssao, depth of field,
SunShaft)
스크립팅• 7.1 스크립트 퍼포먼스
– jit compile– aot compile– 20x performance
* 일반 자바스크립트보다 20 배가 빠르고 c++ 와 별로 속도 차이가 안남 . 최대 2 배 느리는 정도…
• 7.2Language– Javascript– C#– Boo
물리엔진• NVIDIA PhysX• 자동차 시뮬레이션• 천 (cloth) 시뮬레이션
애니메이션• 9.1Animation Editor• 9.2Skinning Animation• 9.3Animation Blending– CrossFade– Layer( 예 , 상하체 레이어를 나눠서 같이 합쳐사용 )– MixingTransform( 특정 부분만 컷할 수 있다 )– Weight
* 인터페이스를 마야와 비슷하게 구성*gdc 에서 유니티 4.0 피쳐 공개 . 애니메이션 강화 .
기타 기능• 파티클 시스템 : 체인 이펙트 기능을 사용해서 여러개의 이펙트를 연이어서
출력할 수 있음
• 지형 엔진
• 사운드– FMOD Engine– Reverb Zone– Audio Filter
• 에셋 스토어– 7:3 수익 쉐어– 분야 : 2500 여건 ( 에셋 , 확장도구 , 프로그램 예제 , 프로젝트 )
• LoD 기능 지원• 길찾기 기능 지원
설치• http://unity3d.com/unity/download/• 프리버젼과 프로버젼 (30 일 트라이얼 ) 중
선택
기본 사용법
설정• Preferences->Always Show Project Wizard
체크 & Light 체크• Create New Project• Layout->2by3-> 게임뷰 이동
화면 구성• 뷰–씬 뷰 : 씬 편집 공간–게임 뷰 : 메인 카메라로 보여지는 실제 게임 화면–계층 뷰 : 씬에 배치된 오브젝트 리스트를 보여주는
공간 ( 캐릭터 , 발사된총알 1, 발사된총알 2…)–프로젝트 뷰 : 프로젝트에 사용할 애셋 리스트를
보여주는 공간 ( 캐릭터 , 총알 )–인스펙터 뷰 : 일종의 속성창 . 오브젝트 및 애셋의
속성을 변경할 수 있음 .
* 애셋 : 유니티에서 사용되는 리소스를 통털어 지칭
화면 구성• 트랜스폼 툴–핸드 툴 : 씬 카메라 이동 (Q)–변환 툴 : 게임 오브젝트의 좌표를 이동 (W)–회전 툴 : 게임 오브젝트의 회전을 변경 (E)–스케일 툴 : 게임 오브젝트의 크기 변경 (R)
조작• 오른쪽 드래그 : 자유 회전• 알트 + 왼쪽 드래그 : 가운데를 중심으로 회전• 알트 + 오른쪽 드래그 or 휠 : 확대 or 축소• Fps 네비게이션 이동
– 오른쪽 클릭 상태에서 asdw qe shift• Qwer 키• v 키를 누르고 마우스 클릭을 통해서 정점이동이 가능하다 .• Gizmo
– Shift 누르고 gizmo 하면 원근감이 없어지는 iso 모드로 변환
• 트럭을 만들어 보자
프리팹 기능• 프리팹 기능을 사용하면 박스를 100 개
복사해도 나중에 한번에 100 개 모두를 수정할 수 있다 .
• 파란색으로 된건 프리팹이다 .
• 만든 트럭을 프리팹으로 만들어 보자 .
애셋 & 패키지• 애셋 : 프로젝트 내의 리소스를 통칭 . 각각 고유하게 존재
( 모델 , 텍스쳐 , 오디오 , 사운드 , 스크립트… )
• 패키지 : 여러 애셋의 묶음 . 프로젝트간 이동을 위한 유니티 전용 파일 . 원본 파일 정보와 유니티 설정 정보가 합쳐짐 .– 패키지 불러오기 : 탐색기에서 더블클릭 or Assets>Import
Package>Custom Package– 패키지 내보내기 : 마우스우클릭 >Export Package
• 유니티 기본 패키지 : 캐릭터 콘트롤러 , 라이트플레어 , 워터 , 트리생성기…
한번 해보자( 간단한 슈팅 게임 )
설정• Create New Project• Window->Asset Store->F16a 다운로드 -
>Import• GameObject->CreateEmpty->player 로 수정• F16a 애셋을 계층뷰에 넣고 다시 player 에
넣기
스카이 박스• 프로젝트뷰 우클릭 ->Import Package-
>SkyBoxes->Improt• Edit->Render Settings->SkyBox Mtertial
스크립트 - 플레이어• 프로젝트뷰 Create->C# Script• PlayerScript 로 스크립트명 수정 .• 클래스 명도 동일하게 수정
• Player 에 추가 -> 플레이 -> 씬 & 프로젝트저장
void Update () {float dir = Input.GetAxis("Horizontal");Transform.Translate(Vector3.right * dir);
}
스크립트 - 적• http://gameedu.kookmin.ac.kr/art/down/supplement.zip
다운로드• SampleAssets 임포트
– 파일을 더블클릭– 프로젝트뷰에서 우클릭 ->Custom Package– 프로젝트뷰에 넣고 더블클릭
• Enemy 애셋을 계층뷰에 이동• PlayerScrpit 수정 ->Bullet 애셋을 Player 인스펙터뷰로 이동
• ..
public GameObject Bullet;// Use this for initialization
…transform.Translate(Vector3.right * dir);if(Input.GetKeyDown("space")){
Instantiate(Bullet, transform.position, transform.rotation);
}
사운드• Music 애셋을 메인카메라 인스펙터뷰에 이동
스터디 진행• 1 인당 최소 2 주에 1 회 PT 진행• 가능한 하나의 PT 는 하나의 프로젝트로 완료 ( 큐브 하나로 PT
를 진행해도 무방함 . 프로젝트 중간 내용 설명 x)• 개인 목표 공유 & 첫 프로젝트 선정 ( 퍼즐게임 , 레이싱 ,액션… )• 각자 개인주제 2 개 이상 선정
– GUI– 지형– 조작– 물리– 애니메이션– 파티클 ( 이펙트 )– 쉐이더
참고 사이트• http://www.unity3dstudy.com/
한글 동영상 강좌
• http://unity3d.com/support/resources/example-projects/
• Window->Asset Store->C# Game Example샘플 프로젝트
한번 해보자( 지형 + 캐릭터 )
절차적 지형• terrain-toolkit 패키지 임포트http://unity3d.com/support/resources/unity-extensions/terrain-toolkit
• Character Controllers 패키지 임포트