전체 글 (18) 썸네일형 리스트형 14. 언리얼 오브젝트 관리 2 - 패키지 📌 학습목표언리얼 엔진의 패키지와 에셋 개념을 이해하고 언리얼 에셋 데이터를 저장하고 불러들이기 📍언리얼 엔진 에셋과 이를 포장한 패키지의 개념 이해📍언리얼 에디터에서 볼 수 있도록 에셋을 저장하고 불러들이는 방법의 이해📍오브젝트 패스를 사용해 다양한 방식으로 에셋을 로딩하는 방법의 이해🍀언리얼의 오브젝트 패키지단일 언리얼 오브젝트가 가진 정보는 저장할 수 있지만, 오브젝트들이 조합되어 있다면?저장된 언리얼 오브젝트 데이터를 효과적으로 찾고 관리하는 방법복잡한 계층 구조를 가진 언리얼 오브젝트를 효과적으로 저장하고 불러들이는 방법을 통일해야한다.언리얼 엔진은 이를 위해 패키지(UPACKAGE)단위로 언리얼 오브젝트를 관리한다.패키지의 중의적 개념언리얼 엔진은 다양한 곳에서 단어 패키지를 사용하고.. 13. 언리얼 오브젝트 관리 1 - 직렬화 📌 학습목표📍언리얼 엔진이 제공하는 직렬화 기능의 이해📍언리얼 오브젝트를 직렬화하고 이를 저장하고 불러들이는 방법의 이해🍀언리얼의 직렬화✅ 직렬화(Serialization)오브젝트나 연결된 오브젝트의 묶음을 바이트 스트림(디스크나 네트워크로 전송할 수 있는 형태)으로 변환하는 과정복잡한 데이터를 일렬로 세우기 때문에 직렬화거꾸로 복구시키는 과정도 포함해서 의미Serialization/ Deserialization ✅ 직렬화가 가지는 장점현재 프로그램 상태를 저장하고 필요할 떄 복원할 수 있다. (게임 상태 저장)현재 객체의 정보를 클립보드에 복사해 다른 프로그램에 전송한다.네트워크를 통해 현재 프로그램의 상태를 다른 컴퓨터에 복원한다. (멀티 플레이어 게임)데이터 압축, 암호화를 통해 데이터를 효.. 12. 언리얼 엔진의 메모리 관리 📌 학습목표언리얼 엔진의 메모리 관리 방식을 파악하고, 언리얼 오브젝트의 메모리를 관리하는 예제를 실습한다.📍언리얼 엔진의 메모리 관리 시스템의 이해📍안정적으로 언리얼 오브젝트 포인터를 관리하는 방법 🍀언리얼의 메모리 관리✅ c++ 언어 메모리 관리의 문제점c++은 저수준으로 메모리 주소에 직접 접근하는 포인터를 사용해 오브젝트를 관리한다.그러다보니 프로그래머가 직접 할당, 해지에 짝 맞추기를 해주어야 한다.이를 잘 지키지 못한 경우 다양한 문제가 발생한다.잘못된 포인터 사용 예시메모리 누수(Leak) - new를 했지만 delete 짝을 맞추지 못해 힙에 메모리가 그대로 남아있음허상 (Dangling) 포인터 - 다른 곳에서 이미 해제해 무효화된 주소를 가리키는 포인터와일드 포인터(Wild).. 11. 언리얼 컨테이너 라이브러리 2 - 구조체와 Map 📌 학습목표언리얼 구조체의 특징을 이해하고 다양한 컨테이너 라이브러리에서 구조체를 활용하기📍언리얼 구조체의 선언과 특징을 이해하는 것📍언리얼 대표 컨테이너 라이브러리 TMap의 내부구조 이해📍세 컨테이너 라이브러리의 장단점을 파악하고 알맞게 활용하기(TArray, TSet, TMap) 📜 공식문서 - 언리얼 구조체 ✅ 구조체 UStruct는 데이터 구조체구조체를 사용하면 커스텀 변수 타입을 생성할 수 있고 프로젝트를 체계화 할 수 있다.✅ 구조체 구현하기구조체를 정의하는 헤더파일을 열고 UStruct 지정자 추가멤버변수는 UPROPERTY() 매크로 - 리플렉션 기능 추가, 블루프린트 연동, 안달 수도 있음.GeneratedBody 매크로는 구조체의 각종 속성들을 리플렉션으로 접근할 수 있.. 10. 언리얼 컨테이너 라이브러리 1 - Array와 Set 📌 학습목표📍 언리얼 대표 컨테이너 라이브러리 TArray, TSet의 내부 구조 이해📍 각 컨테이너 라이브러리의 장단점을 파악하고 알맞게 활용하는 방법의 학습🍀언리얼 컨테이너 라이브러리언리얼 엔진이 자체제작 자료구조 라이브러리, Unreal Container Library (UCL)TArray, TMap, TSet 유용한 라이브러리 3개 (접두사 T는 Templete) ✅ c++ STL과의 차이범용적이고 호환성이 높지만 컴파일 시간이 길다.UCL은 언리얼 엔진 특화로, 언리얼 오브젝트 구조를 가볍고 안정적으로 지원한다. ✅ 주요 UCL과의 비교 (c++ STL)두 라이브러리의 이름과 용도는 비슷하지만, 내부적으로 다르기 때문에 (특히 Set, Map)어떤 방식으로 구현되어 있고 동작하는지 알아.. 8. 언리얼 c++ 설계 - 델리게이트 📌 학습목표📍 모던 객체 지향 설계에서 느슨한 결합의 장점과 이를 편리하게 도와주는 델리게이트의 이해📍 발행,구독,디자인 패턴📍 언리얼 델리게이트를 활용한 느슨한 결합의 설계와 구현방법🍀강한결합, 느슨한 결합✅ 강한결합 Tight Coupling클래스들이 서로 의존성을 가지는 경우✅ 느슨한 결합 Loose Coupling실물에 의존하지 말고, 추상적 설계에 의존 (DIP 원칙)느슨한 결합구조는 유지보수를 손쉽게 만들어준다.하지만 매번 인터페이스를 생성하는것은 번거로운 일이다.🍀느슨한 결합의 간편한 구현을 위한 델리게이트함수를 오브젝트처럼 관리하기✅ 기존언어에서 함수를 중심으로 관리하는 기법C언어의 함수 포인터를 사용한 콜백함수 구현 >> 사용방법이 복잡하고 안정성을 스스로 검증해야한다.c++ .. 6. 언리얼 c++ 설계 - 인터페이스 📌 학습목표📍 언리얼 c++ 인터페이스를 선언하고 활용하는 방법📍 언리얼 c++ 인터페이스 클래스로 안정적인 클래스를 설계하는 법🍀 언리얼 c++ 인터페이스✅ 인터페이스란?모던객체지향 설계에서 유용하게 사용되는 타입반드시 구현해야할 행동들을 지정해 놓음다형성의 구현 / 의존성이 분리된 설계 에 유용하게 활용된다. ✅ 언리얼 엔진 오브젝트 게임 프레임웍 설계 예시Pawn 클래스 : 움직이는 오브젝트, Actor를 상속길찾기 시스템(INavAgentInterface)을 반드시 사용하면서 움직이는 오브젝트(Pawn) ✅ 언리얼 c++ 인터페이스두 가지 클래스가 자동으로 생성된다.U 로 시작하는 타입 클래스 : 클래스 타입정보 제공I 로 시작하는 인터페이스 클래스 : 실질적인 설계 구현추상타입으로 선언.. 5. 언리얼 오브젝트 시스템 📌 학습목표📍 언리얼 오브젝트 특징과 리플렉션 시스템의 설명📍 언리얼 오브젝트 처리 방식의 이해🍀 언리얼 리플렉션 시스템그래픽 용어와 혼동을 피하기 위해 프로퍼티 시스템이라고 불리기도 함프로그램 실행시간에 자기 자신을 조사하는 기능으로 언리얼 엔진 기술의 근간이 된다.📜 언리얼 프로퍼티 시스템 (리플렉션) ✅ 언리얼 리플렉션 시스템은 옵션이다.c++에서는 지원하지 않아 언리얼에서 자체적으로 만든 것리플렉션 시스템에 보이고자 하는 유형이나 프로퍼티에 주석을 달면 UHT(Unreal Header Tool)이 프로젝트를 컴파일할 때 정보를 수집한다.특수 헤더파일을 추가해야하는데, 에디터에서 c++클래스를 생성하면 자동 생성 ✅ 리플렉션된 프로퍼티와 아닌 것들을 같은 클래스에서 혼용이 가능하다."가.. 이전 1 2 3 다음