언리얼 10

[UE4] 무기 충돌 구조 (USpaceComponent)

🚩 무기 충돌 구조 짜기 (USpaceComponent) UPrimitiveComponent Primitive Rendering 데이터나 Vertex Index 데이터같은 일종의 기하학을 포함하거나 생성하는 Scene 컴포넌트 UShapeComponent 단순한 기하학적 모양으로 표현되는 Primitive 컴포넌트이며 충돌체 3개(box, Sphere, Capsule)의 부모이다! 해당 내용이 언급된 이유는 게임을 제작할 때 여러 종류의 Weapon을 제작하는데, 이때 캡슐 충돌체를 쓸지 박스 충돌체를 쓸지 미리 알지 못한다. 이런경우 부모 클래스인 Weapon이 자식 클래스들(종류 별 무기들)의 충돌 관리를 구현할 때 어떤 충돌인지 모르니 Shape Component로 모두 처리할 수 있다. 또한 몇개..

[UE4] AttachActorToComponent/AttachActorToActor, Get Owner, Get Component by Class 함수

📗 AttachActorToComponent / AttachActorToActor AttachActorTo~ 함수는 원하는 액터에 컴포넌트를 원하는 위치에 붙일 수 있는 기능을 제공한다. 즉, 액터의 RootComponent를 제공된 컴포넌트에 어태치하며, 선택적으로 명명된 소켓에서도 어태치할 수 있다. 타깃: 붙이고 싶은 대상이 되는 Actor 오브젝트 레퍼런스를 연결한다. (디폴트 값: self) Parent (Actor): 타깃이 붙어질 대상이 되는 Actor/Scene Component 오브젝트 레퍼런스를 연결한다. Socket Name: Parent에 붙일 선택적인 소켓의 이름을 연결한다. 사용예시) 해당 Attach 함수를 선언한 곳은 검(Sword) 액터이다. 해당 액터를 캐릭터의 Mesh에..

[UE4] 부모 함수 호출, 블루프린트 매크로 라이브러리(함수 라이브러리), Get 함수(사본/참조)

📕 오버라이딩 - 부모 함수 호출 부모의 함수를 자식이 상속받아 오버라이딩하는 경우 부모의 함수를 먼저 호출한 뒤 자식의 함수를 호출하는것이 올바른 프로그램 순서이다. 따라서 언리얼을 통해 오버라이딩을 구현할 때에도 부모의 함수를 꼭!! 먼저 호출하는 습관을 들이자 📒 블루프린트 매크로 라이브러리 (Blueprint Macro Library) 매크로는 클래스에 노드접기 기능들을 별도로 모아둔 것이라고 이해하면 좋다. 다른 블루프린트에 넣어 사용할 수 있도록 매크로 또는 독립된 그래프 모음을 블루프린트 매크로 라이브러리에 담아둘 수 있다. 자주 사용되는 노드 시퀀스를 실행과 데이터 전송을 위한 입력과 출력까지 그대로 포함하여 저장할 수 있기 때문에 프로그램을 구현하는데 시간을 절약할 수 있다. 매크로는 자..

🎮Unreal4/Basic 2023.01.27

[UE4] 이벤트 디스패처(Event Dispatcher), 리플렉션(Reflection)

🚀 이벤트 디스패처 (Event Dispatcher) 플레이어의 상태를 관리하는 Player State 컴포넌트를 만들던 도중, 플레이어의 상태가 변화되었을 때 해당 상태에 맞는 함수들을 일괄적으로 호출하기 위해 이벤트 디스패처라는 기능을 사용하였다. 이벤트 디스패처에 하나 이상의 이벤트(함수)를 바인딩하면, 이벤트 디스패처 호출 시 등록된 모든 이벤트가 발동되도록 사용할 수 있다. 이러한 이벤트는 블루프린트 클래스 안에서 바인딩해도 되지만, 이벤트 디스패처를 통해 레벨 블루프린트 안에서 발동되도록 할 수도 있다. 이벤트 디스패처를 만들고 노드를 배치하면 위와 같이 호출, 바인드, 언바인드, 모두 언바인드가 뜬다. 호출: 이벤트 디스패처를 호출하여 등록된 이벤트들을 불러오기 바인드(Bind): 디스패처 ..

🎮Unreal4/Basic 2023.01.27

[UE4] 콤보공격 (Combo Attack)

언리얼4를 이용하여 한손검(Sword) 콤보공격을 구현하였다. 나중에도 까먹지 않도록 콤보공격의 구현 과정을 정리해보자 ! 1. 마우스 좌클릭을 액션매핑으로 설정하여 공격키로 지정한다. 2. Action 입력 액션이 감지되면 콤보공격 상태인지 Branch로 먼저 검사한다. Enable Combo변수는 기본값이 False이므로 처음 공격을 한 순간은 무조건 False값이 들어가게되어 아래줄에 있는 Play Anim Montage가 실행되고, 첫 공격이 실행된다. 3. 이때 첫 공격을 수행할 때 검을 장착중인지(Equipped), 공격중인 상태인지(Attacking)를 검사하여 모든 조건문을 통과하여 공격할 수 있는 상황이라면 공격중이라는 Attacking 변수를 True로 바꾼 뒤 공격 몽타주를 실행한다...

[UE4] 데미지 프레임워크(Apply Damage/Any Damage), Instigator Controller, Authority 전용 아이콘

👊 데미지 프레임워크 💥 데미지 전달 함수 언리얼 엔진4에는 총 4개의 데미지 처리 함수가 있다. Apply Damage함수는 입힐 데미지를 전달(Return)하여 사용한다. 예를 들어 플레이어가 적(Enemy)과 충돌하면 Apply Damage함수를 호출하여 Enemy에게 입힐 데미지를 전달하여 사용한다. Apply Damage - 일반적인 면 충돌로 처리하여 데미지를 입힌다. Apply Point Damage - 점 충돌을 이용하여 총알같은 피격 무기 구현에 사용된다. - 어떤 방향에서 Actor의 어느 위치에 맞았는지 데미지를 주는 위치 정보도 얻어올 수있는 함수이다. Apply Radial Damage - 구 형태의 데미지로 수류탄같이 방사형으로 퍼지는 데미지를 구현하는데 사용된다. - Origi..

[UE4] 머티리얼(Material), 머티리얼 인스턴싱

🌎 머티리얼 (Material) 넓게 보면 오브젝트에 적용할 수 있는 "페인트" 개념이다. 말 그대로 오브젝트가 어떤 재질로 만들어졌는지를 정의하기 때문에 그 색이나 광택, 투과성 등을 정의할 수 있다. 머티리얼의 중요한 사실은, 코드를 통해 생성되는 것이 아니라 머티리얼 에디터 안에서 노드로 엮인 망을 통해 생성된다는 것이다. 각 노드에는 특정 동작을 하도록 설계된 HLSL 코드 스니펫이 들어있다. 즉, 머티리얼을 생성하는 것은 비주얼 스크립팅을 통해 HLSL코드를 생성한다는 뜻이다. 🪐 머티리얼 인스턴싱 머티리얼 인스턴싱은 머티리얼의 비싼 리컴파일(느린 컴파일) 작업 없이 머티리얼의 외양을 바꾸는 데 사용된다. 언리얼 엔진4에서 사용가능한 머티리얼 인스턴스는 두가지 유형이 있다. Material In..

[UE4] 노티파이 호출 시 확인사항

🎮 노티파이 호출 Player 애니메이션에 노티파이를 생성하고 호출하면 Player에서만 노티파이가 호출될 것만 같다. 그러나 노티파이는 프로그램이 런타임 이든지 런타임이 아니든지 언제나 호출될 수 있다. Animation BluePrint(ABP)의 좌측에 띄워지는 캐릭터가 AnimationEditorPreviewActor인데 그 객체 안에 들어있는 Pawn이 Player이기 때문에 ABP를 호출하면 노티파이가 실행된다. 또한 애니메이션 창에 존재하는 캐릭터도 AnimationEditorPreviewActor 객체이기 때문에 게임모드 중이든 아니든 노티파이가 계속해서 콜(호출) 될 것이다. 따라서 노티파이를 호출해서 사용하려 할 때 게임이 실행되고 있는 상태에서 잘 호출되는 것이 맞는지 체크하는 작업이..

[UE4] 벡터의 성질 실습으로 증명하기

🚩 벡터의 구분 - 방향벡터: 어느 방향으로 가는지 방향 정보를 담은 벡터 방향벡터는 항상 1로 만드는 정규화(Normalization) 과정을 수행해야 한다. - 위치벡터: 좌표의 원점 0을 시작점으로 하여 공간 내의 임의의 한 점(끝점)으로 하는 벡터 ✔ A위치 + B위치 = 위치 ✔ A위치 - B위치 = B->A 방향 ✔ A위치 + (B방향 * 거리) = 위치 ex) Player위치 + (Player거리 * 속도) = Player가 이동한 위치 💻 증명 * 1번째 증명 실행 전 실행 후 첫번째 공식인 A위치 + B위치 = 위치 를 블루프린트로 증명해본 결과이다. 빨간색 큐브 객체에 블루프린트를 생성하여 현재 위치값을 받아오고 특정 Location(100, 100, 0)을 더해준 결과 원점으로 표시해..

[UE4] Animation Notify, Notify State

✔ Animation Notify, Notify State 애니메이션 노티파이(Animation Notify)를 이용하면 애니메이션의 시퀀스 도중 특정 지점에 이벤트가 발생하도록 구성할 수 있다. 예를 들어 걷기나 달리기 도중의 발소리같은 이펙트를 추가하거나 애니메이션 도중 파티클 시스템을 스폰시킬때도 주로 사용된다. 노티파이는 커스텀 유형으로도 쉽게 만들어 사용이 가능하기 때문에 어떤 유형의 게임이라도 다양하게 맞춰 제작할 수 있다. * 노티파이(Notify)와 노티파이 스테이트(Notify State)의 차이점 노티파이는 단순히 시작 지점에서 발동되어 이벤트를 발생하지만, 노티파이 스테이트는 Begin(시작), Tick(틱), End(끝) 세 개의 이벤트가 존재한다. 노티파이 스테이트는 단순히 시작해..

728x90