본문 바로가기

전체 글

(52)
[UE4] 언리얼 에디터에서 외부 모듈 리로드 한동안 (지금도) 시험기간이 겹쳐서 글을 올리지 못했습니다... 잠깐 시간이 비어서 이번에 새로 알게된 내용에 대해 정리해보려고 한다. 외부 모듈 (프로젝트 내 서브 모듈이나 플러그인 등...) 을 추가 하게 되면, 주 모듈과 다르게 핫리로드가 안된다. 즉, 빌드를 해도 바로 적용되지 않고, 에디터를 재시작해야 변경 사항이 적용 된다는 것. 이를 해결할 방법을 찾아봤지만, 아쉽게도 별달리 없으며, Live C++ 플러그인을 사용하거나 수동으로 리로드를 해줘야 한다고 한다. 참고로, Live C++ 플러그인은 UE 4.22 부터 사용 할 수 있으므로, 필자가 사용하는 버전에서는 지원하지 않는다. https://docs.unrealengine.com/ko/Support/Builds/ReleaseNotes/4..
[UE4] MediaPlayer 를 사용하여 인터넷 비디오 재생하기 시험기간이 드디어 끝나, 간만에 언리얼 엔진 포스팅을 해보고자 한다. 이번에는 인터넷상에 존재하는 비디오(또는 오디오) 파일을 받아와서 언리얼엔진의 MediaPlayer 를 통해 재생해보는 것이 이번 포스팅의 목표 이다. 웹 (또는 디스크)에 저장된 동영상 파일을 재생할 일은 생각보다 많다. 예를 들어, 게임이 시작될 때 오프닝 영상을 재생한다던지, 게임 내 요소로써 (예, 전광판) 사용될 수 있다. 필자는 전광판도, 오프닝 영상도 아닌 리듬게임에서 단순히 MV 영상을 보면서 도트를 치고 싶은 마음으로 이 기능을 연구하였다. 이 글을 모두 읽게 되면... 이 글을 모두 읽게 된다면, 아래 이미지 처럼 TV 에서 인터넷에 업로드 된 비디오 파일을 재생 할 수 있게 된다. 또한, 런타임에서 동영상을 바로 불..
[UE4] HTTP 통신으로 파일 다운로드 언리얼 엔진으로 VR 리듬게임 프로젝트를 진행하고 있다. 리듬 게임에서 중요한건 당연 음악인데, 인게임에 음악은 동적으로 추가되고 제거되어야 한다. (음악 파일 을 추가할때마다 업데이트를 할 수는 없기 때문) 즉, 오디오 에셋을 정적으로 로드시켜 둘 수 없고, 인터넷(서버) 에서 오디오 파일을 다운로드 받아야 하는 상황이다. 어떤 상황에서든 에셋파일을 프로젝트에 끼워 넣는 방식이 아니라 파일을 게임 플레이 시간 (런타임) 에서 동적으로 다운로드 해서 로드 하는 부분이 필요할때까 꽤 많다. 즉, 파일을 다운로드하는 부분을 제작 해야 한다. 다운로드에서도 많은 방법이 있는데, 스트리밍 서버를 따로 짜서 TCP 프로토콜로 연결, 패킷을 보내서 파일을 작성 하는 방법이 있고, 언리얼 엔진에서 제공하는 편리하고 ..
[C++] 공유체 union 과 구조체 struct C++ 에는 묶음 타입으로 class, struct, union 이렇게 세가지를 제공 하고 있다. 우리가 프로그래밍을 하면서 (필자는 특히 게임 쪽이다) 클래스와 구조체는 많이 들어와 봤을 것이라고 생각 한다. 그렇다면, union 은 무엇이고, 이름도 비슷한 구조체와는 또 뭐가 다를까? 생각해본다. 유니온? 유니콘 같네요. (이 글을 쓰면서 자꾸 유니콘이라 써서 곤란한 1人) 공유체의 정의는, "하나의 메모리 저장소를 여러개의 데이터 타입을 가진 멤버들이 공유 하는것" 이다. 구조체의 경우 각각의 멤버 변수마다 메모리를 알맞게 할당하는 반면 공유체는 하나의 메모리에 여러 변수가 사용된다. 그렇기 때문에, 당연히 해당 변수의 바이트 값이 다르면 에러가 발생하게 된다. union Data1 { intv_i..
[C++] auto 와 decltype 의 차이 최근 언리얼 공부를 하는데 C++ 의 부족함을 느껴 다시 책을 펴고 정독중이다. 그에 따라 블로그에 종종 새로 알게 되는 C++ 의 요소나 특징, 기술을 정리해볼 생각이다. 그 첫글은 auto 와 decltype 의 차이 이다. auto 는 자주 써 봤을것이라 생각한다. 만약, 변수타입이 굉장히 길다고 가정 하면.... TArray CameraComponentPointerArray; 물론 인텔리센스가 있어서 타이핑에 그리 오래걸리지는 않지만, 귀찮은건 사실이다. 이러면, 우리는 이렇게 작성한다. auto NewArray = CameraComponentPointerArray; NewArray 의 타입은 윗 코드 블럭에서 선언 했기 때문에, 우리는 추측해 볼 수 있다. 여튼, 오토타입은 굉장히 자주 쓰는데,..
UE4 바스트 모핑 (물리적인 가슴) 구현 오늘 포스팅 할 내용은 언리얼 엔진에서 바스트 모핑을 처리하는 방법에 대해 알아 본다. 바스트 모핑이 무엇인지는... 다들 잘 알것으로 믿고, 설명은 생략 하며 잘 모르는 분들은 검색을 하고 아래 글들을 계속 읽을지 결정하기 바란다. https://namu.wiki/w/%EB%B0%94%EC%8A%A4%ED%8A%B8%20%EB%AA%A8%ED%95%91 바스트 모핑 - 나무위키 선구자적인 작품 다이콘4 - 오프닝(1983년 8월 20~21일)[5]에서 애니메이션 역사상 최초로 바스트 모핑을 의도적으로 대놓고 노리고 어필한 작품.[6] 또한 이 오프닝 영상을 만든 다이콘 필름의 멤버들이 이후 가이낙스를 창립하게 되었다.루팡 3세(2기 TV시리즈) 145화. 1980년 7월 28일 방영. 미야자키 하야오가..
[UE4] 데디케이트 서버 (Dedicate Server) 구축 - Linux 편 저번 포스팅에서 윈도우 데디케이트 서버를 구축 하는 방법에 대해 정리 했다. 이번에는 더 나아가, 리눅스에서 이를 실행 하는 방법에 대해 정리해본다. 왜냐하면, 서버는 대부분 리눅스를 쓰지 윈도우를 쓰지 않는다. (윈도우 서버 제외) 가장 중요한점은 필자 서버 컴퓨터는 Centos 6.5 가 깔려 있다. 서론에서 유추할 수 있듯이 이번 포스팅은 CentOS 6.5 기준으로 진행되며 우분투나 다른 리눅스 계열 OS 에서도 큰 문제 없이 잘 작동할 것으로 예상 된다. 시작해보자. 소스코드 빌드 하기 이전 글에서 소스코드 빌드 관련 언급을 하였다. 리눅스 빌드를 하기 위해 윈도우와 다르게 해줄 작업은 없으므로 링크로 대체한다. https://api.unrealengine.com/KOR/GettingStarte..
[UE4] 데디케이트 서버(Dedicate Server) 구축 - Windows 편 굉장히 오랜만에 글을 쓰는 듯 하다. 이번에는 며칠간 문서를 보면서 공부해본 데디케이트 서버 구축에 대해 정리해보겠다. 데디케이트 서버를 구축하기 위해서는, 당연히 멀티플레이가 가능하도록 설계된 게임이 있어야 한다. 아직 게임이 없다면 미리 언리얼에서 제공하는 ThirdPersonExample 를 미리 생성 해 두자. 필자는 방금 완성한 따끈따끈한 간단한 채팅 게임이 있어 이를 사용하려고 한다. UE4 소스코드 빌드하기 런쳐에서 받은 언리얼 엔진은 몇몇 기능들이 빠져있다. 실제로 , 데디케이트 서버를 빌드하기 위한 기능도 빠져있다. 그러므로 우리는 언리얼 엔진 코드를 다운로드 받아 직접 빌드 해야 한다. 소스코드 빌드 부분은, 필자보다 문서에 훨씬 더 잘 설명하고 있고, 실제로 진행해보니 큰 장애가 없었..