일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 줄 세우기
- NRVO
- DeferredRendering
- 2294
- UE5
- RVO
- 백준
- IFileDialog
- 오블완
- UnrealEngine5
- 1563
- 언리얼엔진5
- directx
- const
- Programmers
- C
- Frustum
- algorithm
- 프로그래머스
- 팰린드롬 만들기
- softeer
- Unreal Engine5
- DirectX11
- winapi
- 티스토리챌린지
- C++
- UnrealEngine4
- baekjoon
- GeeksForGeeks
- RootMotion
- Today
- Total
목록UnrealEngine5 (50)
Game Develop
C++코드 이것저것 시험하다가 한번 에디터 껐다 켰는데, 프로젝트를 여는 도중에 75%에서 더이상 진행이 안되는 현상이 발생했었다. 작업관리자에서 확인해보니 아예 CPU할당이 0%이길래 바로 관련해서 구글링을 하며 관련 해결글을 찾아봤다. 이것저것 찾아본 결과, 일단 내가 생성한 블루프린트파일을 하나씩 삭제하면서 에디터를 켜보기로 했다. 결과적으로 플레이어캐릭터에 관한 CPP파일을 상속받는 블루프린트파일을 삭제하고 프로젝트를 열었더니 다행히 잘 열리긴 했다. 그러나 기존처럼 똑같이 셋팅하고 언리얼에디터를 껐다키면 마찬가지로 75%에서 멈췄다. 약간 여기서 C++코드에 문제가 있지 않나...라는 생각이 들었다. 아래는 메인플레이어캐릭터의 생성자 코드이다. 1 2 3 4 5 6 7 8 9 10 11 12 1..
https://velog.io/@starkshn/%EC%A0%84%EB%B0%A9%EC%84%A0%EC%96%B8 전방선언 스택이건 힙이건 관련 없이이렇게해서 빌드를 하면 통과를 한다.Player의 설계가 완성이 되었다는 것이다.이런식으로 메모리에 Player를 올리기위해서 가장 중요한 부분은이 Player의 크기가 몇 바 velog.io 요약 : A클래스에서 B클래스를 헤더파일에서 인클루드하는식으로 해서 종속성이 생길 경우, B클래스에 변경이 있을경우 A도 아예 다시 빌드해야 한다. 이게 서로 서로 맞물리다보면 다시 빌드해야하는 파일들이 굉장히 많아지므로 빌드시간이 굉장히 오래 걸린다. 그래서 디폴트로 전방선언을 한다고 생각하고, 어쩔수없는 경우에만 헤더파일에서 인클루드한다.
https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/StringHandling/ 스트링 처리 UE4 에서 사용가능한 스트링 클래스에 대한 개요와 FName, FText, FString 에 대한 참고 안내서입니다. docs.unrealengine.com 변하지 않을 문자열을 사용하는 경우 FString이 아닌 FName을 이용한다. 문자열을 key로 하는 상황같은 경우를 말한다. 혹은 아래와 같이 스켈레탈의 본에 접근하는 경우도 있다. FRotator rotPelvis = Mesh->MeshGetInstance(this))->GetBoneRotation(FName(TEXT("pel..
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 // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "CustomStructs.generated.h" class HYOBINSPROJECT_API CustomStructs { public: CustomStructs(); ~CustomStructs(); }; USTRUCT(Atomic, BlueprintType) // Atomic : 항상 하나의 단위로 직렬화. BlueprintType : 블루프린트에서 사용될 수 있음..
https://lifeisforu.tistory.com/332 [ UT 분석 ] 5.4. 이동 모드와 속성들 개요 [ 5.3. 플레이어 입력 ] 에서 어떤 플레이어 입력이 있는지 살펴 보았습니다. 이 섹션에서는 이동과 관련한 로직 및 애니메이션에 대해서 살펴 보도록 하겠습니다. 이동( locomotion, 보행, 운동 lifeisforu.tistory.com 각 옵션들을 자세히 설명해주셨다. 이런 글들이 얼마나 소중한지 개발 하다보면 알 수 있다..
사실 기본적인 설정관련한 내용이긴한데, 나같은 초보자한테는 도움이 될 거라 생각한다. 애니메이션 시퀸스파일의 뷰포트에는 분명히 정상적으로 루트모션이 잘 재생되는데, 실제 게임에서는 루트모션이 적용이 안되어 있을 경우가 발생할 수도 있다. 그럴 경우 먼저 메인캐릭터와 연결된 애니메이션 블루프린트파일을 연다.이후 상단의 메뉴들 중에서 Class Defaults를 클릭하면 우측상단에 Details 패널이 표시될 것이다. Details 패널에 보면 Root Motion이라는 패널이 있다.위 캡처본에 표시되어있는 Ignore Root Motion을 포함해서 총 4개의 옵션이 있다.언리얼문서에 의하면 각 옵션은 다음과 같다. 일단 내 경우에 하나하나 적용을 해보고 실행을 해봤다.사용한 애니메이션 시퀸스파일은 루트모..
프로젝트에 사용할 캐릭은 에픽게임즈스토어에 무료로 풀린 파라곤 에셋 캐릭터들 중 하나를 구입해서 사용했다. 애니메이션같은 경우는 에픽게임즈스토어에서 애니메이션팩을 유료로 구입했다. 즉, 서로 다른 스켈레톤이기 때문에 리타겟팅을 해줘야 했다. 일단 Walk 애니메이션시퀸스를 먼저 리타겟팅을 해 봤다. 이 Walk 애니메이션시퀸스는 기본적으로 루트모션이 아니고, 조금씩 전진하는 파일이다. 그대로 캐릭터에 적용할 경우 그냥 가만히 냅둬도 조금씩 전진한다음 다시 처음으로 돌아오게되고 이걸 계속 반복한다. 그렇기 때문에 반드시 루트모션을 적용해줘야 한다. 좀 더 이유에 대해 첨언하자면, 조금씩 전진할 때 루트캡슐컴포넌트는 같이 전진하지않고 시작위치에 그대로 있기 때문에 의도치 않은 버그들을 유발할 수 있다. 캐릭..
본인이 직접 작성한 코드에 대한 포인터는 UPROPERTY 매크로를 붙여서 관리하게 하자. -> 잘못하면 런타임때 죽어버릴 수 있다. 월드상에 배치되는 액터라면 IsValid()함수로 유효성 체크를 한다. 언리얼오브젝트는 Destroy를 호출한다고 바로 삭제되는게 아니라, 일단 Pending Kill 상태로 마크만 표시한 후, 다음 가비지컬렉터가 작동할 때 되서야 실제로 삭제된다. 네이티브 c++ 개발할 때처럼 nullptr로만 체크를 하는것을 권장하지 않는다. UPROPERTY가 런타임때 죽는다면, 가비지컬렉터가 UObject에서 상속되는 클래스를 지워서 그렇다. 스마트포인터로 관리하거나, AddReference로 GC에 참조카운트를 올려서 관리받게 유도한다. Actor클래스의 경우 SpawnActor..