본문 바로가기

[ CODING STUDY ]477

언리얼엔진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.
유니티 night skybox https://docs.unity3d.com/kr/2018.4/Manual/class-Skybox.html 스카이박스 - Unity 매뉴얼 스카이박스(Skyboxes) 는 전체 씬을 둘러싸는 래퍼로 지오메트리 너머의 월드가 어떻게 생겼는지를 보여줍니다. docs.unity3d.com ▣ 먼저 Material을 생성합니다. ▣ Material -> Shader -> SkyBox -> 6 Sided를 설정하고 받아온 에셋을 위치에 맞게 지정합니다. ▣ Windows -> Rendering -> Lighting에서 Skybox Material에 아까 생성한 material를 넣어서 skybox를 변경합니다. ▣ 그럼 이렇게 밤하늘이 완성됩니다. 2024. 1. 21.
언리얼엔진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.
유니티 ai NavMeshAgent ▣ 먼저 Packages에서 AI Navigation를 추가합니다. ▣ Zombie 오브젝트에 Nav Mesh Agent Component 추가합니다. ▣ Nav Mesh Agent Component를 통해서 Zombie 오브젝트 AI를 제어합니다. https://docs.unity3d.com/kr/2021.3/Manual/class-NavMeshAgent.html 내비메시 에이전트 - Unity 매뉴얼 NavMeshAgent 컴포넌트는 목표를 향해 움직일 때 서로를 피해가는 캐릭터 생성에 유용합니다. 에이전트는 내비메시를 이용하여 게임 월드에 대해 추론하고 서로 또는 기타 움직이는 장애물을 피할 docs.unity3d.com ▣ Zombie 스크립트를 생성해서 추가하고 스크립트에 AI에 대한 네임스페이.. 2024. 1. 20.
유니티 배경음악, 레벨유지 ▣ 빈오브젝트를 생성하고 SoundManager라는 이름으로 지정하고 Audio Source Component를 두 개를 추가합니다. 배경음악, 효과음을 따로 플레이하여 관리하기 위함입니다. https://docs.unity3d.com/kr/2020.3/Manual/class-AudioSource.html 오디오 소스 - Unity 매뉴얼 오디오 소스(Audio Source) 는 씬에서 오디오 클립을 재생합니다. 이 클립은 오디오 리스너 또는 오디오 믹서를 통해 재생 가능합니다. 오디오 소스는 모든 종류의 오디오 클립을 재생할 수 있으며, docs.unity3d.com ▣ SoundManager 스크립트에 먼저 SounManager를 instace 싱글톤을 시켜서 모두가 접근할 수 있게 코드를 작성하고 .. 2024. 1. 19.
유니티 raycast, 총알효과 ▣ 레이케스트 장면의 모든 충돌체에 대해 지점에서 origin방향으로 direction길이의 광선을 투사합니다. maxDistance 충돌 생성에 관심이 없는 충돌체를 필터링하기 위해 선택적으로 LayerMask를 제공할 수 있습니다. 지정하면 queryTriggerInteraction트리거 충돌체가 적중을 생성하는지 여부 또는 전역 Physics.queriesHitTriggers 설정을 사용할지 여부를 제어할 수 있습니다. ▣ public static bool Raycast ( Vector3 원점, Vector3방향, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryT.. 2024. 1. 19.
언리얼엔진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.
유니티 3d ui ▣ 먼저 Canvas를 생성합니다. Canvas Render Mode를 World Space으로 지정합니다. https://docs.unity3d.com/kr/530/Manual/UICanvas.html 캔버스 - Unity 매뉴얼 모든 UI 요소는 Canvas 안에 위치해야 합니다. 캔버스는 Canvas 컴포넌트가 있는 게임 오브젝트이며 모든 UI 요소는 반드시 어떤 캔버스의 자식이어야 합니다. docs.unity3d.com ▣ 월드 공간(World Space) 이 렌더 모드에서는 캔버스는 씬에 있는 다른 오브젝트처럼 동작합니다. 캔버스의 크기는 사각 트랜스폼을 사용하여 수동으로 설정할 수 있으며 UI 요소는 3D 배치에 기반하여 씬의 다른 오브젝트의 앞 또는 뒤에 렌더링 됩니다. 이 방식은 월드의 일.. 2024. 1. 18.
유니티 뛰는 애니메이션 ▣ 플레이어 애니메이션에 Parameters를 Float 형식으로 추가합니다. ▣ Base Layer에서 From New Blend Tree를 추가합니다. ▣ Blend Tree 이름을 지정하고 기본애니메이션과 연결합니다. Parameters는 아까 생성한 Run으로 지정하고 기본값은 0으로 합니다. ▣ Blend Tree에 두 개의 애니메이션을 추가합니다. ▣ 플레이어 스크립트로 들어가서 움직임 입력을 받은 코드에 Abs를 이용해서 앞뒤좌우 상관없이 모두 다 애니메이션에 값을 양수 1로 할 수 있게 Abs 함수를 사용했습니다. https://docs.unity3d.com/kr/530/ScriptReference/Mathf.Abs.html Mathf-Abs - Unity 스크립팅 API Returns t.. 2024. 1. 18.
유니티 crosshair ▣ 먼저 UI에 Panel를 생성합니다. Panel Component에 Image는 삭제하고 Anchors로 Midlle center로 정렬합니다. 그리고 크기 Width, Height는 100으로 지정합니다. ▣ UI Image를 Panel안에 상속하여 생성하고 각각 위치에 맞게 정렬한 다음에 크기를 지정합니다. ▣ 그리고 Panel 오브젝트에 스크립트를 추가합니다. ▣ RectTransfrom crossHair; 를 통해서 Panel에 크기를 조절하기 위함입니다. ▣ WeaponManager코드는 총을 쏘는 스크립트를 가져오기 위함입니다. ▣ 총을 쏘면 Mathf.Lerp 함수를 이용해서 서서히 크기를 조절합니다. https://docs.unity3d.com/kr/530/ScriptReference/.. 2024. 1. 18.
유니티 총 파티클효과 ▣ ParticleSystem 을 가져와서 Play()함수로 재생이 가능합니다. https://docs.unity3d.com/kr/2022.3/Manual/class-ParticleSystem.html 파티클 시스템 - Unity 매뉴얼 Particle System 컴포넌트는 씬 안에 다수의 작은 2D 이미지를 생성하고 애니메이션하여 액체, 구름 및 불꽃 같은 유체 엔티티를 시뮬레이션합니다. 파티클 시스템과 그 용도에 대한 전체 개요는 파 docs.unity3d.com 2024. 1. 17.
유니티 카메라쉐이크 ▣ 코루틴 호출 시 -> 카메라 오지지 널 위치 저장 -> whlie문을 이용해서 흔들기는 시간까지 반복 -> 랜덤으로 흔들기 강도만큼 곱하기 저장 -> 카메라 위치 x, y, z 각각 랜덤으로 만든 값을 더하기 하여 흔들기 -> 흔들기가 끝나면 다시 원래 위치로 초기화 ▣ 발사버튼을 클릭하면 카메라쉐이크 코루틴을 호출합니다. https://docs.unity3d.com/kr/2022.3/Manual/Coroutines.html 코루틴 - Unity 매뉴얼 코루틴을 사용하면 작업을 다수의 프레임에 분산할 수 있습니다. Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드입니 docs.unity3d.com 2024. 1. 17.
유니티 플레이어 이동, 회전(Defalit input system, new input system) ▣ 기존 입력시스템으로 이동과 마우스 회전하는 코드를 작성하겠습니다. Project Settings에 Input Manager에 Axes 값을 확인합니다. ▣ input.GetAxis() 함수를 이용한 플레이어 이동 코드입니다. transform.right, transform.forward를 곱한 이유는 플레이어 방향으로 이동하기 위함입니다. Character Controller를 이용한 이동하는 코드입니다. ▣ 마우스 회전도 Input.GetAxis() 함수를 이용해서 값을 받아왔고 Rotation에 X 값이 위아래 회전, Y값이 오른쪽 왼쪽 회전이기 때문에 위에 코드를 이런 식으로 진행했습니다. https://docs.unity3d.com/kr/530/ScriptReference/Mathf.Clamp.. 2024. 1. 16.
유니티 GetAxis 오류 해결방법 ▣ Project Settings -> Player -> Configuration -> Active Input Handing* 을 Both으로 설정하면 됩니다. 2024. 1. 16.