본문 바로가기

분류 전체보기

(706)          글쓰기    
EnhancedInput vs LegacyInput, Input Error 연습하면서 출판사 사이트의 소스코드를 죄다 카피해서 복붙했더니 캐릭터가 안움직였다.안그래도 TopDownProject의 Input이 Enhanced인데 왜 Legacy방식의 Attack Actoion을 만드는지 이상했는데 여기가 문제가 있다. 코드가 다르다. 교재의 소스는 엤날거랑 엤날 인풋액션을 만들어주던지 소스를 뜯어고치던지 해야한다.그냥 옜날방식 input Action을 ProjectSetting에 추가하기로 했다. 잘된다.하여간 새로운 TopDownProject의 소스를 보면 Tick()이 없다.대신 Input Event을 4단계로 구분해 TriggerEventEnhancedInputComponent->BindAction(SetDestinationClickAction, ETriggerEvent::..
7장 CanAttack() Attack() 함수 구현하기 AnimInstance()를 UPlayerAvatarInstance로 캐스팅해 EPlayerState가 Locomotion이면서 Attack카운트다운시간이 0일경우 true를 리턴한다.bool APlayerAvatar::CanAttack(){ auto animInst = Cast(GetMesh()->GetAnimInstance()); return (_AttackCountingDown State == EPlayerState::Locomotion);}Attack()함수는 타이머를 초기화한다. 애니메이션은 AnimationBlueprint에서 처리한다.void APlayerAvatar::Attack(){ _AttackCountingDown = AttackInterval;}ProjectSetting>Engine..
07 PlayerController 캐릭터 제어하기 SimpleMoveToLocation 프로젝트를 생성할때 자동으로 PangaeaPlayerController 클래스가 생성한다.TopDownCharacter는 EnhancementInput을 위해 2개의InputAction과 IMC가 마련되어 있다.SetupInputComponent()에서 Binding되어 있다. Attack는 나중에 만들어 추가할것이다.void APangaeaPlayerController::SetupInputComponent(){ // set up gameplay key bindings Super::SetupInputComponent(); InputComponent->BindAction("SetDestination", IE_Pressed, this, &APangaeaPlayerController::OnSetDestinat..
Unreal 프로젝트 에셋 대량 편집 최적화 언리얼에서 프로젝트 에셋의 용량을 한번에 줄일수 있는 방법이 있을까 언리얼 엔진에서 프로젝트 에셋의 용량을 한 번에 줄이는 것은 몇 가지 접근 방식과 도구를 조합하여 이루어질 수 있습니다. 특히 에디터 내에서 대량으로 설정을 변경하거나, 프로젝트 전체의 빌드(쿠킹) 프로세스를 최적화하는 방법들이 있습니다.가장 효과적인 방법들을 단계별로 정리해 드리겠습니다.1. Property Matrix (프로퍼티 매트릭스)를 이용한 대량 편집가장 강력하고 직접적인 방법으로, 특정 유형의 에셋(텍스처, 스태틱 메쉬 등)의 속성을 일괄적으로 변경하여 용량을 줄이는 것입니다.에셋 선택: 콘텐츠 브라우저에서 최적화하려는 에셋들을 모두 선택합니다 (Ctrl + A 또는 Shift + 클릭). 특정 폴더 내의 모든 에셋을 ..
언리얼 최적화 Gemini질문 어떤 특정 부분에 대해 더 자세히 알고 싶으신가요? 예를 들어, 다음과 같은 내용들이 있습니다.성능 프로파일링 도구: 언리얼 엔진에서 제공하는 프로파일링 도구(예: Stat 명령, 언리얼 인사이트) 사용법CPU 최적화: 드로우콜 감소, Tick 함수 최적화, 불필요한 오브젝트 제거, 멀티스레딩 활용 등GPU 최적화: 셰이더 복잡도 감소, 오버드로우 최소화, 텍스처 최적화, LOD(Level of Detail) 활용, 컬링 최적화 등메모리 최적화: 텍스처, 메쉬, 애니메이션 등 에셋 메모리 관리, 가비지 컬렉션 이해빌드 및 패키징 최적화: 데이터 압축, 스트리밍, 불필요한 콘텐츠 제거네트워크 최적화: 멀티플레이어 게임 시 네트워크 대역폭 및 레이턴시 관리플랫폼별 최적화: PC, 모바일, 콘솔 등 각 플랫폼..
HLOD vs Nanite HLOD와 Nanite는 언리얼 엔진에서 메쉬 최적화를 위한 강력한 도구이지만, UE5에서 Nanite가 있다고 해서 HLOD가 완전히 불필요해지는 것은 아닙니다. 오히려 상호 보완적인 관계를 가집니다.각각의 역할과 왜 상호 보완적인지 설명해 드리겠습니다.1. Nanite (나나이트)주요 역할: 개별 스태틱 메쉬의 폴리곤 밀도를 무제한으로 높이면서도 성능을 효율적으로 유지하는 데 중점을 둡니다.작동 방식: 메시를 마이크로 트라이앵글 클러스터로 나누고, 카메라에서 보이는 부분만 필요한 수준의 디테일로 실시간 스트리밍 및 렌더링합니다. 컬링, LOD, 텍스처 스트리밍 등을 자동으로 처리합니다.장점:수백만 개의 폴리곤을 가진 고품질 에셋을 쉽게 사용할 수 있습니다.수동 LOD 생성 및 관리의 필요성을 줄여줍니..
HLOD vs Nanite HLOD와 Nanite는 언리얼 엔진에서 메쉬 최적화를 위한 강력한 도구이지만, UE5에서 Nanite가 있다고 해서 HLOD가 완전히 불필요해지는 것은 아닙니다. 오히려 상호 보완적인 관계를 가집니다.각각의 역할과 왜 상호 보완적인지 설명해 드리겠습니다.1. Nanite (나나이트)주요 역할: 개별 스태틱 메쉬의 폴리곤 밀도를 무제한으로 높이면서도 성능을 효율적으로 유지하는 데 중점을 둡니다.작동 방식: 메시를 마이크로 트라이앵글 클러스터로 나누고, 카메라에서 보이는 부분만 필요한 수준의 디테일로 실시간 스트리밍 및 렌더링합니다. 컬링, LOD, 텍스처 스트리밍 등을 자동으로 처리합니다.장점:수백만 개의 폴리곤을 가진 고품질 에셋을 쉽게 사용할 수 있습니다.수동 LOD 생성 및 관리의 필요성을 줄여줍니..
언리얼 엔진이라서 할 수 있는 폴리곤 최적화 (실무 꿀팁) https://www.youtube.com/watch?v=RYGKoE7ZwWk 연습실험을 위해모델링모드에서 디폼 디스플레이스먼트를 살짝 주었다.이후 위치를 동일하게 주었다. 아웃라이너에서 소스,타겟을 다 선택한다. 그래야모델링모드의 Bake를 클릭하고 BakeRC를 선택한다.해상도를 적당히 선택하고필요한 맵을 클릭하면 캡쳐해주면서 맵을 생성해준다.만들어진 텍스쳐는 제너레이티드 폴더에 저장되어 있다. 친절하게 머터리얼까지 만들어준다. 로우폴리박스에 적용해준다. 뭔가 디퓨트칼라는 먹지 않았지만 노말은 잘되어있는것 같다.베이크는 좀더 파라미터를 만져가며 연습이 필요한것 같다. 해상도를 높이니 좀 진해지기는 한다. 그래도 언리얼에서 간단하게 이런게 된다는게 신기하다. wireframe모드에서 봤을때 화면
최적화 배경모델러 라면 필수로 알아야 하는 최적화 (아틀라스) https://www.youtube.com/watch?v=HKWjMIkwf14병합된 모델을 클릭해보면 메시는 합쳐졌지만 아직 머터리얼은 분리된 상태입니다.
Unreal 최적화 Unreal 최적화 링크https://dev.epicgames.com/documentation/ko-kr/unreal-engine/guidelines-for-optimizing-rendering-for-real-time-in-unreal-engine 이 페이지는 실시간 렌더링 기능으로 최적의 충실도를 달성하면서 퍼포먼스를 파악하고 최적화하는 방법에 대한 가이드라인과 모범 사례를 제공합니다. 이 페이지에서는 아래와 같은 내용을 살펴봅니다. 퍼포먼스 예산에 영향을 미치는 요인 프로젝트 패키징 모범 사례 퍼포먼스 병목 현상을 측정하는 툴 소개 퍼포먼스 예산 파악 프로젝트 개발 시 애플리케이션의 타깃 플랫폼에는 오브젝트를 메모리에 유지하고 이를 처리하는 데 사용할 수 있는 리소스에 제한이 있습니다. 프로젝트를 ..
게임 액터 생성하기 플레이어 아바타 설정하기TopDown으로 PlayerAvata를 설정하기 위해 카메라와 스프링암이 필요하다#include "GameFramework/SpringArmComponent.h"private:UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))USpringArmComponent* _springArmComponent;UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))UCameraComponent* _cameraComponent;카메..
언리얼 게임플레이 프레임워크 클래스 학습하기 https://github.com/AcornPublishing/ue5-game-development GitHub - AcornPublishing/ue5-game-development: C++ 스크립트를 활용한 언리얼 엔진 5 게임 개발 [C++ 기초부터C++ 스크립트를 활용한 언리얼 엔진 5 게임 개발 [C++ 기초부터 실제 게임 개발까지, 언리얼 게임 개발의 모든 것] - AcornPublishing/ue5-game-developmentgithub.com 언리얼 게임플레이 프레임워크 에는 자동으로 생성되는 PlayerController, GameModeBase와 추가해줘야하는 GameState, GameInstance라는 4개의 클래스가 포함되어 있다. GameState, GameInstance를 만..