본문 바로가기

[ CODING STUDY ]/》언리얼엔진5 실습120

언리얼엔진5 시네마틱 https://docs.unrealengine.com/5.0/ko/cinematics-and-movie-making-in-unreal-engine/ 시네마틱과 시퀀서 시퀀서는 언리얼 엔진의 멀티 트랙 에디터로, 시네마틱 시퀀스를 실시간으로 제작하고 미리보는 데 사용됩니다. docs.unrealengine.com ▣ 먼저 Add Level Sequence를 생성합니다. ▣ Sequencer Editor는 사용자에게 특수 멀티 트랙 편집기( Matinee와 유사 )를 사용하여 게임 내 시네마틱을 생성할 수 있는 기능을 제공합니다. 레벨 시퀀스를 만들고 트랙을 추가하면 사용자는 장면의 콘텐츠를 결정하는 각 트랙의 구성을 정의할 수 있습니다. 트랙은 애니메이션(캐릭터 애니메이션용), 변환(장면에서 사물 이동),.. 2024. 2. 15.
언리얼엔진5 총알구멍 ▣ 먼저 총알 이미지를 불러와서 이미지를 Material로 생성합니다. ▣ Material Domain과 Blend Mode를 설정합니다. https://docs.unrealengine.com/5.0/ko/unreal-engine-material-properties/ 머티리얼 프로퍼티 언리얼 엔진의 머티리얼 프로퍼티를 소개하는 문서입니다. docs.unrealengine.com ▣ Material Domain 머티리얼 도메인을 설정하면 머티리얼을 사용하는 방식을 정의할 수 있습니다. ▣ Material Domain 종류 Surface 이 세팅은 머티리얼을 오브젝트의 표면에 사용될 대상으로 정의합니다. 여기에는 메탈, 플라스틱, 피부 등의 물리적 표면이 포함됩니다. 디폴트 세팅이며, 대부분 이 세팅을 사용.. 2024. 2. 14.
언리얼엔진5 메모리최적화(비교연산자) ▣ 충돌 시 BP_Player 캐스팅해서 접근해서 사용하게 되면 메모리 사용량이 생각보다 많다. ▣이 부분을 이런 식으로 비교연산자를 사용하여 BP_Player를 캐스팅하지 않고 충돌하게 되면 메모리사용량이 많이 줄어든다. 2024. 2. 13.
언리얼엔진5 메모리최적화(캐스팅 대신 인터페이스사용) ▣ 메모리를 확인하고 싶은 블루프린트에서 오른쪽마우스를 클릭하고 Size Map을 클릭합니다. ▣ 그리고 오른쪽 상단에 있는 메뉴에서 Memory Size를 누르면 어떤 부분에서 메모리가 많이 사용되는지를 표시합니다. 그중에 BP_Player 캐스팅하는 부분이 메모리가 많이 사용되는 걸 확인할 수 있습니다. ▣ 해당 블루프린트를 확인을 해보면 이렇게 BP_Player를 캐스팅하는 걸 확인할 수 있습니다. ▣ 캐스팅을 대신할 때 인터페이스를 사용합니다. https://docs.unrealengine.com/5.0/en-US/blueprint-interface-in-unreal-engine/ Blueprint Interface Blueprints that declare functions to define a.. 2024. 2. 13.
언리얼엔진5 버튼 스위치 ▣ 먼저 스위치 블루프린트를 생성해서 발판 스위치 모양으로 Cube Component추가하고 발판 스위치에 닿이는 BoxCollsion도 추가합니다. ▣ Event Graph에서 BoxCollsion에 Begin과 End 노드를 추가하고 플레이어에 닿으면 Timeline노드를 사용해서 Cube에 Z 위치가 변경되는 노드를 완성합니다. ▣ 컴파일 저장 후 플레이를 해서 플레이어로 버튼을 누르면 내려가고 다시 떨어지면 올라가는 걸 확인할 수 있습니다. 2024. 2. 10.
언리얼엔진5 미니맵 제작 ▣ 먼저 BP_Player블루프린트에서 Spring Arm을 생성합니다. ▣ 그리고 생성한 Spring Arm에 Scene Capture Compoent 2D를 추가합니다. https://docs.unrealengine.com/5.3/en-US/API/Runtime/Engine/Components/USceneCaptureComponent2D/ USceneCaptureComponent2D Used to capture a 'snapshot' of the scene from a single plane and feed it to a render target. docs.unrealengine.com ▣ Scene Capture Compoent 2D : 단일 평면에서 장면의 '스냅샷'을 캡처하여 렌더 대상에 공급하.. 2024. 2. 9.
언리얼엔진5 Mannequins 캐릭터 mixamo 제작하기 https://terribilisstudio.fr/?section=home#close Terribilis Studio Terribilis Studio creates games, softwares and Unreal Engine assets. terribilisstudio.fr ▣ 홈페이지에 오른쪽 상단에 있는 프로그램을 다운로드합니다. ▣ 프로그램에서 MIXAMO CONVERTERV2.3을 클릭하여 들어가서 ▣ 애니메이션을 만들고 싶은 캐릭터를 선택합니다. ▣ 그럼 해당 FBX 파일이 나오는데 mixamo에서 캐릭터를 업데이트 후 내가 원하는 애니메이션을 다운로드합니다. ▣ 그리고 다시 프로그램에 돌아가서 Open the folder with original animations에 들어가서 ▣ 아까 다운로.. 2024. 2. 7.
언리얼엔진5 Auto Possess AI ▣ Pawn에서 AI Controller Class 설정 https://docs.unrealengine.com/5.0/ko/behavior-tree-in-unreal-engine---quick-start-guide/ 비헤이비어 트리 퀵 스타트 가이드 이 가이드에서는 순찰하거나 플레이어를 추격하는 AI 캐릭터를 비헤이비어 트리로 구성하는 방법을 알아봅니다. docs.unrealengine.com ▣ Disabled 기능이 비활성화되었습니다(AI를 자동으로 보유하지 않음). ▣ PlacedInWorld 폰이 세계에 배치된 경우에만 AI 컨트롤러가 소유합니다. ▣ Spawned 월드가 로드된 후 Pawn이 스폰된 경우에만 AI 컨트롤러가 소유합니다. ▣ PlacedInWorldOrSpawned 폰은 생성될 때.. 2024. 2. 2.
언리얼엔진5 손전등 ▣ Component에서 Spot Light를 추가합니다. https://docs.unrealengine.com/5.1/ko/spot-lights-in-unreal-engine/ 스포트 라이트 스포트 라이트에 대한 기초입니다. docs.unrealengine.com ▣ 카메라에 상속해서 넣어주고 Light 디테일을 손전등 느낌이 나오게 조절합니다. ▣ F키를 누르면 Spot Light가 활성화, 비활성회되는 노드를 완성합니다. ▣ 컴파일 저장 후 F키를 누르면 이렇게 손전등이 나오는 걸 확인할 수 있습니다. 2024. 1. 20.
언리얼엔진5 night sky ▣ Content Drawer에 Settings에 Show Engine Content를 체크합니다. 그리고 Lighting폴더 안에 있는 엑터들을 삭제합니다. ▣ Engine폴더에서 Sphere sky를 검색해서 드래그해서 하늘을 레벨에 넣습니다. ▣ 디테일탭에서 Sun Height를 설정해서 밤 배경으로 변경합니다. ▣ 그리고 Directional Light를 추가합니다. ▣ Directional Light (디렉셔널 라이트)는 무한히 먼 거리에 있는 광원에서 오는 빛을 흉내 내는 것입니다. 즉 이 라이트로 인해 드리워지는 모든 그림자는 평행이 되며, 태양광 시뮬레이션에 이상적입니다. 디렉셔널 라이트를 배치하면 세 가지 모빌리티 세팅 중 하나로 설정 가능합니다 https://docs.unrealengi.. 2024. 1. 18.
언리얼엔진5 무기 스켈레톤 장착 ▣ 먼저 무기를 장착할 스켈레톤에 들어가서 무기를 넣을 위치를 찾아 Add Socket를 추가합니다. ▣ 그리고 Add Preview Asset을 선택해서 내가 장착하고 싶은 무기를 선택합니다. ▣ Preview Animation에서 무기를 이용한 애니메이션을 재생하고 아까 생성한 Socket을 선택하고 무기를 원하는 위치 회전값으로 변경하고 저장합니다. ▣ Player 블루프린트로 들어가서 Skeletal Mesh추가하고 ▣ 아까 Socket에 장착했던 무기를 Mesh에 선택해 주고 Sockets에 이름을 아까 생성한 Sockets이름으로 지정하고 Location과 Rotation을 초기화하면 아까 지정했던 Skeletal에서처럼 총이 장착되는 걸 확인할 수 있습니다. 2024. 1. 12.
언리얼엔진5 메뉴화면 ▣ 메뉴화면을 표시할 레벨을 생성합니다. 이름은 MenuMap으로 지정했습니다. ▣ 그리고 widget blueprint를 생성하는 이름을 WB_Menu로 지정합니다. WB_Menu에서 화면처럼 이미지, 버튼을 추가해서 메뉴디자인을 진행합니다. ▣ Start버튼과 End버튼을 클릭하고 각각 디테일에서 Is Variable을 체크합니다. ▣ 그리고 StartButton, EndButton에 Events에 On Clicked를 클릭하여 각각 이벤트를 추가합니다. ▣ StartButton On Clicked이벤트에는 소리가 나오고 다른 레벨을 실행하는 노드를 완성하고 EndButton Clicked 이벤트에는 소리가 나오고 게임이 끝내는 노드를 연결해서 완성합니다. 컴파일 저장 후 https://docs.un.. 2024. 1. 10.
언리얼엔진5 키를 누르면 문 열기 ▣ 먼저 BP_Door이름에 블루프린트 Actor를 생성하고 Mesh 문 정면과 후면에 BoxCollstion을 각각 생성하고 위치를 지정합니다. 그리고 BoxCollstion에 Collsion방식을 Overlap으로 지정합니다. ▣ EventGraph로 들어가서 BoxCollsion에 Begin Overlap, End Overlap이벤트를 생성하고 각각 문에 충돌에 대한 여부를 isForwardBox 변수를 생성해서 True, False를 연결합니다. Begin 충돌 시 IsForwardBox를 True End 충돌 후 떨어지면 IsForwardBox를 False ▣ 그리고 AddEventCustom을 생성해서 DoorOpen, DoorClose을 각각 이름을 지정합니다. Timeline노드를 생성해서.. 2024. 1. 9.
언리얼엔진5 3D UI 입력 위젯 ▣ 먼저 WB_GetUI라는 이름으로 입력 Widget을 생성합니다. Player가 아이템에 가까이 있으면 E키를 누르는 버튼이 나오게 하기 위한 디자인으로 완성했습니다. ▣ 그리고 아이템 블루프린트에 들어가서 Componets에 Widget을 추가합니다. ▣ 이어서 플레이어가 가까이 있는지를 검사하는 Sphere collsion도 추가하고 크기도 변경합니다. ▣ 이제 위젯을 E키 위젯이 나타날 위치로 이동하고 User Interface메뉴에 Space를 Screen으로 Widget Class는 WB_GetUI로 지정합니다. Space를 Screen으로 지정하게 되면 사라지는데 이건 스크린에 방향에 따라 보이게 하는 기능이기 때문에 플레이 시 플레이어 시점에 따라 보이게 됩니다. ▣ Event Graph.. 2024. 1. 8.
언리얼엔진5 BoxTrace로 아이템 획득 ▣ 먼저 아이템 key모양에 매쉬를 다운로드하고 BP_Key Actor를 생성합니다. https://www.turbosquid.com/ko/ 전문가용 3D 모델 :: TurboSquid 자동차, 사람, 질감, 건축 모델 등의 방대한 온라인 카탈로그에서 프로젝트의 3D 모델을 구입하십시오. www.turbosquid.com ▣ 아이템을 획득할 input에 Action Mappings를 추가합니다. ▣ BP_Player에 가서 Cube를 생성하고 Mesh를 삭제한 다음에 BoxTrace가 발사할 위치로 이동합니다. ▣ 그리고 Cube에 대한 Location과 Forward 방향에 대한 부분을 BoxTrace에 Start와 End에 각각 연결합니다. 그리고 Half Size 조절을 통해서 Box에 크기를 지정.. 2024. 1. 8.
언리얼엔진5 door open ▣ 문을 관리하는 Door 폴더를 생성합니다. ▣ 그리고 블루프린트를 생성하고 이름을 BP_Door로 지정합니다. ▣ BP_Door창에 들어가서 Static Mesh를 생성하고 문 Mesh를 지정합니다. ▣ 문 앞과 뒤를 구분하는 BoxCollsition 2개를 생성하고 각각 Collistion을 Overlap으로 지정합니다. ▣ 먼저 ForwardBox에 Begin Overlap 이벤트를 생성하고 Play Sound at Location 노드를 이용해서 충돌하면 문 여는 소리 재생하는 노드를 완성합니다. ▣ 그리고 Timeline 노드를 생성합니다. https://docs.unrealengine.com/5.3/ko/timelines-in-unreal-engine/ 타임라인 언리얼의 타임라인에 대한 개요.. 2024. 1. 7.
언리얼엔진5 입력모드, 게임 일시중지 설정, 위젯제거 ▣ 위젯을 먼저 생성합니다. Button에 Text를 각각 상속해서 제작합니다. ▣ 블루프린트를 추가할 Button을 클릭하고 디테일탭에 Event에 On Cilcked를 클릭해서 블루프린트를 추가합니다. On Cilcked는 버튼을 클릭하면 호출하는 이벤트입니다. ▣ ScoreUpButton을 클릭하면 Get Game Mode에 접근하여 함수를 호출하는 코드를 완성했습니다. 위에 이미지처럼 완성하면 ScoreUpButton을 클릭하면 함수가 호출되어 Score 숫자가 +1이 됩니다. ▣ PauseButton을 클릭하면 Set Game Paused를 통해서 게임을 일시중지하는 걸 활성화하는 노드를 완성했습니다. Paused True : 게임 일시정지 Paused False : 게임 언일시정지 https:.. 2024. 1. 4.
언리얼엔진5 Format Text노드에서 줄바꿈 ▣ Format Text노드에서 줄 바꿈을 추가하기 위해서는 Format 입력핀에 줄 바꿈 할 Text에서 Shift + Enter를 눌러서 추가합니다. 2024. 1. 4.
언리얼엔진5 Line Trace 종류 https://docs.unrealengine.com/5.3/ko/traces-tutorials-in-unreal-engine/ 트레이스 안내서 언리얼 엔진에서의 트레이스, 다른 말로 레이캐스트에 대한 안내서입니다. docs.unrealengine.com ▣ Line Trace는 크게 두 가지로 나뉩니다. - MultiLineTrace - LineTrace ▣ Line Trace By Channel는 싱글 Line Trace By Channel로 직선상에 콜리전 트레이스를 수행하여 트레이스에 히트한 첫 번째 오브젝트를 반환합니다 ▣ Line Trace By Profile는 Profile Name에 따른 히트를 반환합니다. ▣ Start에는 Line Trace 발사 시작 위치(카메라 시작위치) ▣ End에.. 2024. 1. 3.
언리얼엔진5 InterpToMovement 이동 해결방법 ▣ Pos 변수 Vector 값을 이동해도 그 위치까지 이동하지 않는 이유는 기본 DefaultSceneRoot에 Transform에 Scale을 변경했기 때문입니다. 이걸 변경하고 컴파일 저장 후 ▣ Pos Widget를 확인하면 Scale과 동일하게 크기가 확대된 걸 확인할 수 있습니다. 그리고 확대된 Scale 때문에 이동위치도 영향을 받아 원하는 Pos까지 이동하지 않습니다. ▣ 이럴 경우 다시 DefaultSceneRoot에 Transform에 Scale을 기본 값 1로 변경합니다. 그리고 컴파일 저장 후 ▣ 레벨에서 확인해 보면 Pos 모양이 다시 원래 크기로 변경되고 원하는 위치까지 이동하는 걸 확인할 수 있습니다. 그리고 Mesh와 Box Collision을 변경해도 영향을 받지 않습니다. 2024. 1. 2.
언리얼엔진5 Aim을 Bone으로 조절 ▣ 먼저 Rotator 자료형으로 AimRotation 변수를 생성합니다. ▣ 그런 다음에 BP_Player에 Get Actor Rotation과 Get Control Rotation을 Delta(Rotator) 노드를 연결하여 연산합니다. https://docs.unrealengine.com/4.27/en-US/BlueprintAPI/Math/Rotator/Delta_Rotator/ Delta (Rotator) Delta (Rotator) docs.unrealengine.com ▣ Delta(Rotator) 노드는 두개의 회전값을 정규화된 A B대상은 Kismet 수학 라이브러리를 이용해서 연산합니다. ▣ 다음에 AimRotation변수 Set노드에 Delta로 연산한 X, Z 값만 조절해서 넣습니다... 2023. 12. 30.