반응형

전체 글 142

Super Pack Magic VFX

https://www.fab.com/listings/b1856f28-224b-437a-8aba-50effbcae6b2위 링크에 있는 "Super Pack Magic VFX" Asset에 대한 간단한 분석 및 사용법이다.해당 Asset은 Niagara System만 들어있는 Asset으로, 자신이 원하는 효과의 Niagara System만 골라 편집해서 사용하면 되는 Asset이라 설명할 것이 없다.아래와 같이 여러개의 폴더가 있고, Demo 폴더를 제외하고 전부 Niagara System들이 들어있는 폴더이다.Demo 폴더에 있는 Level에 들어가면 모든 Niagara System들을 볼 수 있으나, 굳이 Demo에 들어가지 않고 폴더 별로 들어가서 봐도 된다.이번 글에서는 Asset의 사용법에 관해 ..

언리얼 엔진 네트워크 동기화 정리 - Multicast와 Replication 차이, 언제 어떻게 써야 할까

언리얼 엔진에서 멀티플레이를 구현할 때 가장 자주 헷갈리는 개념 중 하나가 Multicast와 Replication이다.둘 다 서버와 클라이언트 사이에서 데이터를 맞춰주는 역할을 한다는 점은 비슷하지만, 실제로는 목적과 동작 방식이 전혀 다르다.간단하게 비교하면 아래처럼 정리할 수 있다.Multicast는 순간적으로 발생하는 이벤트를 여러 클라이언트에게 빠르게 전달하는 데 적합하다.Replication은 계속 유지되어야 하는 상태를 서버 기준으로 자동 동기화하는 데 적합하다.즉, 둘 다 네트워크 동기화 수단이기는 하지만, 하나는 이벤트 전달, 다른 하나는 상태 유지에 가깝다.이번 글에서는 먼저 Multicast와 Replication의 차이를 정리하고, 그 뒤에 전직(Class Change) 이펙트를 R..

언리얼 엔진 Rich Text Block Gradient 글꼴 적용 - Font Material과 Widget 애니메이션 정리

UI의 분위기를 바꾸는 가장 쉬운 방법 중 하나는 텍스트 스타일과 등장 연출을 함께 손보는 것이다.특히 일반 텍스트보다 Gradient가 들어간 글꼴은 시선을 더 잘 끌고, 여기에 위젯 애니메이션까지 더해지면 화면 전체의 완성도가 훨씬 올라간다.이번에는 Rich Text Block에서 사용할 글꼴에 Gradient 효과를 적용하기 위해 Font Material을 만들고, 추가로 해당 Widget에 등장과 퇴장 애니메이션까지 넣어 연출을 정리한 과정을 기록해보려고 한다.이번 작업은 크게 두 단계로 나뉜다.Font Material을 만들어 Rich Text Block에 Gradient 텍스트 적용완성된 Widget에 애니메이션을 넣어 더 자연스럽게 등장하고 사라지도록 구성먼저 Material 그래프를 만들고..

Level Up! VFX

https://www.fab.com/listings/0faab4dd-ca3e-4fec-8f9f-9b336f055f05위 링크에 있는 "Level Up! VFX" Asset에 대한 간단한 분석 및 사용법이다.분석하고 사용하기에 크게 어려움이 없는 쉬운 Asset이다.해당 Asset 폴더 중, "Blueprints" 폴더의 "BP_VFX_CustomLevelUp" 위주로 확인하면 된다."Shared" 폴더에는 Level Up Effect를 나타내기 위한 Particle이나 Texture, Material이 들어가있고, "UI" 폴더에 있는 WBP들은 해당 Asset의 사용법을 안내하는 Widget들이기에 크게 신경 쓰지 않아도 된다.이번에는 사용법보다 Asset에 대한 분석을 먼저 해야 적용법을 이해하는 데..

NPC - Player 상호작용 (Paused)

NPC와 NPC의 대사에 관한 설계가 끝났으니, NPC와 Player의 상호작용을 추가해주었다.https://bobyul.tistory.com/103 NPC 및 NPC 대사 설계NPC의 대화 시스템을 만들기 전, 우선 NPC에 관한 정보와 NPC가 하는 대사들을 저장하는 구조체를 생성해야하고, 구조체를 생성하기 전에도 어떤 식으로 데이터를 관리할 것인지를 미리 구상해둬bobyul.tistory.com NPC와 상호작용 - BP이제 위에서 완성한 대사 UI가 NPC를 클릭했을 때 보여지도록 해야한다.NPC를 좌클릭했을 때 대사 UI가 출력이 되도록 BP로 작성해보았다.좌클릭을 했을 때 발생할 Event는 NPC BP에서 아래와 같이 생성해주었다.NPC를 클릭하면 Player의 Input을 비활성화하면서 N..

언리얼 엔진 NPC 대화 시스템 설계 - DataTable, DataAsset, Subsystem으로 구조 잡기

NPC 대화 시스템을 만들기 전에 먼저 해야 할 일은, NPC에 관한 정보와 NPC가 출력할 대사를 어떤 식으로 관리할지 구조부터 정리하는 것이다.특히 NPC 대화는 단순히 텍스트 한 줄을 띄우는 수준에서 끝나지 않고, NPC 이름, 초상화, 퀘스트 상태, 대사 조건, 음성 재생, 자동 넘김 같은 요소들이 함께 엮이기 때문에 처음부터 데이터 구조를 잘 나눠두는 편이 이후 유지보수와 확장에 훨씬 유리하다.이번 프로젝트는 아직 알파 단계이고, NPC는 플레이어와 복잡한 선택형 대화를 주고받는 구조가 아니라 퀘스트를 주는 역할에 가깝다.그래서 이번에는 아래 방향으로 구조를 설계했다.NPC 기본 정보는 DataTable로 관리NPC 대사 데이터도 DataTable로 관리NPC별 설정과 참조 정보는 DataAss..

GAS를 사용하여 Scan 기능 구현

GAS에 대한 간단한 설명은 아래에 있으니 참고하면 좋다.https://neighborly-badger-f67.notion.site/GAS-Game-Ability-System-22c12e93349480aa93b7d7cfc051db9c?source=copy_link GAS (Game Ability System) | Notion개요neighborly-badger-f67.notion.site위의 정리 내용을 한 번 보고 이 글을 보거나, 정리 내용을 펼쳐놓고 이 글을 같이 보는게 이해하는 데에 도움이 될 것이라 생각한다.GAS를 활용하여 Scan에 대한 능력을 구현할 것이기에 이름은 "Scan" 으로 할 것이고, GameAbility에 속하기 때문에 작성할 C++ 코드는 "GA_Scan" 이라고 명명해주었다...

Ultimate Scan Effects and Screen Effects

https://www.fab.com/listings/446dea06-546a-4ffc-8252-b709a623c1f5위 링크에 있는 "Ultimate Scan Effects and Screen Effects" Asset에 대한 간단한 분석 및 사용법이다.분석하고 사용하기에 크게 어려움이 없는 Asset이다.해당 Asset 폴더 중, "Blueprints" 폴더의 "BP_Scan_Player" 와 "BP_Target_Actor", "Blueprints" 폴더에 같이 있는 "Demo_BP" 폴더 안의 BP, 그리고 "Widget" 폴더의 "WBP_Target" 위주로 확인하면 된다."Widget" 폴더의 "WBP_Player_HUD" 는 Asset의 Demo 레벨에서 Scan 효과를 바꾸는 법을 가르쳐주는..

24일차

Ultimate Attack 사용 후 플레이어가 굳는 현상 수정; 모든 공격 상태 후에 isUltimate가 false 일 경우 공격을 계속 이어갈 수 있도록 추가 플레이어의 Targeting System을 Casting해서 적이 사망했을 때 Targeting System이 사라지도 함 EnemyAninInstance에서 애니메이션 무작위 배속 설정12345678910void UEnemyAnimInstance::PlayRandomSpeedMontage(UAnimMontage* MontageToPlay){ if (!MontageToPlay) { return; } float RandomPlayRate = FMath::RandRange(0.8f, 1.5f); Monta..