전체 글 67

UE5) 적,NPC 공격 기능 인공지능 추가

https://zzugest1.tistory.com/75 UE5) 적, NPC 인공지능 시스템게임을 제작할 때 플레이어 외 여러 몹들을 생성해 이들과 상호작용는 것을 목표로 제작할 수 있는데, 이 때 적이나 NPC들이 어떻게 행동할지 정해주는 인공지능(AI) 시스템을 언리얼 엔진의 비헤zzugest1.tistory.com 언리얼 엔진의 비헤이비어 트리와 블랙보드를 이용해 적이 플레이어 캐릭터를 추격하는 기능을 구현해보았다. 여기서 플레이어를 추격 후 일정거리에 도달하면 플레이어를 공격하도록 기능을 추가해볼 것이다. 비헤이비어 트리의 노드 종류 중 하나인 Task 노드는 AI가 수행할 가장 기본적인 동작을 담은 노드인데 이 Task 노드를 블루프린트 클래스로 직접 만들 수 있다. 콘텐츠 드로어에서 우클릭 ..

언리얼 엔진 2025.05.09

UE5) 적, NPC 인공지능 시스템

게임을 제작할 때 플레이어 외 여러 몹들을 생성해 이들과 상호작용는 것을 목표로 제작할 수 있는데, 이 때 적이나 NPC들이 어떻게 행동할지 정해주는 인공지능(AI) 시스템을 언리얼 엔진의 비헤이비어 트리(Behavior Tree)로 제작할 수 있다. 콘텐츠 드로어 우클릭 후 인공지능을 클릭하면 블랙보드와 비헤이비어 트리를 볼 수 있다. 먼저 블랙보드를 생성 후 보면 왼쪽에 블랙보드 키를 생성하는 칸과 키들의 디테일창이 있다. 여기서 생성된 키는 후에 설명할 비헤이비어 트리에서 사용된다. 그리고 비헤이비어 트리를 생성하면 위와 같이 맨 첫시작 노드 ROOT를 이용할 블랙보드에 연결해 블랙보드 안의 키들을 사용할 수 있고 하위 노드로 세개의 컴포짓 노드를 생성할 수 있다. 이는 각각 아래와 같다.S..

언리얼 엔진 2025.05.08

UE5) 애니메이션 몽타주 노티파이(2)

https://zzugest1.tistory.com/73 UE5) 애니메이션 몽타주 노티파이노티파이란 언리얼 엔진에서 애니메이션 시퀀스 파일을 이용해 여러 몽타주 파일을 생성할 수 있는데 이때 이 애니메이션의 특정 시점에 이벤트를발생시키기 위해 사용하는 기능이다. 캐릭터zzugest1.tistory.com애니메이션 몽타주를 플레이할 때 노티파이를 이용해 특정 구간에 여러 상황이나 조건을 추가할 수 있음을 알 수 있었다. 하지만 이러한 상황이나 조건은 한가지가 아닌 그 이상인 경우가 대다수일 것이다. 추가하고자하는 노티파이가 많을 때 노티파이 클래스를 이용할 수 있다. 블루프린트 클래스 생성을 누른 뒤 검색창으로 애님 노티파이 스테이트 클래스를 추가한다. 블루프린트 클래스를 생성 후 파일을 열어 함수를..

언리얼 엔진 2025.04.24

UE5) 애니메이션 몽타주 노티파이

노티파이란 언리얼 엔진에서 애니메이션 시퀀스 파일을 이용해 여러 몽타주 파일을 생성할 수 있는데 이때 이 애니메이션의 특정 시점에 이벤트를발생시키기 위해 사용하는 기능이다. 캐릭터의 칼에 맞으면 적이 히트 모션을 발생시키는 것을 구현하고자 했지만, 공격 중이 아닐때도 오버랩이 발생한다. 캐릭터의 칼 공격에 맞았을 경우 피격당하는 애니메이션을 재생하고자 했지만 위 상대방(적) 클래스의 이벤트 그래프처럼 공격중이 아니어도 히트 모션이 나오는걸 볼 수 있다. 검을 휘두루는 공격 모션 중 공격이 유효해 보이는 부분에만 히트 모션을 발생시키고 싶을 때 노티파이를 이용할 수 있다. 공격 애니메이션 몽타주에 노티파이 트랙을 삽입 후 빈 공간 우클릭을 하면 노티파이 스테이트 추가 -> 몽타주 노티파이 창을 클..

언리얼 엔진 2025.04.22

UE5) 나이아가라 시스템

나이아가라 시스템이란 언리얼 엔진에서 제공하는 비주얼 이펙트 기능이다. 게임에서 무기를 휘두를때나 타격이 있을 때 등 여러 상황에서 이펙트를 넣으면 시각적 효과가 커질 것이다.  https://zzugest1.tistory.com/71 캐릭터의 메시" data-og-host="zzugest1.tistory.com" data-og-source-url="https://zzugest1.tistory.com/71" data-og-url="https://zzugest1.tistory.com/71" data-og-image="https://scrap.kakaocdn.net/dn/eMH8X/hyYrYO9Fpk/XXKKeQP5JqlfcXrD9gGf70/img.png?width=800&height=397&face=0_0..

언리얼 엔진 2025.03.12

UE5) 소켓

게임을 플레이할때 캐릭터는 여러 무기들을 들고 공격을 하는 경우가 대부분이다. 캐릭터에게 무기를 주어줘야할 경우엔 '소켓'을 이용해야 한다.  캐릭터 클래스의 컴포넌트 -> 캐릭터의 메시에 칼(다운 받은 임의의 스테틱 메시)를 드래그 하면 캐릭터 메시에 상속되 같이 움직이지만 그 자리에 고정되어서 같이 움직인다. 이런 일반적인 방법으론 플레이어에게 무기를 줄 수 없다. 여기서 소켓을 이용해야 하는데 소켓은 3D 모델의 특정 위치에 부착할 수 있는 가상의 포인트이다.  캐릭터의 스켈레톤 파일에 들어가면  오른쪽에 해당 캐릭터의 부위들이 나오는데 무기를 쥘 적절한 부위(여기선 RightHand 오른손)를 찾아 우클릭을 하면 소켓추가 버튼이 있다. 이를 추가하면 무기의 가상의 위치가 생성된다. 여기에 무기 스..

언리얼 엔진 2025.03.10

UE5) 애니메이션 몽타주

https://zzugest1.tistory.com/69 UE5) 플레이어 점프 구현https://zzugest1.tistory.com/68 UE5) 플레이어 애니메이션https://zzugest1.tistory.com/67 UE5) 총알 충돌 구현https://zzugest1.tistory.com/66 UE5) 플레이어 물체 발사https://zzugest1.tistory.com/65   이동과 마우스 회전이zzugest1.tistory.com 애니메이션 몽타주는 여러 애니메이션 클립을 조합하여 새로운 애니메이션을 생성하는 기법이다.  폴더 빈 공간에 우클릭 후 애니메이션 -> 애니메이션 몽타주를 클릭한 다음 적용하고자 하는 스켈레톤을 선택하면 된다.  처음 생성하고 나면 아래 빈 공간에 재생하고자 하..

언리얼 엔진 2025.03.10

UE5) 플레이어 점프 구현

https://zzugest1.tistory.com/68 UE5) 플레이어 애니메이션https://zzugest1.tistory.com/67 UE5) 총알 충돌 구현https://zzugest1.tistory.com/66 UE5) 플레이어 물체 발사https://zzugest1.tistory.com/65   이동과 마우스 회전이 가능한 플레이어에서 물체를 발사하는 기능을 구zzugest1.tistory.com 지난 글에서 플레이어의 이동시 애니메이션을 추가해보았다. 다음으로 점프를 구현해보겠다.  평상시 상태와 이동시의 애니메이션을 만든 애니메이션 클래스의 상태기계에서 점프노드를 추가해준다. Idle/Move에서 선을 이어 스테이트 추가를 해준다음 이름을 바꿔준다. Jump를 더블클릭하면 Idle/Mov..

언리얼 엔진 2025.03.06

UE5) 플레이어 애니메이션

https://zzugest1.tistory.com/67 UE5) 총알 충돌 구현https://zzugest1.tistory.com/66 UE5) 플레이어 물체 발사https://zzugest1.tistory.com/65   이동과 마우스 회전이 가능한 플레이어에서 물체를 발사하는 기능을 구현하고자 한다.   물체를 발사하는 키를 입zzugest1.tistory.com 이전 글에선 플레이어를 단순한 상자 모양으로 구현했지만 대부분 게임은 이렇지 않다. 이용자에게 생동감 있는 게임을 위해 애니메이션을 적용해 캐릭터를 만들어야 한다. https://www.mixamo.com/#/ Mixamo www.mixamo.com캐릭터 애니메이션 리소스는 Mixamo나 언리얼 엔진 마켓 플레이스에서 무료로 다운받을 수 ..

언리얼 엔진 2025.03.05

UE5) 총알 충돌 구현

https://zzugest1.tistory.com/66 UE5) 플레이어 물체 발사https://zzugest1.tistory.com/65   이동과 마우스 회전이 가능한 플레이어에서 물체를 발사하는 기능을 구현하고자 한다.   물체를 발사하는 키를 입력하기 위해 입력 액션을 하나 만들어주고, 입력zzugest1.tistory.com 캐릭터 클래스에서 총알을 발사하는 것까지 구현한 뒤 총알이 물체와 충돌하는 것을 구현  Bullet 클래스로 들어와 왼쪽 함수 부분에 Impulse를 추가한다. 그 다음 impulse함수를 눌러 오른쪽 디테일 창에 입력 부분을 아래와 같이 추가해준다. Other과 OtherComp는 말 그대로 다른 물체, 물체의 컴포넌트라는 뜻으로 자료형을 액터, 프리미티브 컴포넌트 타입..

언리얼 엔진 2025.02.21