DevLog 9

Custom Editor - Asset Duplicate Editor 플러그인 생성

해당 Type은 플러그인이 영향을 미칠 콘턴츠의 경로가 결정된다.이것은 게임 코드에 영향을 미치는 플러그인이라면 런타임이 되기를 바라겠지만,이제 내가 만들 건 편집 도구이니까, Editor에 영향을 미치길 바란다.따라서 영향을 미치는 Type을 Editor로 변경해준다.따라서 이 플러그인(모듈)은 로드되는 시기에 결정된다.  이제 LoadingPhase를 기본값으로 설정된 것 대신 사전 기본값으로 변경하자.이제 이 플러그인은 게임 모듈보다 먼저 로드되며,이러한 설정은 내가 만들고자 하는 사용자 정의 편집기 도구에 적합한 설정이다. 사용자 정의 편집 도구의 기능은 총 2가지를 가질 것이다. 첫째는, 애셋의 수를 줄이고 늘리거나 하는 에셋에 대한 작업둘째는 레벨에 올려져있는 액터 자체에 대한 작업이다. 에셋..

Pain Point C++에서 델리게이트같은 함수 만들기

C++에서 델리게이트처럼 이용하려면? 던전 맵에 입장할 때, 카메라와 플레이어가 위에서 아래로 떨어지는 효과를 구현하기 위해, DungeonLevel 클래스는 던전 레벨로 전환하는 순간을 감지해야 한다. 이를 위해 DungeonLevel 클래스의 특정 함수를 외부에서 호출하는 방식으로 전환 시점을 처리할 수 있다. 이러한 구현을 위해 UE5에서 사용했던 델리게이트 방식이 떠올랐다. 이를 적용하기 위해 DelegateManager 클래스를 별도로 만들었다. 구현 방식 DungeonLevel의 EntranceDungeon 멤버 함수를 람다 표현식을 사용하여 DelegateManager에 바인딩했다. 이렇게 함으로써 델리게이트처럼 다른 클래스에서도 DungeonLevel의 함수를 호출할 수 있는 구조를 만들었..

상속구조를 이용한 유한 상태 기계 + Component Pattern을 곁들인...

얼마전에 책에서도 봤고, 최근 블로그에 정리해 놓기도 한 enum 쓰지않고 state 패턴 관리하는 방법을 현재 진행하는 프로젝트에 적용하고 싶어졌다. state를 클래스로 빼고 enum을 쓰지 않고 사용하면 다음과 같은 이점이 있다. state 패턴을 상속구조로 이용해 다양한 state 패턴을 만들 수 있다. 또한 클래스이기 때문에 코드 관리하기가 편하다. menuState, AIState, PlayerState .. 등등 을 하위 클래스로 관리하고 설계하게되면, 추후 코드가 더 깔끔하게 정돈되기 때문이다. 코드가 정돈이 되면 이로 인해 가독성도 높아진다. 클래스로 만들었기 때문에 재사용성도 높아져 효율도 좋아진다. 따라서 ActorClass에서 map으로 Component를 관리하고, StateCom..

[Devlog-DX11] HOLLOW KNIGHT 모작 - Video - 블러 처리 시도

Blur 처리 박스 블러 코드는 적용했고,일단 돌아는 가는데 박스 블러 효과를 볼 순 없었다.그리고 무엇보다가장 큰 단점으로는pixel.size를 너무 크게 잡았기 때문인지,원래는 vector4 하나만 받아서 처리하다가pixel vector모든 부분에 대해서 동적 할당을 하다보니,4897408개의 픽셀을 계산하게 되어버벅거리는 현상이 짙다. 블러 이미지클래스를 만들어준 뒤다음과 같은 코드를 추가해주었다.결과적으로 렌더 함수는 돌고 있지만,뭔가 그려주는 함수가 잘 작동하지 않는 것 같았다. 나중에 쉐이더책 보고 dx에 대한 내공좀 쌓은 뒤 다시 도전해야겠다.     #include "framework.h"#include #include #include ID3D11Buffer* BlurImage::verte..

[Devlog-DX11] HOLLOW KNIGHT 모작 - Audio 기능

Sound 클래스에서 STL map 을 이용한 SoundList를 관리한다. Key에는 해당 사운드를 불러올 string 을 넣어주고, Value에는 SoundNode 구조체를 가지고 있다. 따라서 Key값의 string 입력에 규칙을 정하면 음원 관리가 가능하다. 아래는 음원 규칙에 관련된 코드이다. E는 effect관련이며 (NPC대화 목소리, UI 소리 등) M는 배경음악을 관리한다. void Sound::SetAllVolume(float scale) { for (auto iter = SoundList.begin(); iter != SoundList.end(); iter++) { iter->second->channel->setVolume(iter->second->volume * app.soundSc..

[DevLog] Lucy 240917

추가 기능 1- idle 상태, relax 상태 , jog 상태 분리relax는 idle상태에서 실행되고 2초 지나면 랜덤으로 팔 휘적거리거나 좀 편안해 보이는 애니메이션 재생함.애니메이션이 3개면 실행 확률을 다음과 같이 조정함1 애님 - 30%2 애님 - 40%3 애님 - 30%이 정도로 나누어 랜덤 실행되도록 함 기본적은 Anim Instance는 c++에서 값을 받아옴.해당 값을 ABP에서 관리하고 수정 가능하도록 함. 추가 기능 2향상된 인풋 시스템에 맞는 게임 플래이 태그 제작 및 인풋 시스템 cpp 제작  오늘 적용한 것MIXAMO에서 애니메이션을 받아와 파라곤 캐릭터에 맞게리타겟팅함- 언리얼 기본 마네킹 스켈레톤을 이용해서 리타겟팅 하였다.캐릭터 애니메이션 - Idle, Relax, Jog..