본문 바로가기

전체 글649

언리얼엔진5 58장 [C++ Tick함수] ▣ Tick : 액터나 컴포넌트에 일정 간격, 한 프레임에 한 번 코드 또는 블루프린트 스크립트를 실행시키는 것 ▣ MyVector.Z +=1을 하여 프레임마다 Z값이 1씩 증가하고 SetActorLocation(MyVector)으로 넣어주어 Z값이 계속 바뀌는 코드 https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/Actors/Ticking/ 액터 틱 매 프레임 액터를 업데이트하는 데 사용되는 Tick, 틱 시스템에 대한 설명입니다. docs.unrealengine.com ▣ 컴파일 후 시작버튼을 클릭하면 MyVector.Z에 값이 1씩 증가하면서 매프레임마다 큐브에 Z위치가.. 2023. 6. 16.
언리얼엔진5 57장 [C++ 엑터위치함수] ▣ SetActorLocation() : 엑터의 위치는 변경하는 함수, 매개변수 안에 FVector에 값을 넣어야 한다. ▣ +Add 버튼을 클릭하고 컴포넌트 추가 및 모양 추가도 가능 ▣ 컴파일 후 시작버튼을 클릭하면 지정한 Location으로 위치 이동 ▣ 매개변수에 FVector 변수로도 지정 가능 ▣ 컴파일 후 시작하면 MyVector 위치로 이동 2023. 6. 16.
언리얼엔진5 56장 [C++ Vector] ▣ FVector : 자료형이름 앞에 F가 붙으면 블루프린트를 의미, 블루프린트 Vector자료형, 블루프린트 Vector데이터타입 ▣ FVector 초기화 방법 : Fvector 변수이름 = FVector(x, y, z) ▣ ATestActor : 자료형이름에 A가 앞에 붙으면 엑터를 의미 ▣ FVector : FVector에 x, y, z 값 각각 접근하여 대입 가능 ▣ 레벨에 배치 후 컴파일 ▣ 컴파일 완료 후 C++엑터를 확인하면 Vector와 변수 생성 확인 ▣ 플레이를 클릭하고 확인하면 num 변수에 대입 확인 2023. 6. 16.
언리얼엔진5 55장 [C++ 뷰포트에 텍스트 출력] ▣ #include "Engine/GameEngine.h" 추가 ▣ GEngine->AddOnScreenDebugMessage(key, time, color, TEXT()) ▣ TestActor.h에 있는 변수 수정 : MyInt = 100; https://docs.unrealengine.com/5.2/en-US/API/Runtime/Engine/Engine/UEngine/AddOnScreenDebugMessage/1/ UEngine::AddOnScreenDebugMessage Add a [FString](API\Runtime\Core\Containers\FString) to the On-screen debug message system. docs.unrealengine.com ▣ Hello 출력 및 M.. 2023. 6. 15.
언리얼엔진5 54장 [C++ Class, uproperty] ▣ 생성한 C++ Class를 확인하고 더블클릭하여 실행 ▣ .h 헤더파일을 클릭하여 UPROPERTY(EditAnywhere) : 에디터에서 접근가능하게 하는 코드 int32 MyInt = 10; float MyFloat = 3.14; bool MyBool = true; 변수 정의 ▣ CTRL + S 키를 눌러 저장 ▣ 언리얼 에디터에서 컴파일 및 리로드 버튼 클릭 ▣ 이런 식으로 Live coding succeeded 나오면 완료 ▣ 만약 실패할 경우 3가지 확인 ▣ 비주얼스튜디오 저장 경로에 한글이 있는지 확인 ▣ 프로젝트 위치가 한글이 있는지 확인 ▣ 코드에 오타가 있는지 확인 2023. 6. 14.
언리얼엔진5 53장 [언리얼5 Visual Studio 연동] https://docs.unrealengine.com/5.1/ko/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine/ Visual Studio 구성하기 언리얼 엔진에서 Visual Studio 사용을 위해 구성하기 위한 팁, 트릭, 기술을 소개합니다. docs.unrealengine.com ▣ 먼저 위에 나온 API처럼 Visual Studio 설치 ▣ 언리얼엔진 에디터에서 Tools메뉴 -> New C++ Class 선택 ▣ 기본 Actor로 선택 -> Next 버튼 클릭 ▣ Name은 영어로 대문자로 시작해서 지정 ▣ 경로는 영어로 지정, 한글이 있을 경우 버그 발생 가능성 있음 ▣ Creat.. 2023. 6. 10.
언리얼엔진5 52장 [씬 뷰 미리보기 카메라 사이즈 조절] ▣ 3인칭으로 카메라를 넣을 경우 위에 이미지처럼 컴퓨터 해상도에 따라서 레벨씬에 미리 보기 카메라가 너무 크게 보이는 경우가 있다. 이럴 때 미리 보기 카메라 사이즈를 줄이는 방법이 있다. ▣ Camera Preview Size를 조절하면 위에 이미지처럼 미리 보기 뷰 카메라 사이즈를 줄일 수 있다. 2023. 6. 10.
언리얼엔진5 51장 [Visual Studio 설치 및 설정] ▣ 설치 시 설치 세부 정보에서 Unreal Engine 설치관리자 체크 https://docs.unrealengine.com/5.1/ko/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine/ Visual Studio 구성하기 언리얼 엔진에서 Visual Studio 사용을 위해 구성하기 위한 팁, 트릭, 기술을 소개합니다. docs.unrealengine.com ▣ 위에 API에서 나온 것처럼 설치, 언리얼엔진 설치 위치가 다 영어로 되어 있는지 확인 ▣ 설치완료 후 에디터에서 Ediltor Preferences에서 Source Code 설정 Visual Studio 구성하기 언리얼 엔진에서 Vi.. 2023. 6. 9.
언리얼엔진5 50장 [Level Open, Get Level] ▣ Open Level : Level Name에 레벨 열기 ▣ Delay : Duration 초만큼 딜레이 ▣ Get Current Level Name : 현재 있는 레벨 이름을 반환 2023. 6. 9.
언리얼엔진5 49장 [Self, Target] ▣ 블루프린트로 생성 시 BP_ 이름을 붙여서 생성 ▣ Self : 자기 자신에 대한 인스턴스 레퍼런스(주소)를 의미 ▣ Get Display Name : 인스턴스에 이름을 가져오고 반환한다. ▣ SpawnActor BP_Cube : 어떤 Class 객체를 생성할지, Location 위치를 어디로 할지 지정 ▣ Return Value : 생성된 오브젝트 주소 반환 ▣ Target 입력핀에는 객체를 연결 ▣ 시작버튼을 클릭하고 스페이스키를 누르면 큐브가 생성되면서 생성된 큐브 오브젝트 이름 출력 2023. 6. 9.
언리얼엔진5 48장 [Pure Function] ▣ 함수를 생성한 상태하고 클릭한상태에서 디테일에 Pure를 활성화를 하게 되면 Pure Function 된다. ▣ Pure Function는 실행핀이 없다. ▣ Pure Function 함수에서 inputs, output을 추가하게 되면 Get변수와 동일한 노드가 된다. 2023. 6. 8.
언리얼엔진5 47장 [Collapse to Function] ▣ 블루프린트에서 여러 블록을 클릭한 다음에 오른쪽 마우스를 누르면 Collapse to Function라는 메뉴가 있습니다. ▣ 클릭하면 이렇게 여러블록이 하나의 함수로 묶이게 된다. ▣ 만든 함수를 더블 클릭하면 이렇게 함수에 내부를 편집할 수 있습니다. 2023. 6. 8.
언리얼엔진5 46장 [Collision] ▣ 씬메뉴에서 Wireframe, Collision 등 여러 모드로 화면을 설정해서 볼 수 있다. ▣ Mesh에 들어가서 보면 Collision을 설정하는 메뉴가 있고 여러 형태로 자동으로 지정해 줄 수 있다. 2023. 6. 7.
언리얼엔진5 45장 [Actor에 자식추가] ▣ 언리얼 마켓플레이스에서 Pack6을 다운로드합니다. 매달 무료로 제공하는 에셋 체크 ▣ 다운로드하고 프로젝트에 import 합니다. 그리고 프로젝트에 Content에 Meshes 폴더를 찾습니다. ▣ SM_Rack01를 레벨에 드래그하여 불러온 후 SM_Rack02를 레벨에 있는 SM_Rack01 컴포넌트에 StaticMesh에 드래그합니다. 그럼 SM_Rack02가 SM_Rack01 엑터에 자식으로 추가된다. ▣ 그리고 SM_Rock01 엑터에서 Physic를 활성화하여 하늘에서 떨어뜨리게 되면 SM_Rock01과 SM_Rock02가 같이 붙어서 떨어지게 된다. 2023. 6. 6.
언리얼엔진5 44장 [Geometry brush] ▣ Place Actor Panel버튼 == Window에서 Place Actors 버튼을 누를 때와 동일 ▣ Geometry를 클릭해서 Geometry brush 도형 생성 https://docs.unrealengine.com/4.27/ko/Basics/Actors/Brushes/ 지오메트리 브러시 액터 언리얼 에디터에서 브러시를 사용하여 레벨 지오메트리를 만드는 방법 안내서입니다. docs.unrealengine.com ▣ 브러시를 세팅할 때에는 브러시세팅에서 x, y, z 값으로 변경 ▣ 복제할 Box Bruch를 클릭하고 CTRL + D 버튼을 클릭하면 복제가 된다. 복제한 Box에 X, Y, Z 값을 수정하고 Brush Type에서 Subtractive를 설정하면 해당 모양으로 빼기 효과 ▣ 묶.. 2023. 6. 2.
언리얼엔진5 43장 [Get Control Rotation, Get Forward Vector] ▣ Get Control Rotation : Target에 회전값을 반환하는 블록 ▣ 스페이스키를 누르면 BP_Shere가 플레이어가 바라보는 방향 회전하게 하기 위함 https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Pawn/GetControlRotation/ Get Control Rotation Get Control Rotation docs.unrealengine.com ▣ Get Forward Vector : Target에 정면 방향을 반환해 주는 블록 ▣ 방향으로 이동하기 위해 곱하기 진행, Add Impulse에 넣으면 그 해당 정면 방향으로 힘을 가한다. https://docs.unrealengine.com/4.26/en-US/BlueprintAP.. 2023. 5. 26.
언리얼엔진5 42장 [Get Player Pawn] ▣ 플레이버튼을 클릭하고 F8키를 클릭하면 일시정지가 됩니다. 이 상태에서 왼쪽마우스 버튼을 클릭하고 이동하면 Pawn이라는 오브젝트가 생성되어 있는 걸 확인할 수 있습니다. 이건 기본 플레이어를 의미합니다. ▣ 블루프린트에서 Get Player Pawn블록이 있는 이건 Player Pawn에 레퍼런스를 의미하고 Player Index는 몇 번째 플레이어인지를 나타냅니다. 멀티플레이 게임이 아닌 이상 싱글플레이 같은 경우 Player 0입니다. Player Index 또한 설정할 수 있습니다. ▣ Get Actor Location : 엑터의 위치값을 가져오는 블록입니다. ▣ Get 블록을 통해서 우리가 원하는 플레이어 Pawn에 데이터를 가져올 수 있습니다. 2023. 5. 24.
언리얼엔진5 41장 [SpawnActor] ▣ SpawnActor : 원하는 Actor(오브젝트)를 조절하기 위한 블록 Class에 아까 생성했던 BP 블루프린트 지정하고, Transform Location 위치 수정 컴파일 저장 후 ▣ 플레이버튼 클릭 후에 스페이스키를 누르면 우리가 설정한 Location에 블루프린트 생성 ▣ Add Impulse 노드 추가하여 연결 컴파일 저장 후 ▣ SpawnActor에 Return값을 Static Mesh Componet Value에 Target을 연결 그럼 생성한 BP(블루프린트)에 대한 값 반환하여 적용 ▣ 플레이버튼 클릭 후 스페이스키를 누르면 위로 올라가면서 생성 2023. 5. 24.
언리얼엔진5 40장 [class, Blueprint, Materials] ▣ Shapes에서 기본 모양 제작가능 ▣ 생성한 Shapes를 선택하고 디테일 메뉴에서 블루프린트 모양 선택 -> New Subclass를 선택하고 생성 ▣ 블루프린트 클래스이름 앞에는 BP_를 붙여준다. 블루프린트 구분하기 위함 ▣ Static Mesh Component를 선택하고 디테일 탭에서 Materials 클릭하여 색이나 외부 모양 질감 변경가능 ▣ 블루프린트에서 Physics도 변경가능 2023. 5. 24.
언리얼엔진5 39장 [Impulse, Add Force] ▣ Create a Reference Cube가 나오기 위해서는 꼭 해당 엑터를 선택하고 오른쪽 마우스를 클릭해야 한다. ▣ Space Bar 이벤트 : 스페이스에 대한 이벤트 ▣ Pressed 키를 누르면 호출, Released 키를 누르면 떼면 호출 ▣ Add Impulse : 순간적인 힘으로 밀어낸다, 순간적으로 힘을 주기 때문에 계속 힘을 주더라도 힘을 축척하지 않는다. https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Pawn/Components/CharacterMovement/AddImpulse/ Add Impulse Add Impulse docs.unrealengine.com ▣ 좌표를 확인해서 어디로 올라갈지 지정 ▣ 플레이버튼을 클릭 후 스페.. 2023. 5. 22.
언리얼엔진5 38장 [Create a Reference] ▣ 오브젝트 : 데이터 및 기능들의 집합 ▣ 엑터 : 레벨에 있는 오브젝트를 의미 ▣ 큐브를 클릭하고 레벨블루프린트에서 오른쪽마우스를 클릭하면 클릭한 엑터에 레퍼런스 주소를 접근하여 생성 Create Reference to Cube가 목록에 나오게 된다. ▣ Reference : 주소(참조)를 의미 ▣ 파랑색원 : 데이터핀 ▣ Get Static mesh Component : Target에 있는 컴포넌트에 있는 값을 불러온다. ▣ Get Mass : 무게에 값을 받아온다. ▣ Print String : string에 값을 출력 ▣ 블루프린트 완성 시 컴파일버튼 클릭 후 저장을 한다. ▣ 플레이버튼을 클릭하면 Mass 값 출력 2023. 5. 19.
언리얼엔진5 37장 [물리, Physics, Gravity] https://docs.unrealengine.com/5.0/ko/physics-in-unreal-engine/ 피직스 콜리전을 계산하고 물리 액터를 시뮬레이션하는 서브시스템입니다. docs.unrealengine.com ▣ 수정할 엑터를 클릭 후 Details메뉴 -> Search메뉴에서 Physics 키워드를 선택하면 Physics에 대한 디테일 메뉴로 이동 ▣ Simulate Physics : 체크 시 물리 효과 적용 ▣ Enable Gravity : 체크 시 중력에 효과 적용 ▣ Mass(kg) : 체크 시 kg단위로 무게 적용 ▣ Enable Gravity : 해제 시 중력에 효과 비활성화 ▣ 플레이버튼을 클릭하면 큐브는 Enable Gravity가 체크가 되어 있기 때문에 충돌 후 땅에 떨어지.. 2023. 5. 19.
언리얼엔진5 36장 [뷰포트, 퀄리티설정] ▣ 오른쪽마우스 클릭 후 w키, s키, d키, a키를 누르면 뷰 시점을 자유롭게 조절하고 이동할 수 있습니다. ▣ 왼쪽마우스 클릭 후 w키, s키, d키, a키를 눌러 뷰 시점을 조절할 수 있지만 오른쪽마우스 클릭할 때와 다르게 위아래로 시점을 바꿀 수 없고 왼쪽마우스를 클릭한 상태에서 앞뒤 드래그를 하면 앞 뒤로 이동합니다. ▣ 오른쪽마우스나 왼쪽마우스를 클릭한 상태에서 q키나 e키를 누르면 위 아래로 이동합니다. ▣ Settings에서 Engine Scalablility Settings에 들어가면 언리얼엔진 뷰에 대한 퀄리티를 설정할 수 있습니다. 본인 컴퓨터 CPU, GPU 사양에 따라 설정해주시면 됩니다. 2023. 5. 17.
C++ 29 [스마트 포인터] https://learn.microsoft.com/ko-kr/cpp/cpp/smart-pointers-modern-cpp?view=msvc-170 스마트 포인터(최신 C++) 자세한 정보: 스마트 포인터(최신 C++) learn.microsoft.com ▣ 스마트포인터 : C++11 버전 이후부터 새로운 스마트포인터 제공 ▣ 스마트포인터 : 메모리 할당 시 따로 delete를 사용하지 않아도 메모리 자동해제 ▣ 스마트포인터 종류 ▣ unique_ptr : 하나의 객체에 하나의 포인터만 소유권을 가질 수 있는 스마트포인터 ▣ shared_ptr : 하나의 객체가 참조하는 스마트 포인터가 총 몇 개인지를 참조하는 스마트포인터 ▣ weak_ptr : shared_ptr 객체에 대한 접근은 가능하지만 메모리 소.. 2023. 5. 16.