Unreal Engine4 언리얼엔진 CDO 객체 활용 (feat. 버프시스템,조건) 내가 전 프로젝트에서 개발할 때 일이다. 다른 회사도 비슷하겠지만, 보통 기획서가 통과되고 회의를 거쳐 테크팀에게 날라올 일감이 점점 쌓여가면테크팀 프로그래머들이 그 일감들을 상사에게 분배받게 된다.일을 각각 다 분배받고 시간이 조금 지나 분배받은 일을 거의 끝냈을 시점. 기획팀 팀장이 테크팀 팀장에게 "혹시 버프시스템 언제까지 되나요?"라고 물었었다.그런데 그 버프시스템이란게 사전에 말도 없었고 회의도 없었던거라 기획팀장이랑 테크팀장이랑 논쟁이 오고갔다.기획팀장은 이 버프시스템이란게 없어선 안될 시스템이라는 의견이란것을 피력하고있었고테크팀장은 왜 일정도 없이 갑자기 이렇게 말하냐고 따지고있었다. 근데 버프시스템은 게임에서 진짜 중요해서 뭔가 이 일이 나에게 올 것이라는걸 크게 짐작하고있었다.인게임 관련.. 2025. 2. 13. 언리얼엔진은 메모리관리를 어떤방식으로 하나 면접에서 나온 질문이다. 하.. 모르겠다.. 뭐라고 대답을 해야할지 몰라서 대답 못했다. 안잊으려고 여기에 쓴다. 찾아보니까 언리얼엔진은 메모리를 이렇게 관리한다고 한다 ' 언리얼은 스마트 포인터와 가비지 컬렉터(GC)를 모두 사용하여 메모리를 관리한다. 일반적으로 네이티브한 부분에서는 스마트 포인터를 사용하고, UObject와 관련된 부분에서는 GC를 사용한다.' 이거였다.. 가비지 콜렉터의 존재를 잊고있었다. IOCP서버를 언리얼엔진에 연동해 볼 때는, 언리얼엔진의 UObject가 아니라면 T스마트 포인터로 관리하는게 좋다고는 알고 있었다. 그리고 U클래스는 딱히 스마트포인터로 안 만들었는데, 뭔가 언리얼엔진 만의 메모리 관리방법이 있다고 생각했기 때문이다. 그리고 그게 가비지콜렉터였다. 가비지 콜렉.. 2022. 11. 27. 언리얼엔진 PBR이 뭐더냐? 이것도 진짜 몰라서 한마디도 못한 주제인데, PBR = Physics Based Rendering 이라더라, 알고보니 언리얼엔진의 매태리얼을 만드는 방식이었다 언리얼엔진에서 흔하게 볼 수 있는, 그 Metallic, Roughness 이런 것들이 PBR을 구성하는 요소들이라더라 요즘은 퐁모델 안쓴다더라.. 아무튼 이 PBR이란 것이 사실적인 렌더링을 위해서 만들어진 렌더링 방식이던데, 디퓨즈나 스페큘러를 아티스트가 직접 조절해야 했던 에전과는 다르게 Metallic과 Roughness의 계수를 0~1사이의 값으로 조절한다고 한다. 물론 내부적으로는 아직 diffuse, sepcular, ambient 가 사용되지만, 패러미터로 조정하는 것이 Metallic과 Roughness로 바뀐듯! 스페큘러의 경우 .. 2022. 11. 25. UPROPERTY는 어떻게 동작하는가? 언리얼엔진을 보면 에디터에서 디테일한 정보들을 수정하거나 우리 육안으로 직접 볼 수 있다. 직렬화나 가비지콜렉션, 네트워크 리플리케이션 등 옵션들을 에디터 패널을 이용해서 블루프린트에서도 설정할 수 있지 않은가? 우리가 이 시스템들을 에디터상에서 볼 수 있고 동작시킬 수 있는 이유가 Reflection 기능이다. 그러나 C++은 이런 Reflection개념은 없고 언리얼엔진이 따로 만든거다. 그래서 언리얼엔진이 우리가 작성하는 C++클래스에서 어떤 것이 리플렉션되어야 하는지 추출해 내야 한다. C++로 아무 클래스(빈 깡통말고)를 만들어 보면 UCLASS() 이런게 클래스위에 착 붙어있다. 바로 이게 Reflection 시스템을 사용하기 위한 지정자 U매크로라는 것 이다. 찾아보면 UCLASS()말고도 .. 2022. 11. 25. 이전 1 다음