SlideShare 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

조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁KWANGIL KIM
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술Ki Hyunwoo
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019devCAT Studio, NEXON
 
게임 인공지능 설계
게임 인공지능 설계게임 인공지능 설계
게임 인공지능 설계ByungChun2
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계Imseong Kang
 
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지Kwangyoung Lee
 
[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니Yongha Kim
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴예림 임
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들강 민우
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011devCAT Studio, NEXON
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019devCAT Studio, NEXON
 
Unreal animation system
Unreal animation systemUnreal animation system
Unreal animation systemTonyCms
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 

What's hot (20)

조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁190119 unreal engine c++ 입문 및 팁
190119 unreal engine c++ 입문 및 팁
 
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
NDC2016 프로젝트 A1의 AAA급 캐릭터 렌더링 기술
 
행동 트리
행동 트리행동 트리
행동 트리
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 
게임 인공지능 설계
게임 인공지능 설계게임 인공지능 설계
게임 인공지능 설계
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
NDC 2015. 한 그루 한 그루 심지 않아도 돼요. 생태학에 기반한 [야생의 땅: 듀랑고]의 절차적 생성 생태계
 
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
NDC 2015 이광영 [야생의 땅: 듀랑고] 전투 시스템 개발 일지
 
[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니
 
게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴게임 개발에 자주 사용되는 디자인 패턴
게임 개발에 자주 사용되는 디자인 패턴
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
[IGC2018] 청강대 이득우 - 언리얼에디터확장을위해알아야할것들
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
김동건, 구세대 개발자의 신세대 플레이어를 위한 게임 만들기, NDC2011
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
김혁, <드래곤 하운드>의 PBR과 레이트레이싱 렌더링 기법, NDC2019
 
Unreal animation system
Unreal animation systemUnreal animation system
Unreal animation system
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 

More from 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 Slideshow
Start with Unreal Engine4 SlideshowStart with Unreal Engine4 Slideshow
Start with Unreal Engine4 SlideshowWuwon Yu
 
gametech 2012 Gladius project
gametech 2012 Gladius projectgametech 2012 Gladius project
gametech 2012 Gladius projectWuwon Yu
 

More from Wuwon Yu (6)

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

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