본문 바로가기

분류 전체보기

(613)          글쓰기    
[2부 게임개발] 05오브젝트 인터렉션 새 프로젝트와 레벨 생성 일인칭 템플릿으로 새 프로젝트를 만들고 이름을 UE5BpBook으로 지정한다. 플레이를 누르고 뷰포트를 클릭하면 게임 입력이 반응한다. WASD를 눌러 이동이 가능하고 왼쪽 버튼이 Fire이다. 플레이모드에서 Shift+F1으로 커서를 표시할 수 있고 일시정지 버튼으로 플레이세션을 일시 중지 시킬수 있다. 이는 게임의 속성을 탐색하는데 유용하다. 중지버튼으로 플레이 세션이 종료되고 편집모드로 돌아간다. 빠져나오기 버튼을 클릭하면 카메라가 플레이어에서 분리돼 휠과 좌클릭 드래그로 레벨을 자유롭게 이동할수 있다. 레벨에 오브젝트 추가 템플릿에 이미 총이 포함되어져 있다 이 총을 획득하여 발사체로 쏘면 색이 변하는 간단한 타깃 액터를 만들자. 1. 레벨에디터 +를 눌러 세이프>실린더를..
[2부게임개발] CH05 블루프린트를 사용한 오브젝트 인터렉션 블루프린트를 사용하면 핵심 게임플레이 기능을 빠르게 작동시켜 아이디어 테스트를 빨리 시작할 수 있다. 먼저 기본 에셋과 몇가지 블루프린트를 사용해서 간단한 게임플레이 메커니즘을 프로토타이핑하는 것으로 시작한다. 이 장에서는 다음 주제를 다룬다. 새 프로젝트와 레벨 생성 레벨에 오브젝트 배치 블루프린트를 통한 오브젝트 머터리얼 변경 블루프린트를 사용해 월드 내 오브젝트 이동 타깃이 맞았을 때 타깃의 머터리얼을 변경하고, 타깃이 두 지점 사이를 규칙적으로 왔다 갔다 하게 하는 블루프린트를 만드는 방법에 대해 배운다. 레벨에 있는 블루프린트 타깃의 각 인스턴스는 서로 다른 속도, 방향 및 방향 전환 시간을 갖도록 세팅할 수 있다.
이벤트 바인딩 한 이벤트를 다른 블루프린트에 있을 수 있는 다른 이벤트 또는 이벤트 디스패처에 바인딩하는 이벤트 바인드 노드가 있다. 이벤트가 호출되면 여기에 바인딩된 다른 모든 이벤트도 호출된다. 예를 들어 Blueprint_Effect_Sparks의 자식 블루프린트 클래스를 만든다. 이 새 블루프린트는 이전 예에서 생성한 BP_Platform 블루프린트의 PlatformPressed 이벤트 디스패처에 이벤트를 바인드 한다. 1. 이벤트 디스패처 예제에서 사용된 프로젝트를 연다. 2. 컨텐트드로워 +Add에서 클래스블루프린트를 생성하고 모든 클래스메뉴를 확장해서 Blueprint_Effect_Sparks를 검색 선택하고 이름을 BP_Platform_Sparks로 하고 블루프린트에디터를 연다. 3. 컴포넌트탭에서 Sp..
이벤트 디스패처 이벤트 디스패처는 이벤트가 발생할 때 블루프린트가 다른 블루프린트에 알릴 수 있게 한다. 레벨 블루프린트및 다른 블루프린트클래스는 이 이벤트를 수신할 수 있으며 이벤트가 트리거 될때 서로 다른 액션을 실행할 것이다. 내 블루프린트 패널에서 이벤트 디스패처를 생성한다. 예를 들어 BP_Platform 블루프린트를 생성해보자. 액터 BP_Platform 블루프린트와 겹칠 때 PlatformPressed라는 이벤트 디스패처를 호출한다. 레벨 블루프린트에서 PlatformPressed 이벤트를 수신하고 있으면 이 이벤트가 트리거 되면 폭발이 발생한다. 1. 삼인칭 콘텐츠가 포함된 템플릿을 기반으로 새로 만들거나 기존 프로젝트를 사용한다. 2. 액터를 부모 클래스로 하는 BP_Platform 블루프린트를 생성하고..
[언리얼][블루프린트] 레벨 블루프린트 커뮤니케이션 언리얼엔진에는 게임의 각레벨마다 기본 레벨 블루프린트가 있다. 현재 레벨에서 발생하는 이벤트및 액션을 만드는데 유용하다. 연습을 위해 툴바의 +를 눌러 레벨에 트리거박스를 하나 놓겠다. 트리거박스를 통로에 위치시키고 사이즈를 넓게 해준다. 편집을 위해서는 툴바에서 블루프린트 버튼을 클릭하고 레벨 블루프린트 열기 옵션을 선택한다. 이벤트그래프를 우클릭하고 다음 스크린샷과 같이 TriggerBoxUAID에 대한 이벤트 추가 카테고리에 속한 이벤트 On Actor Begin Overlap을 추가한다. 레벨에디터로 돌아가 컨텐트 드로워를 클릭 하고 StarterContent>Blueprints로 이동하고 Blueprint_Effect_Sparks를 연다. 컴포넌트탭에서 Sparks컴포넌트를 선택하고 디테일탭에서..
[언리얼][블루프린트] 블루프린트의 형변환 부모클래스의 참조는 자식클래스의 변수와 함수에 접근할 수 없다. 형변환 함수를 이용해야 한다. 형변환의 또 다른 용도는 오브젝트 레퍼런스가 원하는 타입인지 안전하게 테스트 하는 것이다. 1.부모 클래스를 게임모드베이스로 BP_GameModeWithScore 블루프린트를 만들고 더블클릭한다. 2. 내블루프린트 패널에서 Integer 타입의 GameScore변수와 AddGameScore함수를 생성한다. 3. AddGameScore함수 디테일 패널에서 Score라는 Integer타입의 입력파라미터를 추가한다. 이 함수는 GameScore변수에 포인트를 추가하는데 사용한다. 4. 함수의 그래프에서 다음 스크린샷에 표시된 액션을 추가한다. GameScore변수의 GET및 SET노드를 추가한다. PrintStrin..
[언리얼][블루프린트] 직접 블루프린트 통신 직접 블루프린트 통신은 블루프린트/액터 사이의 간단한 통신 방법이다. 다른 액터/블루프린트에 대한 참조를 저장하는 오브젝트 레퍼런스 변수를 만드는 데 사용된다. 그런 다음 오브젝트 레퍼런스 변수를 액션의 타깃 입력 파라미터로 사용해 액션을 호출할 수 있다. 플레이어가 지나가면 포인트라이트의 사시성을 토글하는 BP_LightSwitch 블루프린트를 생성해 보자. 1. 프로젝트를 하나 생성하거나 연다. 2. 콘텐츠드러워를 열어 +추가를 누르고 블루프린트 클래스>액터부모클래스> 이름을 BP_LightSwitch 로 한고 더블클릭해서 블루프린트 에디터를 연다. 3. 컴포넌트 패널에서 스태틱 메시 컴포넌트를 추가하고 디테일에서 SM_CornerFrame 스태틱메시를 선택한다. 조명스위치를 시각적으로 표현한다. 4..
[언리얼][블루프린트통신] 블루프린트 통신의 이해 이전 장에서 블루프린트 클래스 함수들을 만드는 법을 배웠다. 이제 한 블루프린트에서 다른 블루프린트의 함수와 이베트를 호출하고 정보에 접근할 수 있는 블루프린트 통신을 소개한다. 레벨 블루프린트에서 액터를 참조하는 방법과 형변환의 개념도 배운다. 블루프린트 클래스와 레벨 블루프린트 사이의 통신을 가능하게 하는 이벤트 디스패쳐와 이벤트를 바인딩하는 방법에 대해서도 알아본다. 이장에서 다음과 같은 통신방법을 배우게 됩니다. 직접 블루프린트 통신 블루프린트의 형변환 레벨 블루프린트 통신 이벤트 디스패처 이벤트 바인딩
[언리얼][블루프린트]게임플레이 프레임워크 클래스 탐색 새 블루프린트를 생성하는 첫 번째 단계 중 하나는 템플릿으로 사용할 부모 클래스를 선택하는 것이다. 버튼에 표시되는 클래스를 기본 클래스라고 하며 게임 플레이 프레임워크의 일부다. 다른 클래스를 부모 클래스로 사용하려면 모든 클래스 카테고리를 확장하고 하는 클래스를 검색한다. 다음은 언리얼은 Object라는 기본 클래스의 계층을 보여준다. Pawn과 Character클래스를 자식으로 갖는 액터클래스와 Scene Component를 자식으로 갖는 Actor Component클래스와는 뿌리가 다르다는것을 알수 있다. Pawn Class Pawn, 폰이란 월드 내 플레이어에 대한 물리적 표현입니다. Pawn 클래스는 플레이어나 AI 가 제어할 수 있는 모든 액터의 베이스 클래스입니다. Pawn 은 월드 내 플..
[블루프린트][객체지향] 컨스트럭션 스크립트 블루프린트 에디터의 패널 중 하나는 컨스트럭션 스크립트라고하며 블루프린트가 처음 레벨에 추가됐을때, 레벨에디터에서 해당 속성이 변경되었을때 또는 런타임에 인스턴스가 생성됐을 때 모든 액터의 블루프린트가 수행하는 특별한 함수다. 예를 들어 레벨별로 블루프린트의 각 인스턴스에 대해 서로 다른 스태틱 메시를 선택할 수 있도록 인스턴스 편집 가능한 스태틱 메시를 사용해서 블루프린트를 생성해 보겠다. 1. 프로젝트를 하나 만들거나 기존것을 사용한다. 2. 콘텐츠브라우저에서 추가 버튼을 클릭후 블루프린트 클래스 옵션을 선택후 부모클래스로 액터를 선택하고 이름을 BP_Construction하고 더블클릭후 블루프린트 에디터를 연다. 3. 컴포넌트패널에서 추가버튼을 클릭후 스태틱메시 컴포넌트를 선택한다. StaticMe..
[블루프린트] 키보드입력 다음과 같이 키보드 이벤트 F를 입력받아 출력하는 Event Graph를 만들어 실행해봐도 키보드 입력이 안되는 경우가 발생했다. 해결을 위해서는 다음과 같이 2가지 방법이 있다. 1. Level Editor>Outliner에서 입력처리를 하는 액터를 선택하고 Detail>Input에서 Auto Receive Input을 Player0를 선택해준다. 2. 이작업을 Event Graph에서 하는 방법도 있다. Event BeginPlay에서 노드를 만들고 Enable Input연결해준다. GetPlayer Controller노드를 만들어 Enable Input의 Player Controller와 연결해준다.
[블루프린트][객체지향] 액터의 스폰과 파괴 컨텐트 드로워클릭후 +Add를 누르고 블루프린트 클래스를 선택한후 액터를 선택해 이름을 BP_Spawn으로 한다. 더블클릭해서 블루프린트 클래스 에디터를 열고 왼쪽위 Components Add를 눌러 Basic Shapes를 하나 추가한다. 뷰포트의 이벤트그래프를 클릭하고 액터의 인스턴스를 만드는 Sapwn Actor from Class라는 함수가 있다. 이 함수를 이벤트그래프에 추가하려면 이벤트그래프 패널을 우클릭해 컨텍스트 메뉴를 열고 검색 상자에 spawn을 입력해서 결과를 필터링한 다음 함수 이름을 클릭한다. Class는 Fire를 검색해서 Blueprint Effect Fire를 선택해준다. 1을 누르면 실행하게 만들기 위해 컨텍스트메뉴을 열어 Keyboard Events 1을 선택하고 Spaw..