반응형

전체 글 140

UFUNCTION 매크로, RPC (Remote Procedure Call) 시스템

위 스크린샷처럼 OnHit 함수 위에 UFUNCTION 매크로를 배치한 함수 선언이 있다. 클래스 C++ 함수가 언리얼 엔지의 리플렉션 시스템으로 인식될 수 있게 하는 것이라고 한다. gpt로 다시 한 번 설명을 부탁해본 결과. 블루프린트, 네트워크, GC 등의 처리에서 다룰 수 있게 메타데이터를 추가라고 이해하면 될 듯 하다추가로 UCLASS와 다른 매크로들처럼 지정자를 지정하여 설정할 수 있다 간단히 블루프린트용 지정자, 네트워크 관련 지정자, 기타 몇가지 지정자들을 gpt에서 보고 메모용으로 기록해둔 것  - 네트워크 관련 지정자 (RPC)에 대해서 공부를 한 적이 없어서 이 부분에 대해서도 gpt에게 물어보고 정리 중대강의 개념을 이해하면 멀티플레이 게임에서 클라와 서버가 한쪽에서 실행한 기능을 ..

Devs/Unreal Engine 2025.03.20

[Python] Docstrings 알아보기

def format_name(f_name, l_name): """Take a first nd last name and format it to return the title case version of the name.""" formated_f_name = f_name.title() formated_l_name = l_name.title() return f"{formated_f_name} {formated_l_name}" 위와 같이 함수를 정의하고 바로 아래 줄에 """ 로 문구를 입력하면 해당 함수에 대한 설명이 아래처럼 보이는 것을 알 수 있다. 실제 개발을 하게 된다면 주석이 필수적인 것이라 잘 기억해두고 써먹는 것이 좋을 듯 하다

Devs/Python 2025.03.20

CreateDefaultSubobject 함수, FName, FString, TEXT 매크로, TCHAR

CreateDefaultSubobject함수는 Object.h에 정의되어 있는 template 함수로 특정 타입의 인스턴스를 만들고 해당 포인터를 반환하는 함수로 보인다슈팅 게임 캐릭터의 예제에서는 UCameraComponent와 USkeletonMeshComponent의 인스턴스를 만드는 것으로 보인다.추가로 인자로 보내는 TEXT 매크로로 FName을 지정해서 해당 인스턴스의 이름을 지정하는 것으로 보인다  - FName위 CreateDefaultSubobject함수의 인자로 넘겨주는 타입이 자세히 보니 그냥 스트링이 아닌 FName으로 되어 있어서 좀 더 살펴보자. 주석을 보면 아래와 같이 써져 있다./** * Public name, available to the world. Names are s..

Devs/Unreal Engine 2025.03.18

[Python] 여러 줄 주석 방법

파이썬 코드를 공부하면서 여러 줄 주석을 치는 부분이 궁금해서 찾아본 부분이 있어서 기록으로 남겨두기용 글 한 줄의 경우 # 을 제일 앞에 붙이면 되고, 여러 줄의 경우에 """ 로 시작하고 끝나는 부분에도 동일하게 붙여주면 된다 (추가로 들여쓰기가 되는 경우 '''은 들여쓰기가 필요하다고 한다는 점 주의)"""num_sum = 0for number in range(1, 101): num_sum += numberprint(num_sum)""" 추가로 단축키를 사용하는 경우가 많아서 찾아본 정보도 저장윈도우에서 코드를 드래그하여 구역 설정 후 ctrl + / 를 하면 #으로 여러 줄 주석이 된다 (맥에서는 command + /) 단축키를 이용하는 부분이 더 편하지만 사용처에 맞게 하면 될 듯 하다.

Devs/Python 2025.03.17

[Python] password generator (random.shuffle 활용)

특정 문자 a개, 특수 문자 b개, 숫자 c개를 입력받아서 해당 개수만큼의 스트링을 출력하자.해당 문자들이 잘 섞이게 할 것. - 인강을 들으면서 테스트로 해보려던 부분인데 생각보다 쉬울 듯 했는데 고민을 했던 부분 중 해결했던 방향에 대해서 글을 적어본다 - 일단 letters, numbers, symbols는 기본적으로 주어짐 random의 shuffle 기능이 있어서 활용해보고자 하였음생각했던 방향은 일단 해당 개수별로 random.choice로 문자를 선택하고 문자열에 집어넣는다. 그렇게 하면 개수별로 만들어지나 잘 섞이지 않고 letter + number + symbol의 순서대로 지정이 되어서 패스워드라 여기기 어려움.그래서 다양한 방법으로 이들을 잘 섞어줄 수 있겠지만 기본적으로 shuffl..

Devs/Python 2025.03.17

ACharacter 상속 / GENERATED_BODY 매크로

- 위와 같이 AActor를 상속 받는 류의 클래스 이름은 접두어로 A를 붙이는 것이 엔진 코딩 표준이라고 한다(AActor -> APawn -> ACharacter) - GENERATED_BODY 매크로의 경우 클래스 정의시 항상 처음 사용되는 것인데 정의하는 곳을 보면 대강 저런 식으로 현재 FILE_ID와 코드 실행 LINE과 GENERTED_BODY?가 합쳐지는 것으로 보임-> 요 부분도 GPT를 이용하여 설명을 들어보자결론적으로는 요 매크로를 사용하게 되면 UHT가 자동 생성한 코드가 포함되는 고유한 결합체?라는 느낌으로 보인다. 추가로 언리얼 엔진의 Reflection 시스템과 UObject 시스템을 위한 코드 생성에 사용된다고 한다. 이 부분에 대해서는 다른 포스트에서 좀 더 자세히 다뤄보기..

Devs/Unreal Engine 2025.03.14

DELEGATE 매크로, UCLASS, UPROPERTY

UE5.0 기반으로 공부를 진행하면서 1인칭 슈팅 샘플 게임을 통해 공부 - 책으로 처음 언리얼 엔진을 다루고 있긴 한데 기존에 학부에서 배웠던 C++만으로는 헷갈리는 부분들이 꽤 있어서 언리얼 C++관련 으로 정리 중 - 기본적으로 언리얼 클래스인 것을 표시하기 위해 클래스명 이름 앞에 U를 붙이는 것을 기조로 하는 것으로 보임 캐릭터 헤더 코드를 일단 분석 - #include와는 별개로 class UInputComponent;와 같이 사용되는 언리얼 클래스를 선언 (외부의 클래스) (책에 따르면 어딘가 다른 곳에서 구현될 가능성이 있다는 것을 의미라고 함) - DECLARE_DYNAMIC_MULTICAST_DELEGATE 매크로언리얼이 제공하는 C++ 매크로로 인자로 준 델리게이트 함수 유형을 선언하..

Devs/Unreal Engine 2025.03.13

[Python] C, C++, C#와 Python의 차이 정리용

기존 C 계열 언어에서 쓰던 코드와 Python을 공부해가면서 다른 부분들을 정리할 겸 쓰는 글두서가 없을 수 있고 인강으로 공부를 하면서 기억에 의존한 형태로 쓰는 거라 빠진 부분들이 있을 것 1. 변수에 자료형을 따로 선언하지 않음- js에서 쓰는 var와 같은 느낌인지 자료형이 쓰이지 않음 2. f-string- print를 해서 자료형이 다른 것을 넣고 싶은 경우 사용 (Ex. print(f"Test Value : {number}") 3. if 구문- else if 라고 쓰던 기타 C계열과는 다르게 축약된 elif를 쓰고 있음- condition을 쓴 후 무조건 : 을 붙여야 함- 들여쓰기가 매우 중요 (중괄호를 안 쓰고 들여쓰기로 단락을 인식하는 것으로 보임)- if condition 구문에 i..

Devs/Python 2025.03.13

Detected compiler newer than Visual Studio 2022, please update min version checking in WindowsPlatformCompilerSetup.h

공부하던 책에서 언리얼 엔진 샘플 일인칭 슈터 프로젝트를 만들어서 코드를 봤을 때 현재의 가장 최신 버젼 (5.5버젼)과 형태가 달라져 있는 것을 확인하고 버젼을 책에 나와 있던 5.0.3으로 낮추려는 시도를 함 그러나.. 이번엔 VisualStudio2022와 버젼이 맞지를 않는 것인지 또 다른 에러에 도착.. 그래서 이번에도 구글링을 해서 결과를 찾아보았다. https://forums.unrealengine.com/t/packaging-error-detected-compiler-newer-than-visual-studio-2022-beginner/2174644 https://developercommunity.visualstudio.com/t/1710-not-supporting-the-UE5/10668..

Devs/Unreal Engine 2025.03.11

[UE5.5] Could not be compiled. Try rebuilding from source manually.

언리얼 엔진은 처음으로 공부하면서 맞닥뜨린 오류로 프로젝트를 열면 새롭게 추가한 C++클래스가 말썽을 일으키고 있었다. 필자는 처음 공부를 하는 것이어서 C++ 스크립트를 활요한 언리얼 엔진 5 게임 개발 이라는 책을 따라서 공부를 하고 있는 중에 맞닥뜨린 문제상황. 일단 문제의 원인을 찾기 위해 급하게 구글링을 해서 몇 가지 방법을 시도해봤으나, 한 번도 다뤄보지 못한 엔진이라 그런지 당연히 해결이 안되었다. 그래서 컴퓨터는 모르면 껐다 키라고 했었지.. 아예 책대로 다시 처음부터 시도 필자의 개발환경- VS2022 커뮤니티 버젼- 언리얼 엔진의 가장 최신 버젼 (5.5.3)- 일인칭 모드 테스트 프로젝트 - 문제가 생겼을 때와 다르게 한 부분1. 언리얼 엔진을 처음 설치 후 프로젝트를 생성시 경로를 ..

Devs/Unreal Engine 2025.03.10
반응형