ݺߣ

ݺߣShare a Scribd company logo
폰과 플레이어 컨트롤러의 관계는?
도데체 왜이렇게 복잡한거죠 왜죠
-언리얼 포럼 Jeff Farris님의 글을 인용하여 작성해보았습니다
스킬트리랩 이득우
유우원
UE4를 시작했어요.
UE4를 시작했어요.
그리고 멘붕의시작.
??
그리고 멘붕의시작.
폰? 캐릭터? 컨트롤러?
HUD는 알것도 같고...
캐릭터는 알겠는데 컨트롤러랑은 다른건가?
그리고 멘붕의시작.
폰? 캐릭터? 컨트롤러?
HUD는 알것도 같고...
캐릭터는 알겠는데 컨트롤러랑은 다른건가?
대체 왜 나누어져 있는거야…
언리얼 엔진에서 ‘사람’을 대표하는 방식
게임 내에서 우리는 보통 ‘폰’과 ‘컨트롤러’로 대
표되는 2가지의 에이전트를 사용합니다.
폰은 게임내에서 에이전트를 표현한다고 보면
되고, 플레이어 컨트롤러는 ‘의지’ 또는 '뇌'를
대행한다고 보면 됩니다.
마치 이렇다고 생각하시면 됩니다.
폰Pawn 플레이어컨트롤러
빙의Possess가 뭐야?
컨트롤러는 폰을 ‘빙의’하거나 ‘빠져나오는 것’
을 수행하는데, 이것은 ‘폰’의 컨트롤을 가져
오거나 놓아주는 것입니다.
Possess
Unpossess
플레이어 컨트롤러란
간단히 말해, 플레이어 컨트롤러는,
게임내에서 인간 플레이어의 의지를 대표한다고 보면 됩니
다.
PlayerController =
Humans Will
컨트롤러의 종류
컨트롤러는 2가지 종류가 있습니다.
PlayerController =
플레이어의 의지
컨트롤러의 종류
컨트롤러는 2가지 종류가 있습니다.
AIController =
인공지능
PlayerController =
플레이어의 의지
샘플예제 Tappy Chicken
Actor Type
Blueprint
샘플예제 Tappy Chicken
샘플예제 Tappy Chicken
샘플예제 SpherePhysicsMove
샘플예제 SpherePhysicsMove
Sphere = Pawn Type BP
샘플예제 SpherePhysicsMove
BP ParentClass : PlayerController
샘플예제 SpherePhysicsMove
좀더 구체적으로 보면
1. 입력을 캐릭터(폰)에서 받는것도 괜찮습니다. 그건 자연
스러운 발상이고, 특히 복잡하지 않은 케이스에, 제대로
작동된다고 볼 수 있습니다.
그러나, 만약 멀티플레이어 게임에서 서로의 캐릭터를 런
타임에 다이나믹하게 바꾼다면 아마도 인풋을 플레이어
컨트롤러에서 처리하는것이 나을것입니다.
좀더 구체적으로 보면
2. 보통 마리오네트 스타일 모델을 주로 사용합니다. 플레
이어콘트롤러가 판단하고 폰에게 명령하는 형태입니다 (
무뤂꿇어. 일어나. )
Sit Down !
좀더 구체적으로 보면
3. 가끔은 필수불가결입니다. 멀티플레이어 게임에서, 컨트
롤러는 폰이 바뀔때에도 유지되어야 합니다. ( 당신이 죽
고 리스폰하면, 새 폰(심지어 다른 병과로!) 을 가지고 시작하겠
지만 컨트롤러는 같겠지요)
I’ve got (new) Pawn
좀더 구체적으로 보면
4. 기본적으로 빙의/컨트롤 관계는 1:1관계입니다. 고로 컨트롤러는 하
나의 폰을 컨트롤합니다. 그리고 폰은 거의 언제나 하나의 컨트롤러
에게 콘트롤을 받습니다.
=이는 소스코드를 고침으로서 바꿔버릴 수도 있습니다.
(요즘 멀티플레이어 탈것은 사수가 둘이거나 셋 이상인 경우도 있지요
-플래닛사이드처럼)
그러나 이때에도 비행콘트롤 만큼은 하나입니다. 사공이 많으면…
좀더 구체적으로 보면
5. 이건 포럼에서 여러번 논의되는 일이지만
PlayerController의 ControlRotation은 로테이션 인풋을
받아오는데에서 아주 유용합니다.
프로젝트 타입을 선택하는 이유
프로젝트 타입을 선택하는 이유
처음에 프로젝트 타입을 선택할때
적당한 해당 폰과 콘트롤러를 셋업해주는 것입니다.
Mycharacter : Pawn
Character는 뭐고 Pawn은 뭐에요?
(캐릭터)는 걸어다닐 수 있는 능력을 지닌 특
수 유형 Pawn 을 말합니다.
Pawn = 콘트롤러가 빙의할 수 있는 모든 것.
캐릭터를 포함합니다.
Character는 뭐고 Pawn은 뭐에요?
(캐릭터)는 걸어다닐 수 있는 능력을 지닌 특
수 유형 Pawn 을 말합니다.
Pawn = 콘트롤러가 빙의할 수 있는 모든 것.
캐릭터를 포함합니다.
캐릭터 포함
FIN

More Related Content

What's hot (20)

레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
Lee Dustin
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
YEONG-CHEON YOU
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
Chaeone Son
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
강 민우
UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1
Hong-Gi Joe
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
강 민우
행동 트리
행동 트리행동 트리
행동 트리
Sukwoo Lee
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
devCAT Studio, NEXON
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
YEONG-CHEON YOU
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁
KWANGIL KIM
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
강 민우
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
Sukwoo Lee
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
MinGeun Park
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
Ki Hyunwoo
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
YEONG-CHEON YOU
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
devCAT Studio, NEXON
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
Seungmo Koo
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
Sang Heon Lee
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
Lee Dustin
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
ndc 2017 어쩌다 신입 - 초보 게임 개발자 2년 간의 포스트모템
Chaeone Son
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
강 민우
UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1UI아트 작업자를 위한 언리얼엔진4 UMG #1
UI아트 작업자를 위한 언리얼엔진4 UMG #1
Hong-Gi Joe
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
[IGC 2016] 넷게임즈 김영희 - Unreal4를 사용해 모바일 프로젝트 제작하기
강 민우
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
devCAT Studio, NEXON
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
YEONG-CHEON YOU
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁
KWANGIL KIM
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
강 민우
Cascade Shadow Mapping
Cascade Shadow MappingCascade Shadow Mapping
Cascade Shadow Mapping
Sukwoo Lee
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
[데브루키/141206 박민근] 유니티 최적화 테크닉 총정리
MinGeun Park
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
Ki Hyunwoo
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
YEONG-CHEON YOU
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
devCAT Studio, NEXON
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
Seungmo Koo
[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기[NDC2016] TERA 서버의 Modern C++ 활용기
[NDC2016] TERA 서버의 Modern C++ 활용기
Sang Heon Lee
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
devCAT Studio, NEXON

More from Wuwon Yu (6)

NDC2015 멘탈레이 라이팅 튜토리얼
NDC2015 멘탈레이 라이팅 튜토리얼NDC2015 멘탈레이 라이팅 튜토리얼
NDC2015 멘탈레이 라이팅 튜토리얼
Wuwon Yu
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
Wuwon Yu
언리얼엔진 한글폰트 출력하기
언리얼엔진 한글폰트 출력하기언리얼엔진 한글폰트 출력하기
언리얼엔진 한글폰트 출력하기
Wuwon Yu
언리얼써밋2014 유우원
언리얼써밋2014 유우원언리얼써밋2014 유우원
언리얼써밋2014 유우원
Wuwon Yu
Start with Unreal Engine4 ݺߣshow
Start with Unreal Engine4 ݺߣshowStart with Unreal Engine4 ݺߣshow
Start with Unreal Engine4 ݺߣshow
Wuwon Yu
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius project
Wuwon Yu
NDC2015 멘탈레이 라이팅 튜토리얼
NDC2015 멘탈레이 라이팅 튜토리얼NDC2015 멘탈레이 라이팅 튜토리얼
NDC2015 멘탈레이 라이팅 튜토리얼
Wuwon Yu
NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요  NDC2015 유니티 정적 라이팅 이게 최선인가요
NDC2015 유니티 정적 라이팅 이게 최선인가요
Wuwon Yu
언리얼엔진 한글폰트 출력하기
언리얼엔진 한글폰트 출력하기언리얼엔진 한글폰트 출력하기
언리얼엔진 한글폰트 출력하기
Wuwon Yu
언리얼써밋2014 유우원
언리얼써밋2014 유우원언리얼써밋2014 유우원
언리얼써밋2014 유우원
Wuwon Yu
Start with Unreal Engine4 ݺߣshow
Start with Unreal Engine4 ݺߣshowStart with Unreal Engine4 ݺߣshow
Start with Unreal Engine4 ݺߣshow
Wuwon Yu
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius project
Wuwon Yu

언리얼4 플레이어 컨트롤러의 이해.