일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Linux
- JS
- ChatGPT
- 설정
- s3
- AWS
- 엘라스틱서치
- ssh
- Ai
- 유니티
- elasticsearch
- nodejs
- MySQL
- build
- mariadb
- MSSQL
- error
- Kibana
- docker
- 영어
- API
- sample
- Es
- Python
- logstash
- Windows
- 구글
- unity
- JavaScript
- Today
- Total
가끔 보자, 하늘.
Unreal Engine 5.x 개발툴 팁! 본문
Log 출력 (상세 내용은 이 링크로..)
UE_LOG(LogTemp, Display, TEXT("Distance: %f"), movingDist);
툴 UI 글씨 크기 조정. 4k 모니터에서 글씨가 너무 작으면 보기 힘들다.
Widget reflector에서 Application Scale을 1.5로 저정하면 툴의 UI 크기를 좀 더 크게 볼 수 있다.
Live Coding 중 작업한 내용이 툴을 재시작했을 때 안보인다면... 다시 리빌드 하면 보인다.
하지만 마지막 설정한 값이 사라진 경우가 있다. 이때는 저장하지 말고 툴을 종료 후 VS에서 프로젝트를 빌드하여 마지막 설정했던 값이 잘 설정되어 있는지 확인 후 빌드, 그리고 다시 툴을 열어서 확인한다. 만약 같은 문제가 반복되거나 라이브 코딩 시 다른 문제가 있다면 editor preferences ->General/Live Coding 에서 Enable Live Coding 옵션을 비활성화 후 옵션들을 저장 후 툴을 재시작하면 될 때가 있습니다. ... 이게 최선인가 -_-a
움직이는 객체와 가만히 서있는 캐릭터의 충돌 시 발생하는 글리치 현상 해결 방법
캐릭터 코드는 움직이지 않는 한 콜리전을 확인하지 않기 때문이라는데... 이게 맞나?? 게다가 이를 해결하기 위해 매 틱마다 캐릭터를 조금 움직였다가 제자리 돌려놓는다니.. ;;;
길이 측정 방법 - 마우스 휠을 누른채 이동하면 아래와 같이 길이를 쉽게 측정할 수 있다.
Trace/ Collision Channel을 추가 후 사용 방법
GrabberChannel 이라는 이름의 Trace channel을 추가했다면 코드에서 사용할 이름은 DefaultEngine.ini에서 확인할 수 있습니다. (새로운 채널을 추가했다면 Tool을 재시작해야 합니다.) Project의 Config/DefaultEngine.ini 파일을 열어보면 아래와 같은 텍스트를 확인할 수 있습니다.
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False,Name="Projectile")
+DefaultChannelResponses=(Channel=ECC_GameTraceChannel2,DefaultResponse=ECR_Ignore,bTraceType=True,bStaticObject=False,Name="GrabberChannel")
ECC_GameTraceChannel2 라는 이름으로 할당되었군요. 아래와 같이 사용할 수 있습니다
WorldPtr->SweepSingleByChannel(HitResult, Start, End, FQuat::Identity, ECC_GameTraceChannel2, Params);
Enhanced Input의 입력값을 Swizzling 하는 이유
- 다양한 입력 장치(예: 키보드, 마우스, 게임패드 등)의 입력을 동일한 형식으로 표준화
- 입력 데이터의 특정 부분을 추출하거나 조작할 수 있으므로 게임 개발자들은 보다 정교한 입력 처리를 구현
Enhanced Input 을 C++ 프로젝트에 연동하기
이 링크를 확인하세요.
추가 모듈 설정
[프로젝트 이름].build.cs 라는 파일이 있는데 이 파일을 열어보면 아래와 유사한 코드를 볼 수 있습니다.
// Copyright Epic Games, Inc. All Rights Reserved.
using UnrealBuildTool;
public class MyProject : ModuleRules
{
public MyProject(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "EnhancedInput" });
}
}
어떤 모듈을 추가해야 한다면 PublicDependencyModuleNames에 이름을 추가하면 됩니다. 이후 프로젝트를 종료 후 Binaries, Intermediate 폴더를 삭제, 재시작 하면 정상적으로 인식됩니다.
커스텀 모듈을 만들고 싶을 때는 이 링크를 참고하세요.
C++ 코드로 생성된 함수, 변수 접근이 안될 때
UE5툴 종료 후 VS 에서 Ctrl+Shift + B 로 빌드 시도 -> [프로젝트명] Win64 Development Build 선택해 빌드.
UE5툴 재시작 후 Live Coding Rebuild 하면 정상적으로 보입니다. 역시.. 안보일 때는 Binaries, Intermediate 폴더를 삭제, 재시작 하면 정상적으로 인식됩니다.
static mesh에 collision 설정 중 overlap 이벤트 처리가 정상적으로 되려면 Collision Presets -> Collision Enabled를 "Collision Enabled(Query and Physics)"로 설정되어 있어야 합니다.
UPROPERTY() 활용
맴버에 어떤 객체의 포인터를 저장한다면 UPROPERTY() 를 꼭 붙여두세요. 가비지 컬렉션이 적용되어 치명적인 문제를 예방할 수 있습니다.
Cpp 프로젝트에서 코드 에러로 실행 안될 때
코드가 에러가 있다면 프로젝트를 정상적으로 열 수 없습니다. 이때는 VSCode 등 코드편집 툴을 열어 코드를 수정해서 빌드가 정상적으로 되는지 확인 후 다시 언리얼엔진에서 프로젝트를 열어 보세요.
'개발 이야기 > 개발툴 및 기타 이야기' 카테고리의 다른 글
UE5 "CreateExport: Failed to load ..." (0) | 2024.01.23 |
---|---|
UE의 PhysicsHandleComponent (0) | 2024.01.18 |
Stable Zero123 설치하기 (0) | 2023.12.14 |
ComfyUI 에서 Batch 사용하는 방법 (0) | 2023.12.13 |
언리얼 엔진 5.3 예제로 찍먹하기-04 GamePlay 및 개선 (32) | 2023.11.28 |