Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

언리얼 교육 1 : 게임엔진의 이해

No description
by

Carrot Kim

on 2 June 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of 언리얼 교육 1 : 게임엔진의 이해

1주차 : 게임엔진의 이해
언리얼 입문자 교육
교육 목표
순서

교육 목표

교육과정 설명

게임 팀의 구성과 역할

게임의 이해

게임엔진의 이해

언리얼 외에 필요한 툴

언리얼 엔진 기본 사용법
언리얼 엔진 기능에 대한 이해
게임 엔진의 특성에 대한 이해
게임 제작프로세스 이해
간단한 레벨을 제작해보면서
대략적인 게임 제작 프로세스
를 이해
원활한 커뮤니케이션을 위해 타파트 작업 프로세스 이해
교육 시간
1회당 90분 총 6회
매 시간당 40분 교육 10분 Q&A 10분 휴식
교육 과정
1주차 : 게임엔진 및 게임 제작 파이프라인

게임 팀의 구성과 역할

게임의 이해

게임엔진의 이해

언리얼 외에 필요한 툴
교육 과정
2,3주차 : 콘텐츠의 구성
캐릭터, 배경 파이프라인

텍스쳐의 이해

매터리얼과 셰이더의 이해

파티클 파이프라인

애니메이션 파이프라인
교육 과정
4,5,6주차 : 레벨 제작
레벨 제작의 시작

터레인에 대한 이해

LightMap 및 ShadowMap의 이해

게임에서의 빛과 그림자의 이해

PostProcess의 이해

게임 플레이 및 이벤트
교육과정 설명
GameEngine
게임 엔진의 유래
3차원 게임엔진의 개념도입
현존하는 게임 엔진
게임팀의 구성과 역할
엔지니어
아티스트
기획자
프로듀서
지원부서
시나리오
시스템 기획
설정 기획
컨셉
이펙트
3D 모델러
애니메이션
개발관리
TA
퍼블리셔
클라이언트
서버
툴제작
DB
런타임 아키텍쳐
핵심적인 소프트웨어(
코어
: 3D 그래픽 엔진, 충돌검출시스템, 오디오 등)와 사용자가 보는 게임 관련요소들(
콘텐츠
: 그래픽 자원, 게임 월드, 게임 플레이 규칙)이 뚜렷하게 구분하여 설계
MOD
최소한의 엔진 변경으로 완전히 새로운 게임을 만드는 것
카운터 스트라이크 : 하프라이프의 모드게임
하나의 게임을 만드는데만 사용
매우유사한 형태의 게임을 만들어 재설정
mod를 통해 특정장르의 게임 제작 가능
상상할수 있는 모든 게임 제작
게임 엔진의 재사용성
언리얼 3 엔진
엔진 튜닝을 통해 원하는 장르의 게임을 제작할수 있음
엔진
레벨
콘텐츠 파이프라인(요약 / 언리얼)
DCC 툴
Maya
3dsmax
Photoshop
AfterEffect
Softimage
Soundforge
기타 등등
FBX
애니메이션
스켈레탈 메쉬
스태틱 메쉬
콘텐츠 브라우저
스켈레톤 메쉬
스태틱 메쉬
애니메이션
텍스쳐
매터리얼
파티클
레벨 에디터
에서 만든 콘텐츠를 엔진에서 바로 쓸수 없는 이유
게임 엔진에서 바로 사용하기에는 필요이상의 정보를 가지고 있음

파일을 읽어 들이는데 시간이 걸리고 저작권이 걸린 경우도 있음
UI
사운드
오디오 데이터
텍스쳐
언리얼 외에 필요한 툴
DCC 툴
버젼 관리
그 외에...
레퍼런스
장르별 게임 엔진의 특징
FPS
RTS
격투게임
레이싱게임
MMO
기타 장르
길찾기, AI
렌더링 최적화
먼곳의 배경을 그리기 위한 다양한 눈속임들
소울 칼리버, 철권, 파이트 나이트 라운드
그리드, 그란 투리스모, 니드포스피드
애니메이션
정확한 타격 감지
복잡한 인풋 시스템 감지
군중과 대체로 정적인 배경
스타크래프트, 에이지 오브 엠파이어
많은 수의 유닛 표현
지형 관련
AI
Level Of Detail
배틀필드. 콜오브 듀티, 기어즈오브 워
가장 뛰어난 기술이 필요한 장르
즉각적인 카메라 조작과 조절
사실적인 애니메이션과 충돌 구현
AI
멀티플레이 지원
BSP, 차폐 선별 등 렌더링 최적화
핵심은 수천에서 수만의 게이머들이 지속적인 가상세계에서 게임을 한다는 것

화면에 나올수 있는 최대 인원수(유저들이 모일수 있음)
WOW, 리니지, 테라
Massively Multiplayer Online
게임 장르에 따른 기술적인 요구사항


장르가 달라도 게임 엔진에서 많은 부분을 재사용 하는 일이 가능
머터리얼 혹은 셰이더는 월드안에 있는 표면의 모양을 결정함 라이팅 모델과 블렌딩 모드에 따라 각각의 표면이 빛에 반응하는 방식을 조절, 라이팅 모델은 표면과 빛의 작용을 결정하고 블렌딩 모드는 렌더되고 있는 표면이 나머지 씬과 혼합하는 방식을 결정
폴리곤 덩어리로 만들어진 지오메트리 조각
스켈레탈 메시(Skeletal Mesh)는

스켈레탈 메시의 표면을 구성하는 폴리곤 세트 그리고 폴리곤을 애니메이트하는 데 사용되는
계층형 상호연결 본 세트 등 두 부분으로 나눌수 있음
스켈레탈 메쉬의 움직임을 표현함
여러 형태로 제작된 오디오 데이터들 게임 제작시 간과되고 있는 부분이 있으나 몰입감등에 큰 영향을 줌
하드웨어의 발전으로
크로스 플랫폼으로 하나의 게임으로 여러개의 플랫폼(PC, 모바일, 콘솔 웹 등) 으로 게임을 제작할수 있게 지원하는 엔진들이 개발되고 사용 중
http://setandbma.wordpress.com/2012/03/19/mobile-game-development-tool-comparison/
http://www.slideshare.net/sm9kr/8-22232004
http://udn.epicgames.com/Three/FBXPipelineKR.html
언리얼 엔진을 사용한 게임
언리얼 1
언리얼 2
언리얼 3
게임을 만드는데 쓰이는 소프트웨어와 툴을 디자인 하고 구현
프로그래머
게임 디자이너
게이머가 게임에서 얻을수 있는 경험(게임 플레이)을 설계
일정관리 / 인력관리 /
상급 기획업무 / 의사결정
경영관리
IT 기술 지원부서
게임의 모든 시각/청각 콘텐츠를 만드는 사람
성우
모션캡쳐배우
사운드 디자이너
광원 아티스트
점점 3D 애니메이션 프로덕션과
유사한 형태로 세분화 되고 있음
게임을 판매 / 제조 / 배포
각 장르의 게임의 모든 특성을 고려할 필요가 있음
Game?
체스나 보드게임, 포커, 블랙 잭, 롤렛, 슬롯머신뿐 아니라 군사훈련에서의 전쟁 게임, 컴퓨터 게임, 그리고 다양한 아이들의 놀이까지 포함한 넓은 개념
게임 이론
학술적인 용어
명확히 정의된 규칙 아래서 다양한 대리인(Agent)들이 최선의 이익을 얻기 위해 전략적 전술적 행동을 하는 것을 의미
일반적으로
게임의 정의
라프코스터의
게임이란 사용자에게 점진적으로 난이도가 증가하는 도전과제를 제시하고 사용자가 궁극적으로 그 과정을 학습하고 숙달하는 상호적인 경험을 제공하는 행위
컴퓨터를 바탕으로 한
엔터테이먼트 측면에서의 게임은
2, 3차원 가상월드안에서 플레이어가 조정하는 인간, 동물, 탈것 등이 돌아다니는 장면을 연상케 함
이번 시간에 다룰 대한 주제!
실시간 상호적 행위자 기반 컴퓨터 시뮬레이션
덜 엄격한
게임은 컴퓨터가 다룰수 있게 실제 세상을 수학적으로 모델
상호적이며 시간적 시뮬레이션
실시간 기반 시스템은 시간 제약이라는 핵심 개념을 가짐
화면의 물체가 움직이는 것처럼 보이게 하려면 화면을 초당 최소 24번은 업데이트 해야함
물리엔진의 경우 안정적으로 동작하기 위해 초당 최소 120번 업데이트
인공지능 캐릭터가 똑똑해보이기 위해 최소 초당 한번씩은 생각을 해야함
실세상을 모두 다룰수 없기 때문에 근사화와 단순화가 필요
시간 제한이라는 큰 틀에서 수학적으로 구성된 게임 엔진에 대해서 알아보고 게임엔진에 적용될 콘텐츠를 구성하는 과정을 이해하자!
대표적인 모드게임
수학적으로 모델화가 되어 있는 요소들이 포함되어 있음

항공제어 시스템이나 원자력 발전소의 안전 시스템 과 같이 시간 제약 준수에 실패했을때 사용자가 치명적인 부상이나 죽음등의 피해가 없다는 의미임
포스트 프로세스
런타임 아키텍쳐

게임 엔진의 유래

장르별 게임 엔진의 특징

게임 엔진의 재사용성

현존하는 게임 엔진

콘텐츠 파이프라인
DXT 압축
Game
Hardware : 목표 하드웨어
게임이 동작할 컴퓨터나 콘솔시스템
Driver : 디바이스 드라이버
운영체제나 하드웨어 제조사에서 제공하는 로우레벨 소프트 웨어 하드웨어를 관리하고 OS 나 다른 상위 계층 소프트웨어에서 불필요한 하드웨어 요인을 신경쓰지 않게 하는 역할
OS : 운영체제
게임과 같은 어플리케이션을 조율하는 일을 함
게임엔진은 그자체로도 거대한 소프트웨어 시스템
상위 계층이 하위계층에 의존

하위 계층이 상위 계층에 의존하면 순환 의존이라고 부르는데 이런 종속성 주기는 소프트웨어 시스템에서 피해야 하는 것
서드파티 SDK와 미들웨어
게임엔진은 다양한 서브파티 소프트웨어 개발도구 및 미들웨어를 적극 이용
자료구조와 알고리즘
그래픽스
충돌과 물리
캐릭터 애니메이션
인공지능
생채 역학적 캐릭터 모델
플랫폼 독립적 계층
게임 엔진은 적어도 한개 이상의 하드웨어 플랫폼에서 동작

엔진의 다른 부분이 하드웨어를 신경쓰지 않게 하는 역할
코어 시스템
게임엔진을 비롯해 규모가 큰 모든 C++ 소프트웨어는 요긴하게 사용할수 있는 소프트웨어 유틸리티가 필요
Assertion
메모리관리
수학 라이브러리
독자적 자료구조와 알고리즘
자원관리자
게임엔진의 모든 자원과 여타 엔진 데이터에 접근하는 일관된 인터페이스를 제공


"언리얼의 패키지"
렌더링 엔진
게임 엔진에서 제일 복잡하고 광범위한 부분 중 하나
로우레벨 렌더러 : 그래픽 하드웨어와 게임의 쉐이더 상태를 관리
씬 그래프 / 컬링 최적화
시각 효과
후처리, 파티클, 데칼, 다이나믹 쉐도우, 등등
전단부 : UI, HUD, 시네마틱 시스템
프로파일링과 디버깅툴
실시간 시스템 특성상 게임은 항상 최적화를 위해 프로파일링 및 메모리 분석툴도 함께 제공
범용 디버깅 툴
Vtune
Pix
Nsight
충돌과 물리
충돌 체크및 사실적인 역학 시뮬레이션을 구현, 직접 개발하지 않고 외부 SDK를 활용
물리엔진
Havok
PhysX
Bullet
애니메이션
생명체나 그 유사한 형태로 움직이는 물체가 나오는 게임이라면 반드시 있어야 시스템
스프라이트 / 텍스쳐 애니메이션
Rigid Body Hierachy 애니메이션 (Ragdoll)

정점 Vertex 애니메이션
모프 타겟 Moph Target
뼈대(Skeletal) 애니메이션
렌더링 시스템과 밀접한 관계
HID 휴먼 인터페이스 장치
사용자 입출력
키보드와 마우스
조이패드
특수 컨트롤러등 : 위모트, 키넥트
오디오
사운드 데이터의 입출력 등 관리 및 효과 적용
온라인 멀티플레이어와 네트워킹
멀티플레이어 게임의 분류
단일 스크린 멀티플레이어
분할화면 멀티플레이어
네트워크 멀티플레이어
대규모 다중 사용자 게임
게임플레이 기반 시스템
게임 내에서 하는 행동, 규칙, 캐릭터의 능력, 여타 캐릭터와 물체들의 능력, 플레이어의 목표 및 목적등을 설정
게임 월드와 객체 모델 : Actor
이벤트 시스템 : Kismet, Trigger
스크립트 시스템 : UnrealScript
인공지능 기반 시스템 : Kynapse, Navigation
그외에
AI
Navigation
Kismet
BSP
Volume
Foliage
LandScape
Light
Trigger
Digital Content Creation
3D mesh, Texture, Animation Data, Audio File 등 다양한 자원이 게임 엔진에 사용되는
모든 자원은 아티스트가 만들어 내고 다듬어야 하는데 이 작업을 사용하는 툴
공유 파일을 여러사용자가 함께 작업할수 있게 도와주는 도구
소스코드의 중심 저장소
모든 소스코드의 변경사항을 기록
특정상태나 시점의 소스코드에 태그를 달고 필요시 복원
버젼 브랜치(데모나 패치 등을 만들기 위해 메인 개발 버젼에 분리된 버젼)
버젼 컨트롤을 쓰는 이유
통합 개발 환경
프로파일링 툴
FilmBox 의 전용 포맷

3D 장면을 설명하는 일반적인 방법

3D 매쉬, 캐릭터, 조명 또는 카메라와 같은 장면의 요소를 나타내는 노드로 구성된 계층형 장면 그래프를 포함

각 노드에는 특정 노드 유형(예: 조명 유형, 조명 색상)의 속성뿐 아니라 변환 정보(변경, 회전, 스케일)도 포함
zbrush
CrazyBump
주로 불, 연기, 증기, 폭발 등 일정한 볼륨 형태의 효과
HDR, DOF, 모션블러 등의 표현을 그룹화하여 설정
CameraAnim
DecalMaterial
Font
LensFlare
MaterialFunction
PhysicsAsset
SWFMovie
들어가기전에
질문은 언제든지 해주셔도 됩니다.


피드백은 언제든지 환영입니다.


마지막 장에 참고자료 링크가 있습니다.
(TA팀이나 개발 관리팀에 말씀해주세요. 이름을 밝히지 않으셔도 됩니다.)
내용에 따라 조절될수 있습니다.
표면에 색을 입힘 : DiffuseMap, SpecularMap

색이나나 효과의 일정부분을 한정하기 위한 마스크 : MaskMap

정보를 가지는 데이터 : NormalMap, HeightMap

UI
S3 Texture Compression
그래픽카드에서도 압축 유지
쓸 수 밖에 없는 이유
개발 프로세스
Pre-Production
Production
Post Production
Pre-Production
Post Production
Production
마일스톤: 특정 콘텐츠나 특징(feature) 단위의 제작 단계
게임의 비전 및 전체적인 방향성 설정
한줄 요약(우리게임은 이런 게임이다)

프로토타이핑 성공시 구체적인 제작 단계(마일스톤)를 설계
개발 조직 구성 : 개발 마일스톤에 따라 인력 확충 계획, 아웃소싱(outsourcing) 계획
제작 프로세스 수립
배포(release) 및 QA 프로세스 수립

수익모델, 대상시장
각 마일스톤 사이에는 피드백을 위한 테스트(FGT, CBT)가 보통 존재
출시 (Launch)
업데이트 / 패치
이벤트
게임 컨셉 기획
게임 서비스 기획
게임 제작 계획
브랜치 관리
이슈 관리
프로토타이핑
게임 컨셉 기획을 토대로 핵심 재미요소를 프로토타이핑
제작 파이프라인 설계
파이프라인이 깨지는 경우
특정 작업이 밀리는 경우 의존성을 가지는 다른 작업도 밀림
품질과 의 타협이 필요
아웃소싱 리소스
Production
Integration(통합)
지속적인 통합
Iteration(반복)
작은 단위의 제작 프로세스
– 게임의 재미는 정량화 되지 않음 플레이 하면서 계속 수정해야 함
Post Mortem
개발이 아닌 서비스 관점에서 의사 결정
LIVE팀 구성
소규모 패치 (치명적인 버그 수정, 밸런스 조정 등)
대규모 업데이트 (콘텐츠 추가, 확장팩 등)
설날, 크리스마스, 방학 시즌 이벤트
효율적인 브랜치(branch) 관리 필요
게임 출시 이후 전반적인 회고
3D Animation Production 의 비교
Q&A
컴퓨터 과학에서 컴퓨터 프로그램이 실행되고 있는 동안의 동작
*수학적으로라는 의미는 컴퓨터가
이해할수 있는 원칙을 세웠다는 의미임
예를 들면 가위바위보의 승리조건에 대한 원칙
아티스트와 엔지니어의 가교역활
스크립트 제작, 기술 리서치 등의 업무
*예를 들면 MS Office, 3dsmax
*예를 들면 그래픽 드라이버, 사운드 드라이버
*대표적으로 윈도우, 리눅스 등
*오픈소스
"패키지가 아닌 DCC에서 제작된 자원 그대로 사용하기도 함"
*Unity
균형과 선택(Trade Off)
대부분 게임엔진은 특정 장르 게임이나 플랫폼에 최적화 됨
특정장르, 특정 플랫폼은 결과 예측 비교적 쉬움

게임엔진의 범용성이 커질수록 게임에 대한 최적화는 떨어짐

효율적인 결과를 얻기위해서는 피할수 없는 균형과 선택이 필요함


예를 들면 실내환경을 전문적으로 처리하게 설계된 렌더링 엔진은 넓은 실외 한경을 다루는데 별로 효율적이지 않음

언리얼 : 외부 환경 처리 능력이 떨어져서 Dominant Light, Foliage 개선, Landscape 등의 개선으로 발전, 모바일 지원
게임 엔진의 이해 (요약)
게임엔진은 게임 제작에 필요한 구성요소를 재사용할수 있게 만든 것

게임엔진에는 렌더링 엔진이 필수로 제공되지만 렌더링 엔진이 게임엔진의 전부는 아님

게임 개발을 더 원활하게 하기 위해 시각적인 개발도구를 제공 : 각종 툴

다양한 플랫폼에서 실행할수 있게 하는 것이 최근의 추세

게임 특성에 맞는 선택과 집중이 필요함

콘텐츠 파이프라인의 이해 (요약)
게임개발은 작업 프로세스가 중요 (퀄리티와 시간)

콘텐트는 크게 DCC에서 만들어서 임포트된것과 엔진에서 생성한 것이 있음

게임 엔진 내에서의 조합을 통해 게임이 완성

게임엔진 외에도 DCC 툴, 버젼 관리시스템, 통합 개발도구 등이 추가로 필요함
게임 제작 프로세스의 이해

언리얼 기본 사용법 숙지
게임 제작
툴 교육 및 이론 설명
TriRunner
"윈드러너 같은 게임"
쥬피터 엔진
퀘이크 엔진
퀘이크 계열 엔진
메달오브 아너
콜 오브 듀티 등
밸브의 소스엔진도 먼 근원은 퀘이크 엔진
언리얼과 견줄정도로 그래픽 성능과 개발 툴이 뛰어남
넓은 시야와 자연 묘사가 특징
http://www.dhteumeuleu.com/run/ragdoll_verlet/
원래는 크라이텍이 엔비디아를 위해 개발한 기술데모였으나 그잠재력을보고 게임으로 이용



목요일 오후 5시~6시분
높은 수준의 픽셀 셰이더
물리 기반 의복과 머리카락 시뮬레이션
사실적인 애니메이션
파이트 나이트 라운드
Full transcript