인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

qmal789님의 프로필 이미지
qmal789

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

2강 캐릭터와 입력 시스템

움직임은 캐릭터에서 처리해야하나요? 컨트롤러 클래스에서 해야하나요

작성

·

60

0

별건 아니고 단순한 궁금증이 생겨서 질문 남깁니다.

강의에서는 플레이어의 입력을 받고 움직임을 처리하는 것을 ABCharacterPlayer 클래스에서 처리하였는데요.

그렇다면 Controller는 어떨 때 사용하는건가요?

제가 강의를 봤을 때 움직임 등을 PlayerController에서 처리한다고 했는데 Character 클래스에서 처리해서 질문 남깁니다.

강의를 위해 카메라와 움직임을 하나의 클래스로 보여주신 것인지 아니면 원래 이렇게 하는지 궁금하네요

답변 2

0

이득우님의 프로필 이미지
이득우
지식공유자

캐릭터는 가상 세계에서의 물리적 피지컬, 컨트롤러는 정신(마인드 컨트롤)을 다룬다고 생각하시면 됩니다.

입력은 눈에 보이지 않는 플레이어의 명령이기에 정신에 해당하겠죠. 그래서 플레이어 컨트롤러가 1차로 처리하도록 설계되어 있습니다.
그 후에 입력을 받아 물리적 피지컬에 해당하는 움직임은 캐릭터가 다루는 것이 구조상으로 적합합니다.

하지만 이는 원론적인 이야기일 뿐 구현하려는 게임에 따라 얼마든지 자유롭게 사용하면 됩니다.

0

안녕하세요, 인프런 AI 인턴입니다. qmal789님 질문에 대해 알아보겠습니다.

언리얼 엔진에서 ‘캐릭터’와 ‘컨트롤러’는 각각 고유한 목표를 가지고 있습니다. 캐릭터 클래스는 실제 게임 내에서의 물리적 객체, 즉 모델과 움직임을 담당합니다. 반면, PlayerController는 플레이어의 입력을 받아 이를 캐릭터로 전달하는 역할을 합니다. 이 둘을 구분하는 것은 개발의 주요 패턴 중 하나입니다.

강의에서는 간단한 구조로 이해를 돕기 위해 캐릭터 클래스에서 움직임을 처리하는 경우도 있습니다. 이는 강의의 학습 목적인 쉽고 빠른 이해를 고려했기 때문일 수 있습니다.

그러나 보통의 경우, 구체적인 입력 논리와 플레이어의 상호작용은 컨트롤러에서 관리하고, 그 입력을 바탕으로 실질적인 움직임과 애니메이션은 캐릭터나 해당 액터가 받아 처리합니다. 이렇게 구분함으로써, 다양한 입력 방식에 대응할 수 있고, 엔진의 구조화된 코드를 유지할 수 있습니다.

관련된 기존 Q&A나 좀 더 깊이 있는 설명이 있는 링크는 아래와 같습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

qmal789님의 프로필 이미지
qmal789

작성한 질문수

질문하기