[언리얼엔진] SkeletalMesh Merging
·
언리얼 엔진/플러그인
1. 플러그인 추가 2. 블루프린트 변수 추가 3. 변수값 추가 4. 블루프린트 노드 추가
[언리얼엔진] Redis 서버 통신
·
언리얼 엔진/API & Integration
개요디지털 트윈을 언리얼 엔진으로 구현하기 위해서는 Redis 서버를 활용해야 한다. 물리적 시스템의 움직임에 대한 데이터를 Redis 서버에 Publish 하면 언리얼 엔진에서 Publish 하는 채널을 Subscribe 해서 데이터를 동기화 하는 구조이다. RedisSubsystem 클래스일단 진행하고 있는 프로젝트에서는 언리얼 엔진에서 Redis로 Publish 하는 상황은 없어서 Subscribe를 해서 데이터를 받아오는 기능만 구현했다.최대한 사용하기 편한 구조로 설계했는데, Redis에서 데이터를 받아오는 쪽에서는 RegisterChannelListener 함수만 접근하면 되도록 구현했다. Channel 별로 바인딩하는 함수를 관리해서 Subscribe 한 채널에 대해서만 브로드캐스팅 이벤트..
[언리얼엔진] StateTree - UObject vs FStruct
·
언리얼 엔진/AI
1. UObject 방식 (객체 중심)- 개념 : AI 인스턴스마다 고유한 독립적 객체(UObject)를 각각 생성하여 할당하는 방식입니다.- BT 매핑 : BTTask에서 bCreateInstance = true로 설정한 것과 같습니다.- 특징 :1. 각 노드가 자신만의 상태와 멤버 변수를 자유롭게 가질 수 있어 구현이 매우 직관적입니다.2. 하지만 AI 개수가 많아질 수록 객체 생성/소멸 오버헤드가 커지고 메모리 사용량이 급증합니다. USTTask_Idle.h더보기#pragma once#include "CoreMinimal.h"#include "Blueprint/StateTreeTaskBlueprintBase.h"#include "STTask_Idle.generated.h"UCLASS()class P..
[언리얼엔진] Git Webhook - Discord 연동
·
언리얼 엔진
1. 채널 편집채팅 채널을 우클릭 한 후 채널 편집을 누릅니다. 2. 웹 후크 만들기연동 탭에서 웹 후크 만들기를 선택합니다. 3. URL 복사이름은 원하는대로 변경하고, 하단의 "웹후크 URL 복사"를 선택합니다. 4. Settings 이동알림이 발생하기를 원하는 레포지토리의 Settings를 들어갑니다. 5. Add Webhook왼쪽의 Webhooks 탭을 선택한 후 우측 상단의 "Add Webhook"을 눌러줍니다. 6. 세부 설정1. 아까 디스코드에서 복사한 웹 후크 URL을 1번 자리에 붙여넣기합니다. 이후 URL 끝 부분에 반드시 "/github"을 추가해줘야합니다. 2. Content type은 json으로 설정합니다. 3. 알림이 발생하기를 원하는 event를 설정합니다. 4. Add we..
[언리얼엔진] InputModeUIOnly 마우스 커서 숨기기
·
언리얼 엔진/트러블슈팅
FInputModeUIOnly Mode;Mode.SetWidgetToFocus(Widget->TakeWidget());Mode.SetLockMouseToViewportBehavior(EMouseLockMode::DoNotLock);SetInputMode(Mode);// UIOnly가 마우스 캡처를 풀어 PIE에서 OS 커서가 드러납니다.// 뷰포트에 마우스를 실제로 캡처 요청해 OS 커서를 숨깁니다. (키보드 포커스와는 별개)if (ULocalPlayer* LP = GetLocalPlayer()){ if (UGameViewportClient* ViewportClient = LP->ViewportClient) { ViewportClient->SetHideCursorDuringCapture(true); ..
[언리얼엔진] Lyra - 상호작용
·
언리얼 엔진/Lyra
데이터 구조체1. FInteractionOption하나의 상호작용 선택지를 표현하는 구조체입니다. 예를 들어, 상자 오브젝트는 "열기" 동작이 가능하지만 "부수기" 동작이 가능할 수도 있습니다. 즉, 상호작용 대상이 무엇을 할 수 있는지를 담는 데이터 컨테이너입니다.수집 -> 필터링 -> 발동 3단계로 활용됩니다.InteractionOption.h더보기#pragma once#include "CoreMinimal.h"#include "Abilities/GameplayAbility.h"#include "InteractionOption.generated.h"class IInteractableTarget;class UUserWidget;/** * FInteractionOption * * "하나의 상호작용 선택지..
[언리얼엔진] 모바일 빌드 과정
·
언리얼 엔진
1. 안드로이드 설치Epic Games Launcher에서 프로젝트 버전에 해당하는 엔진의 옵션에서 안드로이드를 설치해줍니다. 2. Android Studio 설치구글에 "Unreal Engine Android SDK"를 검색합니다. 그러면 공식 문서 창으로 이동할텐데 해당 문서는 기본 값으로 4.27 버전을 보여주니, 현재 사용하고 있는 버전의 문서로 전환해줍니다. 저는 5.5 버전을 사용 중이라 5.5 버전으로 문서를 전환했고, Koala 2024.1.2 August 29, 2024를 사용하라고 나와있습니다. 문서를 내리다보면 "Required Setup"이 보일텐데 해당 하이퍼링크를 타고 이동합니다. 안드로이드 스튜디오를 설치할 수 있는 창으로 이동합니다. 아까 봤던 버전에 해당하는 다운로드 링크..
[언리얼엔진] 7. 근거리 AI 구현
·
Unreal Engine 프로젝트/Paper-ZD
결과물최대한 직관적으로 보이도록 AI를 설계했습니다. 이 과정에서 느낌표, 물음표, 눈 아이콘 3개를 조합해서 사용했습니다. 느낌표는 AI가 나에게 위협적으로 다가온다는 신호이고, 물음표는 AI가 나의 존재는 알지만 위협적이진 못 할 것이다 라는 느낌을 줍니다. 마지막으로 눈 아이콘은 AI가 현재 예민한 상태임을 알리기에 충분하도록 디자인했습니다. 구현 내용1. Idle 상태Idle 상태는 AI가 잠시 쉬어가는 상태로써, MinIdleInterval ~ MaxIdleInterval 사이의 랜덤한 시간동안 유지가 됩니다. AI가 플레이어를 목격할 때까지 계속 걸어다니는 것이 유저 입장에서는 기계적으로 보이기 때문에 몰입도가 떨어지거나 AI의 행동을 쉽게 예측할 수 있다는 단점이 존재합니다. 따라서, 사소..