Unreal Engine 4

[UE]@Hot Reload

모든 내용은 참고된 링크 자료를 토대로 작성했고 이를 근거로 추측하는 글입니다. * Hot Reload 에디터를 열고 IDE 의 Compile 시 새로운 DLL 파일을 생성하는 과정인 Hot Reload 가 발생한다. 언리얼에서는 Hot Reload 를 추천하지 않는다. 왜냐하면, 에디터를 열고 IDE 를 컴파일하게 되면 아주 빈번하게 Blueprint 와 더불어 많은 문제들을 야기한다. 따라서 언리얼에서는 웬만하면 에디터를 끄고 안전하게 컴파일하기를 권장한다. 이 문제를 해결하기 위해서 언리얼에서는 'Live Coding' 이라는 방식을 도입했다. ( 단축키 : Ctrl + Alt + F11 ) * 리플렉션 데이터 수정의 문제점 위 그림은 참고 자료에 나와있는 본문이다. 본문을 토대로 내용을 해석하자면..

[UE] #2. Network Role

언리얼의 멀티플레이 게임 환경에서, 생성된 Actor, Pawn 과 같은 Object 들은 어떻게 동작시켜야할까 ?? 앞전에 언리얼은 서버-클라이언트 모델을 기반으로 동작한다고 했다. 클라이언트는 서버에게 요청하고 서버는 해당 데이터들을 연결된 클라이언트에게로 전달해야한다. 이를 기반으로 우리는 Game Object 들을 원하는 동작을 하게끔 코드를 작성해야하는데 서버 위에 존재하는 Object 와 클라이언트에 존재하는 Object 는 다른 방식으로 동작할 것이다. 언리얼에서는 Actor 의 동기화 방식을 'Role' 이란 개념으로 구분지어놨다. 간단하게 말해서, 네트워크 동기화를 위해 해당 Actor 의 역할에 대해 정의한 Enum 항목이다. 이후에 언급되겠지만, Local ( 현재 프로세스 ) / R..

[UE] #1. Replication

* 언리얼의 동기화 개념 멀티 플레이 게임에서의 가장 핵심적인 작업 중의 하나라고 볼 수 있다. 만약, 내가 플레이어를 때렸을 때 상대편은 내가 때리는 모습, 상대방이 맞는 모습을 볼 수 있어야하고 나는 상대편이 맞는 모습과 내가 때리는 모습을 볼 수 있어야한다. 네트워크 통신으로 연결된 클라이언트들이 자신들의 화면을 어떻게 공유하고 자신에 화면에서만 볼 수 있는 데이터들은 어떻게 구별해서 구현하는지 정확하게 알 필요가 있다. 서버-클라이언트 모델을 기반으로 하는 언리얼에서 어떤 과정으로 서버에서 처리하고 연결된 클라이언트들에게 어떻게 동기화시키는지 알아보자. * Dedicated Server vs. Listen Server 언리얼에서 사용하는 서버-클라이언트 모델이다. * Dedicated Server..

[UE] @문자열 ( FText, FName, FString )

*TEXT 매크로 => 언리얼에서는 '문자열 리터럴' 을 TEXT 매크로 안에 넣어서 TEXT("Hello World") 로 넘겨주는 것이 좋음. https://docs.microsoft.com/ko-kr/cpp/c-language/c-string-literals?view=msvc-170 ( 문자열 리터럴 ) => 어떤 플랫폼에서든 동작 가능하도록 언리얼에서 인코딩. ( 크로스 플랫폼 환경 ) *FName => 콘텐츠 브라우저에서 새 애셋 이름을 만들 때, => 다이나믹 머터리얼 인스턴스의 파라미터를 변경할 때, => Skeletal Mesh Bone 에 접근할 때, => 문자열 사용에 있어서 초경량 시스템 제공 -> 주어진 문자열이 사용된다 해도 데이터 테이블에 한번만 저장됨. => 대소문자 구분 X,..