일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- motion matching
- GAN
- ddpm
- Generative Model
- 딥러닝
- 오블완
- Stat110
- NLP
- 언리얼엔진
- RNN
- dl
- WBP
- Font Generation
- userwidget
- 디퓨전모델
- 모션매칭
- animation retargeting
- 생성모델
- CNN
- Unreal Engine
- cv
- UE5
- BERT
- 폰트생성
- WinAPI
- Diffusion
- multimodal
- ue5.4
- deep learning
- Few-shot generation
- Today
- Total
목록UE5 (32)
Deeper Learning
더 많은 종류의 적을 추가하고 플레이어 캐릭터에도 점프, 달리기, 앉기 등 다양한 애니메이션들을 추가로 세팅할 때가 되었다. 기능은 이전에 구현해 놓았으나 문제는 기존 애니메이션 블루프린트가 전혀 모듈화 되어있지 않다는 것이었다. 전투 시스템을 전부 리뉴얼하고 나서 테스트를 위해 아래처럼 간단한 애니메이션 블루프린트를 계속 사용하고 있었으며 공격과 관련된 애니메이션은 시점에 맞는 이벤트 수집을 위해 애니메이션 몽타주로 관리하고 있다. 프로젝트에서 애니메이션 시스템 전체를 다시 설계, 최적화하여 변경 사항이 매우 많지만 이번 포스팅에서는 Animation Blueprint Linking, Animation Layer Interface만 소개하려 합니다 https://www.youtube.com/watch?..
액션 게임은 많은 애니메이션을 필요로 한다. 걷기, 달리기부터 공격, 가드, 회피, 각종 스킬까지 현재 진행 중인 프로젝트에서도 50개가 넘는 애니메이션 시퀀스를 사용하고 있다. 애니메이션 애셋을 구매하더라도 자신이 원하는 모션이나 움직임을 구현하려면 애니메이션 시스템의 설정을 세밀하게 조정하거나 애니메이션 자체를 수정하거나 또는 만들 줄 알아야 한다. 언리얼 엔진은 에디터 내에서 간단하게 애니메이션을 수정하거나 만들 수 있는 많은 기능을 제공하고 있으며 UE5 Manny를 예시로 간단한 애니메이션을 수정하는 방법을 소개하려 한다. (가드, 패리 등 아래 방식으로 만든 애니메이션을 추가하고 나서 업로드한 Devlog 영상) Level Sequence, Control Rig 에디터 상단에서 Level Se..
NPC와의 대화 기능을 추가하려고 개발을 하던 중, 딥러닝 언어모델을 활용해 NPC와 더욱 자연스럽게 대화할 수 있는 기능을 넣어보면 재미있겠다는 생각이 들었다.그래서 간단하게 Claude, ChatGPT API와 집 데스크탑에 세팅해 둔 LLaMA를 연동해서 테스트를 해보았다. 이번 포스팅은 주제는 언리얼 엔진에서 간단한 대화 기능 구현과 LLM API 연결이다. LLM 기반 NPC 대화 시스템 설계LLM을 모든 NPC의 대화 모델로 사용하기에는 Hallucination, Context Limitations, Bias 등 언어 모델의 고질적인 문제로 인해 대화가 길어지거나 플레이어가 예외적인 질문을 던질 경우 몰입감이 크게 저하될 수 있다. 그럼에도 불구하고 일단 LLM을 사용한다고 가정해보자. 게..
언리얼 엔진에서 애니메이션 작업을 하다 보면 Skeletal Mesh를 수정하고 싶을 때가 많다. Fab에서 다운받은 캐릭터가 제대로 Rigging이 되어있지 않거나 Root bone이 없는 등 바로 애니메이션을 재생할 수 없는 상태인 경우가 종종 있다. 이번 포스팅은 언리얼 엔진 에디터에서 제공하는 Skeletal mesh를 수정할 수 있는 플러그인을 사용법을 다뤄보려 한다. Mixamo 또는 Fab에서 다운받은 많은 캐릭터 모델의 Skeleton은 Root bone이 없이 hips 또는 pelvis가 가장 상위의 Root Bone으로 설정되어 있다. 루트 모션 애니메이션을 사용할 때 만약 hips, pelvis가 root bone으로 되어있으면 캐릭터가 상체를 회전시키거나 다리를 드는 과정에서 pel..
[UE5] 보스 구현, 전투 시스템 고도화, 회고 (프로젝트ASR - 개발일지6)처음 프로젝트의 목표는 앞으로의 게임 개발을 쉽게 하기 위한 코드 베이스, 보일러플레이트 만들기였으나 이를 어느 정도 달성한 것 같아 프로젝트의 방향성을 조금 더 뾰족하게 다시 설정하dlaiml.tistory.com 이전 포스팅 이후 전투 이외에도 많은 시스템이 개발 중이지만 전부 한 포스팅에 담기에는 내용이 많아 전투 시스템과 캐릭터를 전면 개편하였던 업데이트를 기준으로 포스팅을 작성합니다. [전투 시스템 개편 후 보스 전투 테스트 영상 (클래스 2개)] 전투 시스템 전면 개편 이전 포스팅에서, 전투 시스템이 확정되었고 3개의 캐릭터에서 모두 동일한 스펙으로 개발을 마쳤다. 약공격, 강공격, 가드, 패리, 회피, 긴급회..
처음 프로젝트의 목표는 앞으로의 게임 개발을 쉽게 하기 위한 코드 베이스, 보일러플레이트 만들기였으나 이를 어느 정도 달성한 것 같아 프로젝트의 방향성을 조금 더 뾰족하게 다시 설정하고 내가 원하는 게임을 만들기로 결정하였다. 보스와의 전투가 메인이 되며 가드와 회피를 통해 보스의 공격을 흘려내며 매우 강력한 대미지를 가진 보스를 공략하는 소울류 게임의 보스 전투 시스템의 일부를 차용하였다. 프로젝트 초기에는 TPS 캐릭터를 만들기 위해 콜 오브 듀티, 배틀그라운드, 배틀필드를 참고하며 무기 픽업 기능, 조준 기능, 탄창 시스템을 만들었으며 이후 액션 게임 캐릭터를 만들기 위해 데빌메이크라이, 팬텀 블레이드 제로, 베요네타를 참고하며 기본 콤보시스템, 공중 전투 액션, 전투 시스템을 개발했다.이후 세키로..
인공지능 개발자를 처음 준비할 때, 입문부터 공부했던 자료, 강의들을 모아서 정리해 두었다. 나중에 돌아보기에 좋고 누군가 처음 입문할 때 추천해 줄 자료를 찾기에도 편리했던 기억이 있어서 게임개발 관련 자료들도 이번에 정리해보려 한다. 2024.04.16 ~ 인공지능 개발자로 일하면서 파이썬을 제외한 다른 프로그래밍 언어를 사용할 기회가 없었다.C/C++에 대한 기초를 다시 닦기 위해 C/C++ 강의를 수강하였다. - 독하게 시작하는 C 프로그래밍 (04.16 ~ 04.25)- C개발자를 위한 최소한의 C++ (04.25 ~ 04.30) 두 강의 모두 C언어에 대한 기초가 있거나 다른 프로그래밍 언어를 다뤄본 사람들이 듣기에 좋은 강의이다. 2024.05마침 지인이 언리얼 엔진을 사용한 게임 팀 프..
프로젝트를 진행하면서 사용하는 애셋들과 기능을 테스트하기 위해 구조를 고려하지 않고 작성한 코드, 클래스들이 많아져 간단한 테스트 Level도 로드하는데 시간이 꽤 걸리는 것을 확인하였다. Size Map으로 Level의 사이즈와 구성 요소들을 확인하고 Hard Reference를 Soft Reference로 변경하여 참조하는 객체를 미리 메모리에 로드하지 않고 동적으로 로드하도록 하였고 이에 대해 포스팅해보려 한다. Size MapSize Map은 애셋들의 메모리 사용량을 시각적으로 확인할 수 있는 언리얼 에디터에서 제공하는 기능이다. 로드 시간, 메모리 사용량을 관리할 때 문제가 되는 애셋을 바로 확인할 수 있어 매우 유용하다. Level을 시작할 때 로드시간 문제를 해결하기 위해 Content D..
개발 중인 개인 프로젝트에서 정해진 구간을 순찰하다가 플레이어를 발견하면 추적하고 공격하는 AI를 개발하면서 학습한 AI Percetion에 대한 포스팅이다. 대부분 잠입 액션게임, 오픈월드 게임에서 적은 시야에 플레이어가 들어왔을 때에만 반응한다. 적이 정보를 얻는 매개가 시야, 소리, 대미지라면 훨씬 더 현실적인 AI를 만들 수 있다. 언리얼 엔진에서는 이를 쉽게 구현할 수 있도록 AIPerceptionComponent를 제공한다. AI Controller의 헤더에 멤버로 AIPerceptionComponent 를 추가하자 UPROPERTY(EditDefaultsOnly, BlueprintReadOnly)class UAIPerceptionComponent* AIPerception; 앞서 언급한 시..
진행하고 있는 프로젝트에서 캐릭터가 공격하는 방향으로 이동하거나, 적을 타겟팅 하기 위한 방법을 알아보다가 찾게 된 Motion Warping(모션 워핑)에 대해 소개하려 한다. 모션 워핑은 캐릭터의 루트 모션을 타겟을 향해 조정하는 기능으로 Animation Montage에서 AnimNotify State를 설정하여 쉽게 세팅할 수 있다. 우선 Motion Warping(Beta) 플러그인을 설치한다. 에디터를 재시작하여 플러그인을 적용한 후 모션 워핑을 적용할 액터에 Motion Warping 컴포넌트를 추가할 수 있다. 코드에서 명칭은 UMotionWarpingComponent, 헤더는 #include "MotionWarpingComponent.h" 를 포함하면 된다. // HeaderUPROPE..
(지난 포스팅) [UE5] 애니메이션 개선, FABRIK, 격발 기능 추가 (TPS 개발일지 - 4)지난 포스팅) [UE5] Rifle 픽업, 착용 기능 구현, Replication 문제 해결 (TPS 개발일지 - 3)ProjectVT가 크라우드 펀딩을 앞두게 되어 개발할 것들이 크게 늘어 TPS 개발에 시간을 이전보다 많이 쓰지 못하였dlaiml.tistory.com 크로스헤어 제작AimOffset 애니메이션 문제 해결카메라 고도화연사기능 구현총기반동 구현 크로스헤어 제작캐릭터의 기본 무기인 라이플을 위한 십자 형태의 크로스헤어를 위젯 블루프린트로 제작하였다. PlayerController에서 BeginPlay 시점에 위젯을 생성하고 무기 습득에 따라 Visibility를 조정한다.BindWidg..
이전 포스팅에 이어 ProjectVT 개발 진행 사항에 대해 간단하게 포스팅하려 합니다. [UE5] 메신저 핵심 기능 개발 완료 (ProjectVT 개발기)이전 포스팅에서 메신저 기능을 위해 WBP와 클래스 구조를 설계하고 기본적인 레이아웃을 개발한 것까지 소개하였다. [UE5] 메신저 기능 데이터 구조 설계, Widget Reflector (ProjectVT 개발기)출시dlaiml.tistory.com 처음 개발할 때, 언리얼 엔진을 새로 배우자마자 프로젝트 개발을 진행했던 탓에 확장성을 고려하지 못한 설계가 많았고 데모 출시를 위해 개발된 부분을 모아 통합하던 중에 문제가 하나 둘 나타났다. 우선 UI와 게임로직의 분리가 되어 있지 않아 UserWidget의 함수 안에서 게임진행과 관련된 주요 ..
ProjectVT가 크라우드 펀딩을 앞두게 되어 개발할 것들이 크게 늘어 TPS 개발에 시간을 이전보다 많이 쓰지 못하였다. 저번 포스팅 이후 진척도를 공유하려 한다. [UE5] 애니메이션 추가, Character 클래스 생성 (TPS 개발일지 - 2)출시를 앞둔 프로젝트가 있어 개인 프로젝트에 시간을 많이 쓰지 못하고 있다. 저번 포스팅 이후 애니메이션 추가, Character 클래스 생성까지만 진행하였다. [UE5] 프로젝트 생성, 캐릭터 모델 impodlaiml.tistory.com Content 파일 정리, 애니메이션 시스템 구조 확정저번 포스팅 이후 Migrate 한 애니메이션의 파일이 필요 이상으로 많아 이를 정리하였다. AnimStarterPack, Mixamo, Lyra, Belica ..
이전 포스팅에서 메신저 기능을 위해 WBP와 클래스 구조를 설계하고 기본적인 레이아웃을 개발한 것까지 소개하였다. [UE5] 메신저 기능 데이터 구조 설계, Widget Reflector (ProjectVT 개발기)출시 이전 크라우드 펀딩에 공개할 데모를 만들기 위해 주요 기능을 우선으로 개발하고 있는데, 그 중 하나가 이전 포스팅에서 언리얼 엔진 WBP 기능에 대해 설명하면서 예시로 든 메신저 형태의dlaiml.tistory.com 현재는 핵심 피쳐 개발을 모두 마쳤기 때문에 이번 포스팅에서는 지난 포스팅 이후 추가로 개발한 것들, 겪었던 문제들을 개발기 형태로 간단하게 작성하려 한다. 채팅탭, 채팅방 목록 채팅방 목록은 모든 메신저에 존재하는 필수 기능으로 채팅 상대이름, 프로필, 마지막 채팅 시..
출시를 앞둔 프로젝트가 있어 개인 프로젝트에 시간을 많이 쓰지 못하고 있다. 저번 포스팅 이후 애니메이션 추가, Character 클래스 생성까지만 진행하였다. [UE5] 프로젝트 생성, 캐릭터 모델 import, Animation Retargeting (TPS 개발일지 - 1)언리얼 엔진 5.4의 신규 기능에 대한 학습이 어느 정도 완료되어 언리얼 엔진 5.4에서 TPS(3인칭 슈팅 게임)을 만들어보려 한다. 간단하게 구현한 기능들이나 진행한 작업들을 일지 형태로 포스팅dlaiml.tistory.com Animation Retargeting 저번 포스팅에서 애니메이션 스타터팩, Paragon: Belica, Mixamo의 애니메이션을 Retargeting해서 가져왔었다. 에픽게임즈에서 제공하는 프로젝트..
저번 포스팅에 이어 Chooser를 사용하여 Pose Search Databases를 상황에 맞게 교체하고 직접 Pose Search Schema에 Channel을 추가하여 더 자연스러운 모션매칭을 완성해보려 한다. [UE5] Motion Matching - 2 (Pose Search, 모션 매칭)저번 포스팅에 이어서 모션매칭을 이어 진행해보자. [UE5] Motion Matching - 1 (모션매칭, UE 5.4)언리얼 엔진에서 500개가 넘는 무료 애니메이션이 포함된 캐릭터를 포함하는 Unreal Engine Game Animation Sampledlaiml.tistory.com Chooser Content Drawer에서 우클릭한 뒤 Chooser Table을 만들자.애니메이션 블루프린트에 캐릭터..
언리얼 엔진에서 500개가 넘는 무료 애니메이션이 포함된 캐릭터를 포함하는 Unreal Engine Game Animation Sample Project을 공개하였다. Motion Matching 을 사용한 애니메이션 시스템을 선보인다고 적혀있는데, 이 샘플 프로젝트로 Motion Matching(모션 매칭)이 무엇이고 어떻게 사용하는지에 대해 이번 포스팅에서 다뤄보려 한다. 마침 진행하고 있는 TPS 프로젝트가 있어 Animation Retargeting + Motion Matching에 대해 같이 소개하겠다. UE Game Animation Sample Project 에픽게임즈 런처의 마켓플레이스에서 무료탭의 에픽게임즈 콘텐츠를 클릭하면 에픽게임즈에서 제공하는 여러 콘텐츠를 확인할 수 있다. 최신..
출시 이전 크라우드 펀딩에 공개할 데모를 만들기 위해 주요 기능을 우선으로 개발하고 있는데, 그 중 하나가 이전 포스팅에서 언리얼 엔진 WBP 기능에 대해 설명하면서 예시로 든 메신저 형태의 대화 기능이다. (해당 기능을 예시로 다룬 이전 포스팅) [UE5] User Widget Scroll Box를 활용하여 Log UI 구현 (ProjectVT 개발기)[UE5] User Widget을 사용한 다양한 레이아웃의 UI 개발 (ProjectVT 개발기)현재 진행 중인 프로젝트(ProjectVT)에서는 언리얼 엔진을 사용하고 있다. Widget Bluerpint(User Widget)의 사용이 매우 많고 그에 따라dlaiml.tistory.com [UE5] User Widget을 사용한 다양한 레이아웃의 U..
[UE5] 클라이언트-서버 모델언리얼 엔진에서 싱글 플레이 게임에 대해서만 학습하다 보니 멀티플레이 게임, 네트워크에 대해 알고 싶어져 멀티플레이에 대해 학습을 시작하였다. 이번 포스팅에서는 언리얼 엔진의 멀티플dlaiml.tistory.com 지난 포스팅에서 LAN으로 간단하게 멀티 플레이 환경을 구현해 보았다. 하지만 실제로 다른 지역의 사람들과 게임을 같이하려면 신경 쓸 것들이 매우 많아진다. (세션관리, 매치메이킹, 보안, 여러 플랫폼 지원 등) Steam, XBox Live, Epic Online Services, PlayStation Network 등 온라인 서비스를 지원하는 다양한 플랫폼이 있는데, 각자 지원하는 기능이 다르고 명칭도 다르다. 온라인 서브시스템은 기능들에 공통적으로 접근할 ..
객체지향에서 종속성 관리는 매우 중요하다. 다른 클래스의 method를 사용하기 위해 여러 종속성을 주입하다 보면 결국 클래스의 본 목적과 달리 다른 클래스가 없이는 사용할 수 없는 클래스가 되어버린다. SOLID 원칙 중 추상화에 의존해야 한다는 Dependency Inversion Principal을 언리얼 엔진의 UInterface를 사용하여 만족시키려 한다. 앞으로 다른 프로젝트에서도 활용가능하도록 하고 싶은 UI 클래스에서 리슨 서버를 호스팅 하는 Host 버튼, 리슨 서버에 입장하는 Join 버튼을 만들게 되었다. Host 버튼을 누르면 UWorld의 ServerTravel을 실행하고 Join을 누르면 입력한 IP 주소로 ClientTravel을 사용하여 서버에 참가한다. 특정 Level에 ..
현재 진행 중인 프로젝트(ProjectVT)에서는 언리얼 엔진을 사용하고 있다. Widget Bluerpint(User Widget)의 사용이 매우 많고 그에 따라 각종 레이아웃을 만드는 일도 잦다.Figma나 포토샵으로 미리 UI를 그려보고 이를 옮겨와서 User Widget에서 구현하는 방식으로 작업이 이루어지고 있는데 다양한 레이아웃을 User Widget에서 그대로 구현하는 것이 생각보다 쉽지 않았다. 이번 포스팅은 메신저 느낌의 UI의 초안을 User Widget을 사용하여 만드는 방법에 대해 소개하려 한다. Parent & Child우선 User Widget의 Hierarchy에 대한 이해가 필요하다. Friend1Text->SetText(FText::FromString("친구1"));Fri..
탱크 슈팅게임에서 전체적인 전투 현황을 생생하게 볼 수 있도록 경기장의 전광판처럼 실시간으로 씬을 보여주는 기능을 만들어보려 한다.이번 포스팅의 주제는 Scene Capture 2D라는 Actor 클래스를 사용해서 기능을 구현하기다. Level에 Scene Capture 2D 액터를 배치하면 카메라 모양의 액터가 배치된다. 인스턴스는 CaptureComponent2D 컴포넌트를 가지고 있다. Scene Capture 2D 액터가 보고 있는 화면을 Render Target Texture에 실시간으로 기록하고 이를 Material의 Texture로 설정한다.마지막으로 배치한 액터(큐브)의 Material을 앞서 만든 M_RealtimeCapture로 지정하여 큐브에 실시간으로 화면이 출력되도록로 실시간 카..
이전 포스팅에 이어서 팀 프로젝트(ProjectVT)의 개발기를 이어 작성하려 한다.이전에 인공지능 서비스 온글잎을 런칭할 때도 느꼈지만 혼자 사용하거나 테스트를 위한 개발과 출시와 사용자를 염두에 두는 개발은 매우 다르다. 여러 해상도와 운영체제의 디바이스에서 정상적으로 작동하여야 하며, 사용자가 혼란을 느끼지 않도록 하는 UI/UX, 네트워크 환경에 따른 FCP, FMP 측정, 수익모델, 오류 발생 시 안내 및 대처, 고객 문의 창구와 약관 등 수십 가지가 넘는 것들을 추가로 고려해야 한다. 현재 프로젝트도 이제 UI/UX 디자인 이후 이를 언리얼 엔진 위젯 블루프린트에 적용하는 단계를 밟고 있는데, 이전에 개발하였던 위젯들이 해상도가 달라짐에 따라 버튼, 텍스트가 화면 밖으로 나가거나 사라지는 ..
팀 프로젝트로 출시를 위해 개발하고 있는 게임은 3D가 아닌 2D 기반 게임이다. 2D 환경을 위한 다른 플러그인을 사용하지 않고 UI, 게임화면, 캐릭터, 대화창 등을 모두 위젯 블루프린트로 구현하고 있다. 이전 다른 게임을 만들 때, 위젯 블루프린트는 단순하게 체력바, 게임시작 메뉴, 게임 종료 안내처럼 나누어진 공간을 차지하여 겹쳐지는 경우가 없었다. 하지만 이번에는 배경이 되는 위젯에 대화, 옵션, 설정, 확인창 위젯이 위로 계속 쌓이고 그에 따라 User input이 어떻게 처리되어야 하는지가 복잡하였고 구현상에서도 어려움을 겪었다. 이에 대해 포스팅을 해보려 한다. 테스트를 위한 Level과 위젯블루프린트를 만들자. Canvas Panel안에 Image와 Button1을 배치하였고 Button..
Blueprint & C++ 5월 초에 게임 개발 공부를 시작할 때, 언리얼 엔진에서 프로젝트 생성 옵션에서 블루프린트와 C++이 나누어져 있어 둘 중 하나를 골라서 개발을 쭉 하는 것으로 착각했었다. 아직 많은 게임을 완성해보진 않았지만 게임 개발은 게임에서의 로직도 중요하지만 시각적 요소가 차지하는 비중이 매우 크다고 생각한다. Animation, Mesh, UI 등을 다루기 위해서는 에디터에서의 개발이 필수적이다. 따라서 에디터에서의 접근성이 매우 좋고 C++ 코드가 익숙하지 않은 직군도 쉽게 이용할 수 있는 블루프린트의 활용은 언리얼엔진 게임개발에서 매우 중요하다. UMG(언리얼 모션 그래픽 UI 디자이너)는 언리얼 엔진에서 제공하는 비주얼 UI 제작 툴로 현재 팀원과 개발하고 있는 게임의 UI ..
어렸을 때 즐겨하던 게임인 샌드박스 장르의 게임인 게리모드에는 물체를 잡고 돌릴 수 있는 physics gun이라는 장비가 있었다. physics gun의 기능 중에서 물체를 클릭하여 잡고 옮기는 기능 언리얼 엔진에서 구현해보자. 목표는 아래와 같은 사물을 마우스를 클릭하여 잡으면 플레이어 시점 앞으로 물체가 고정되고 놓았을 때 고정이 해제되면서 다시 물체에 물리법칙을 적용하는 것이다. Physics Handle ComponentUE Remark: Utility object for moving physics around Physics Handle Component는 물리가 적용되는 object를 이동시키기 위한 유틸리티 object이다.구현하고자 하는 기능에 꼭 필요한 Component로 Chara..
Actor Lifecycle언리얼 엔진에서 기능을 추가할 때, 어느 클래스에 해당 기능을 추가할 것인가, 해당 클래스의 어느 함수를 Override하고 그 함수의 호출 시점은 어떻게 되는가는 항상 고민하는 부분이다. 레벨에 배치할 수 있는 오브젝트인 Actor 클래스의 사전 정의된 함수의 호출, 목적에 대한 이해가 필요하면 이를 결정하는 것이 더 수월해질 것이라고 생각하여 이번 포스팅은 Actor의 Lifecycle에 대한 포스팅이다. 언리얼 엔진 공식문서의 Actor의 Lifecycle을 도식화한 사진이다.시작점이 Play in Editor, LoadMap(AddToWorld), SpawnActor, SpawnActorDeferred로 4개가 있다.Empty Level을 만들고 Actor를 상속한 ..
Widget Blueprint 내부의 여러 다양한 Component에 사용할 여러 색상들을 웹 디자인 할 때처럼 언리얼 엔진에서도 하나의 객체(또는 전역변수)로 관리할 필요성이 느껴졌다. 제작하고 있는 게임의 UI 시스템이 크게 복잡하지 않고 간단한 앱과 비슷한 정도라 디자인 방식으로 Material Design을 채택하였고 그에 따라 Primary, Secondary, Background, Surface등 색상을 모두 담은 Color Palette를 준비하였다. 이번 포스팅은 Widget Blueprint의 Component의 색상을 일괄적으로 Color Palette를 기반으로 설정하기 위해 찾아본 것들을 정리한 포스팅이다. 1. 언리얼 엔진 내부의 Color Picker 사용하기Color Pick..
최근 진행하던 프로젝트에서 원활한 협업을 위해 버전관리의 필요성을 느껴 SVN을 사용하려다 Unreal Engine에서 제공하는 Blueprint diff 시각화기능이 있어 대신 Git을 사용하여 버전관리를 시작하였다. Prerequisite- 언리얼 엔진- Git - Github account- Github Desktop (CLI로 Git 사용이 익숙지 않다면 추천) Git revision control on UE5언리얼 엔진에서 Revision Control 기능을 사용하여 Git을 Init할 경우 gitignore에 기본적으로 Saved, DerivedDataCache, Intermediate 등 빌드를 위한 파일이나 Save 파일이 추가되어 Git 관리에서 제외된다. 이를 제외하고도 마켓플레이스..
NPC의 행동을 담당하는 AI는 언리얼엔진에서 Behavior Tree를 사용하여 구현할 수 있다.코드 예시는 아래 공식가이드에 자세하기 잘 나와있으므로 Behavior Tree의 각 요소에 대해 알아보겠다. Behavior Tree In Unreal Engine Quick Start Guide | Unreal Engine 5.4 Documentation | Epic Developer CommunityThis guide shows how to use Behaviour Trees to set up an AI character that will patrol or chase a player.dev.epicgames.com 예시로 든 Behavior Tree를 실행하기 위해 추가로 세팅이 필요한 클래스들이 ..