분류 전체보기 (573)     블로그 내 검색 검색     글쓰기     관리자 썸네일형 리스트형 [이득우 언리얼 C++] 프로젝트의 재구성 언리얼에서 액터생성은 쉽게 했지만 제거는 할수 없다. 제거를 위해서는 C++개발환경의 이해가 필요하다. 프로젝트 폴더를 보면서 체크된 폴더를 지워야한다. 먼저 프로젝트를 닫기전 레벨에서 Fountain관련 객체들을 지운다. Visual Studio에서 Source폴더내 Private, Public폴더내의 Fountain.h와 Fountain.cpp를 우클릭후 프로젝트에서 제외를 선택한다. 코드는 Source폴더내 Private, Public폴더내의 Fountain.h와 Fountain.cpp를 지워야 한다. 폴더안에 모든 파일및 폴더를 지우면 안된다. 이후 프로젝트 폴더의 ArenaBattle.uproject위를 우클릭해 솔루션파일을 생성해주면 된다. Arenabattle.uproject가 다시 생기면 .. [이득우 언리얼 C++] 움직이는 액터의 설계 이번에는 렌더링 프레임 호출되는 액터의 Tick()함수를 이용해 액터의 움직임을 구현해본다. Tick()함수는 전 렌더링프레임과의 시간차를 DeltaTime에 담아 전달해준다. 구현시 사용하는 moveSpeed와 같은 변수들은 public:으로 사용하면 문제없지만 private:일 경우 컴파일 에러가 발생한다. 이를 피하기 위해 다음과 같이 Fountain.h에 선언해야한다. private: UPROPERTY(EditAnywhere, Category = Stat, Meta = (AllowPrivateAccess = true)) float RotateSpeed; Fountain.cpp Tick()에 AddActor~를 추가해 오브젝트를 돌게 해준다. 현재 회전값에 RotateSpeed*DeltaTime만큼.. [이득우 언리얼 C++] 로깅 환경의 설정 로깅 환경의 설정 출력 로그 윈도우 언리얼 엔진은 로그(Log) 환경을 위해 UE_LOG 라는 매크로를 제공하고 있다. 표준 카테고리를 사용하면 아무런 선언없이 사용할 수 있다. 그냥 표준을 쓰는걸 권장드린다. 괜히 커스텀 카테고리 만들라고 이런걸로 시간 없애지 말자. UE_LOG(카테고리, 로깅수준, 형식 문자열, 인자... ) Fountain.cpp BeginPlay()에 다음과 같이 로그를 넣으면 플레이시 콘솔에서 로그를 볼 수 있다. #include "Fountain.h" //DEFINE_LOG_CATEGORY(ArenaBattle); // Called when the game starts or when spawned void AFountain::BeginPlay() { Super::BeginPl.. [이득우C++게임개발] 객체 유형과값 유형 언리얼 오브젝트의 속성 값은 객체 유형과 값 유형으로 나뉜다. 값유형은 unint8, int32, float, FString, FName, FVector, FRotator, FTransform등이 있다 이들은 UPROPERTY 매크로를 설정해주면 미리 예약된 기본값이 지정된다. 초기화 하지 않아도 초기값이 지정된다는 것 같다. Fountain.h에 publc: 맨 마지막에 int32 ID를 추가해준다 UPROPERTY(VisibleAnywhere) int32 ID; 빌드해서 언리얼에디터의 디테일에서 확인해보면 비활성화 되어 있다 말그대로 VisableAnywhere 로 설정해서 그런데 어 그런데 액터는 디테일에서 값을 편집하지 않았던가. 사실 객체에서도 StaticMeshComponet를 다른 컴포넌트로.. [이득우C++게임개발] 액터의 설계 - 언리얼 콘텐츠의 구성요소 언리얼 레벨에디터 뷰포트에 보이는 작업공간은 현실 세계를 모방한 가상공간으로 월드라고 부른다. 월드는 공간, 시간, 물리, 렌더링으로 이루어지는더 더 자세한건 툴바의 세팅>월드세팅 메뉴를 통해 확인 가능하다. 컨텐츠를 구성하는 요소로는 액터,레벨, 컴포넌트등이 있다. 액터는 배우, 레벨은 무대, 컴포넌트는 배우와 레벨을 꾸며주는 다양한 기술 효과라고 이해하면 편할듯 하자. 액터의 설계 우리가 앞에서 Fountain이라는 C++클래스를 만들었지만 배치해보면 아무것도 보이지 않는데 아웃라이너에서 이름은 확인할 수 있다. 우리는 C++클래스의 이름만 지워주었지 아직 아무것도 설정한게 없어서 그렇다. 블루프린트하고 좀 다르다. 언리얼 C++프로젝트 구성은 4.15버전 부터 IWYU(Include What You.. [이득우C++게임개발] 예제 프로젝트의 준비 에픽게임즈 러처를 띄우고 언리얼엔진 마켓플레이스 에서 검색창에서 Infinity Grass 키워드로 Infinity Blade: Grass Lands 패키지를 찾는다. 작년에는 5.2 5.3을 지워하지 않아서 책을 덮었는데 이제 지원한다. 구매후 프로젝트에 추가 버튼을 클릭해 방금 생성한 ArenaBattle프로젝트를 클릭해 추가한다. 설치가 시작된다. 버전과 안 맞는다 이러면 문제인데 업그레이드 되어 잘된다. 설치가 끝나도 프로젝트에 추가가 보이는데 무시하고 언리얼에디터로 돌아간다. 컨텐트 드러워를 열면 InfinityBladeGrassLands폴더가 생겨있다. Maps폴더의 ElvenRuins 레벨을 더블클릭해 로딩한다. 로딩하는데 1분정도 걸리는데 기다린다. 로딩이 종료되면 에디터 위쪽 가운데 플레.. [이득우C++게임개발] 예제 프로젝트의 준비 에픽게임즈 러처를 띄우고 언리얼엔진 마켓플레이스 에서 검색창에서 Infinity Grass 키워드로 Infinity Blade: Grass Lands 패키지를 찾는다. 작년에는 5.2 5.3을 지워하지 않아서 책을 덮었는데 이제 지원한다. 구매후 프로젝트에 추가 버튼을 클릭해 방금 생성한 ArenaBattle프로젝트를 클릭해 추가한다. 설치가 시작된다. 버전과 안 맞는다 이러면 문제인데 업그레이드 되어 잘된다. 설치가 끝나도 프로젝트에 추가가 보이는데 무시하고 언리얼에디터로 돌아간다. 컨텐트 드러워를 열면 InfinityBladeGrassLands폴더가 생겨있다. Maps폴더의 ElvenRuins 레벨을 더블클릭해 로딩한다. 로딩하는데 1분정도 걸리는데 기다린다. 로딩이 종료되면 에디터 위쪽 가운데 플레.. [이득우C++게임개발] C++프로젝트로의 확장 프로젝트 만들때 템플릿을 ThirdPerson C++ 스타터컨텐트선택했지만 안하셨어도 추후 언리얼에디터에서 다 추가할 수 있다. 블러거는 처음에는 모르고 몇번이나 처음부터 다시 만들었었다. 어떤 프로젝트라도 C++클래스는 추가가능하다. Tools메뉴에서 New C++ Class를 선택 부모클래스를 Actor로 선택한다. 다음화면에서 ClassType은 Public선택후 이름은 Fountain으로 한다 Create를 클릭하면 언리얼이 라이브코딩이라고. 언리얼이 비주얼스튜디오를 직접 작동시킨다 Build fail이난다. 그리고 C++클래스는 다음 C++/프로젝트명폴더에 생기는 데 가보면 아직 만들어지지 않았다. 당황하지 말자. C++클래스를 만들면 무조건 언리얼에디터를 끄고 Visual Studio로 가서 .. [이득우C++게임개발] 프로젝트 만들기 ArenaBattle 이득우 선생의 언리얼 C++게임개발의 정석은 Ver4.2때 저술된거라 공부할때 어려움이 많아 접었다가. 최근 언리얼을 어느정도 알게 되어 다시 도전해 본다. 현재 블러거의 언리얼 엔진 버전은 5.2이다. 기본 프로젝트의 생성 삼인칭 텔플릿을 선택하고 C++, Starter Content를 선택하고 ArenaBattle로 프로젝트명을 설정하고 만든다. 프로젝트명과 폴더명은 영어로 한다. 아직 한글은 불안하다. 로딩후 UE4 메뉴로 바꾸고 싶은면 메뉴 window에서 LoadLayout>UE4 Classic Layout으로 변경한다. 화면 왼쪽아래 컨텐트 드로워를 클릭하면 폴더목록이 보이는데 최상위 ALL이 있고 그다음은 Content인데 마우스를 올려보면 /Game이라는 가상경로로 시작한다. 실제폴더를 알.. UE5 Water Material 만들기 Water Material 적용 전 후 Unreal Engine 5를 이용해서 Water Material 제작을 따라 해보았습니다. 배경 제작에 물이 또 상당 부분을 차지하는데 나중에 참고하기 위해서 글을 작성해봅니다! 출처 : https://www.youtube.com/watch?v=52RR8jIrDhQ 우선 제가 만든 최종 머트리얼 노드는 이렇습니다. 영상 보고 제작하는데 어렵지 않았지만 천천히 제작하실분들을 위해 적어봅니다. 우선 첫번째로 콘텐츠 팩 추가에서 시작용 콘텐츠를 프로젝트에 추가합니다. 물 질감의 텍스쳐를 포함하고 있기 때문에 추가를 합니다. 그 다음으로는 빈 폴더에 우클릭 후 머티리얼을 생성 합니다. 저는 Water라는 이름의 머티리얼을 생성했습니다. 생성된 머티리얼을 더블클.. Foliage Tool 폴리지툴 언리얼 Foliage Tool (폴리지 툴)은 필터가 활성화된 액터 및 지오메트리에 스태틱 메시 또는 액터 폴리지 세트를 빠르게 칠하고 지울 수 있습니다. 폴리지 툴의 실전 예제는 랜드스케이프 콘텐츠 예제 콘텐츠 예제의 1.3 - 폴리지 섹션을 확인하시기 바랍니다. 폴리지 편집 모드 폴리지 툴을 사용하려면, 모드 패널의 Foliage (폴리지) 버튼을 (Shift+4) 누릅니다. 폴리지 편집 모드 창이 모드 패널에 나타납니다. ,폴리지 타입 Add Foliage Type (폴리지 타입 추가) 드롭다운 버튼을 선택해서 다음과 같이 추가할 수 있습니다: 폴리지 타입설명 Actor 액터 - 씬에 블루프린트 또는 네이티브 액터 인스턴스를 배치하는 폴리지 타입입니다. Static Mesh 스태틱 메시 - 메시 인스턴싱을.. 뷰포트조작방법 - 단축키 [원근 뷰포트 이동 단축키 (MacOS 기준)] 우클릭 + WASD WASD를 방향키로 하여 앞뒤좌우로 이동 우클릭 + E, Q 위아래로 이동 (E : 위 / Q : 아래) 우클릭 + C, Z 우클릭 시 줌인&줌아웃, 우클릭 떼면 원상복구 (C : 줌인 / Z : 줌아웃) 마우스 스크롤 뷰포트 줌인& 줌아웃 우클릭 뷰포트 회전 F 선택한 액터 중심으로 뷰포트 확대 좌클릭 드래그 Z축을 고정한 상태로 이동 및 회전 (좌우 : 회전 / 앞뒤 : 이동) 좌클릭 + 우클릭 드래그 양옆과 위아래로 이동 (좌우 : 양옆 / 앞뒤 : 위아래) 개인적으로는 '우클릭 + WASD / E, Q, C, Z'로 원근 뷰포트를 조작하는 것을 권장한다. 마우스 드래그를 통한 이동보다는 방향키를 통한 이동이 사람들에게 더 익숙하기.. 이전 1 ··· 36 37 38 39 40 41 42 ··· 48 다음