Unreal/득우짱의 언리얼 (11) 썸네일형 리스트형 Chapter13 프로젝트의 설정과 무한 맵의 제작 1. 새로운 모듈을 추가하려면 언리얼 빌드 규칙을 이해하고, 이에 따라 폴더와 파일을 생성해야 한다. 추가 모듈 제작을 위해 필요한 요소는 다음과 같다. 모듈 폴더와 빌드 설정 파일 - 모듈 폴더와 모듈 명으로 된 Build.cs 파일모듈 정의 파일 - 모듈명으로 된 .cpp 파일 2. 비쥬얼 스튜디오에서 추가한 모듈을 빌드하도록 각 Target.cs 파일은 게임 빌드와 빌드 설정을 지정해준다.이렇게 하면 빌드시 Binaries폴더에 DLL이 생성된다. 그렇다면 얼리얼 에디터가 이 DLL을 로딩하도록 명령하는 일만 남았다.이를 uproject 파일에 새로운 모듈에 대한 정보를 기입한다. 3. 생성자 코드에서 캐릭터 애셋을 코드로 지정할 수 있지만, 만일 애셋이 변경되면 코드를 다시 만들고 컴파일해야 하는.. Chapter12 AI 컨트롤러와 비헤이비어 트리 1. 엔진버전 4.20 버전부터 내비게이션 시스템 구조가 변경됐다.( 말이 많더니 계속 바뀌는중인듯!)- PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG", "NavigationSystem"}); 모듈- #include "NavigationSystem.h" #include "Blueprint\AIBlueprintHelperLibrary.h" 참조 추가-UAIBlueprintHelperLibrary::SimpleMoveToLocation(this, NextLocation.Location); 블루프린트 함수로 이동함 2. 비헤이비어 트리는 NPC가 해야 할 행동을 분석하고 .. Chapter9 충돌 설정과 대미지 1. 언리얼 엔진에서는 콜리전을 크게 세 가지 방법으로 제작할 수 있다.- 스태틱메시 애셋 : 스태틱 메시 애셋에 콜리전을 심는 방법이다.- 기본 도형 컴포넌트 : 구체, 박스, 캡슐등의 도형을 사용해 충돌 영역 지정- 피직스 애셋 : 특정 상황에서 캐릭터의 각 관절이 흐느적거리는 RagDoll 효과를 구현할 때 각 부위에 기본 도형으로 충돌 영역을 설정하고이를 연결해 캐릭터의 물리를 설정한다. 피직스 애셋은 스켈레탈 메시에서만 사용할 수 있다. 2. Collision Enabled 항목- Query : 충돌 영역이 서로 겹치는지 테스트 하는 설정. 충돌 영역이 겹치면 관련 컴포넌트에 BeginOverlap 이벤트가 발생레이케스트나 스윕 기능도 Query에 속한다.- Physics : 물리적인 시뮬레이션.. Chapter7,8 애니메이션 애니메이션 블루프린트는 시각적 도구를 사용해 애니메이션 시스템을 제작하도록 설계된 애님 그래프, 애니메이션 블루프린트의 기반을 이루는 애님 인스턴스 두 가지로 구성된다.1. - 애님 인스턴스 : 스켈레탈 메시를 소유하는 폰의 정보를 받아 애님 그래프가 참조할 데이터를 제공한다. 블루프린트와 C++로 제작할 수 있다.- 애님 그래프 : 애님 인스턴스 변수 값에 따라 변화하는 애니메이션 시스템을 설계하는 공간이다. 2. 게임 엔진은 틱마다 입력시스템->게임 로직-> 애니메이션 시스템 순으로 로직을 실행한다. 3. 스테이트 머신, 트랜지션 4. UPROPERTY에 설정하는 키워드인 EditAnywhere와 VisibleAnywhere에 있는 Anywhere 키워드는 에디터와의 연동 방법에 따라 Defaults.. Chaper6 캐릭터의 제작과 컨트롤 1. 캐릭터 무브먼트 컴포넌트가 FloatingPawnMovemnt에 비해 가지는 장점은?- 점프와 같은 중력을 반영한 움직임 제공- 기어가기 날아가기 수영하기 등 다양한 움직임 가능- 멀티 플레이 환경에서 캐릭터들의 움직임을 자동으로 동기화 2. 컨트롤러는 물리적 상황을 고려하지 않은 플레이어의 의지에 관한 데이터를 관리 폰은 게임 세계에서 물리적인 제약을 가지기 떄문에 물리적인 상황을 관리 3. C++은 class 키워드로 열거형을 선언하는 방식과 class 없이 선언하는 방식, 이렇게 두 가지를 제공한다.다른 열거형간의 묵시적 변환을 허용하지 않는 전자의 방식을 추천한다.범위있는 enum (Class 키워드) vs 범위없는 enum // Effective modern C++항목 10에서전자의 장점 .. Chapter5 폰의 제작과 조작 1. 플레이어 컨트롤러에서 추가로 고려할 부분은 화면에 관련된 인터페이스 기능이다. 플레이어 컨트롤러는 게임에서 플레이어의 입력과 출력되는 화면을 책임진다. 2. 애니메이션 블루프린트는 애님 그래프 로직에 따라 동작하는 캐릭터 애니메이션 시스템을 구동시키는데, 이러한 애니메이션 시스템은 C++ 프로그래밍의 애님 인스턴스라는 클래스로 관리 3. 스켈레탈 메시 컴포넌트는 자신이 관리하는 캐릭터 애니메이션을 이 애님 인스턴스에 위임하는 구조로 설계스켈레탈 메시가 이 애니메이션 블루프린트를 실행시키려면 블루프린트 애셋의 정보를 애님 인스턴스 속성에 지정해줘야 한다. Chapter4 게임플레이 프레임워크 1. 월드 아웃라이너에서 레벨을 구성하는 액터는 흰색으로, 게임플레이중 생성된 엑터는 노란색으로 표시된다. 2. 언리얼 오브젝트의 클래스 정보는 언리얼 헤더 툴에 의해 자동으로 생성된다. 3. 플레이어가 입장하면 게임모드는 플레이어에게 폰을 배정해준다. 추가로 컨트롤러도 배정해준다. 플레이어 컨트롤러 - 현실 세계의 플레이어를 대변하는 무형의 엑터. 게임 세계에서 플레이어와 소통하며 폰을 조종하는 역할을 맡는다. 플레이어 컨트롤러는 플레이어가 입장할때 배정되며 배정된 플레이어 컨트롤러는 변경할 수 없다. 4. 플레이어가 플레이어 컨트롤러를 통해 폰을 조종하는 행위를 빙의라고 한다. 플레이어 컨트롤러 생성-> 플레이어 폰 생성-> 빙의 -> 게임시작 플레이어가 게임에 입장하는 것을 언리얼 엔진에서는 로그인.. Chapter3 움직이는 액터의 제작 1. UE_LOG(카테고리, 로깅수준, 형식 문자열, 인자...)- 만일 에디터가 아닌 파일 로그를 직접 확인하고자 한다면, 프로젝트의 Saved 폴더 내에 있는 Logs 폴더로 들어가서 확인- 로그 수준은 메시지, 경고, 에러 이렇게 세가지로 나뉜다. 각각 흰색, 노란색 2. 프로그래밍에서 어설션은 반드시 확인하고 넘어가야하는 점검 코드를 의미한다.어셜션 기능이 효과적으로 발휘되려면 디버깅 정보를 파악할 수 있는 디버깅 기호가 엔진에 있어야 한다.잘 쓰자. 정말 잘~ 써야함 3. 엑터의 수명주기 궁금하지 아니하니? 4. 정보은닉을 위해 UPROPERTY 변수를 private으로 선언하면 컴파일 과정에서 에러가 발생한다. UPROPERT 매크로에AllowPrivateAccess 라는 META 키워드를 추.. 이전 1 2 다음