일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- 언리얼엔진5
- algorithm
- winapi
- 줄 세우기
- baekjoon
- UnrealEngine4
- Programmers
- UE5
- const
- C
- softeer
- Frustum
- IFileDialog
- 절두체
- directx
- RootMotion
- C++
- 2294
- DirectX11
- 1563
- DeferredRendering
- 팰린드롬 만들기
- 프로그래머스
- 가장 큰 정사각형
- 절두체 크기
- NRVO
- GeeksForGeeks
- RVO
- UnrealEngine5
- Today
- Total
목록UnrealEngine5/이것저것 (38)
Game Develop
블루프린트파일 같은거 다루다보면 가끔씩 디테일패널같은게 사라져서 안보이는 경우가 있다. 분명 상단의 Window탭을 누르면 Details에 표시가 되어있는데 안보인다. 에디터를 껐다켜도 안되고 블루프린트파일을 삭제했다가 재생성해도 해결되지 않을 경우, 아래와 같이 하면 된다. 아주 간단하다. 마찬가지로 Window탭을 누르고 최하단쪽 보면 'Load Layout'이 있고, 마우스를 갖다대면 'Default Editor Layout'이 있다. 이거 누르면 다시 잘 보인다..
예를들어 캐릭터의 전투여부에 따라 Idle모션이 바뀐다고 가정. 애님인스턴스 c++파일에서는 캐릭터클래스를 TryGetPawnOwner로 받아와서 애님인스턴스클래스자체에서도 bool IsCombat을 계속 업데이트하게 해놨다. 입문자를 위한 책예제에서는 전부 블루프린트에서 하게 해놨는데, 일단 블루프린트와 C++성능 차이가 꽤 있다는 것을 인지하고 있었기 때문에 틱마다 수행하는 이런 간단한 값업데이트정도는 C++로 하는게 맞다고 판단했다. 사실 일단은 규모가 작기 때문에 현재를 기준으로 치면 블루프린트로 처리하든 C++코드로 처리하든 별 의미는 없다. 다만, 어차피 결국 커지기 마련이고 최대한 코드로 처리할 수 있는 부분은 코드로 처리하는게 맞는 것 같다. 실제로 이렇게하니까 아래와 같이 에디터자체에서도..
나같은 경우 플레이어캐릭터의 애니메이션 이벤트그래프는 일단 c++코드로 작성하고 애님그래프쪽만 블루프린트로 처리 해보려 한다. 일단은 이벤트그래프쪽은 c++코드로 처리하려고는 하는데 언제 어떻게 비중이 바뀔지는 아직 모르긴한다.. 어쨌든 AnimInstance 클래스에 아래와 같이 플레이어캐릭터 포인터 변수를 선언해주었다. class AMainPlayer* m_MainPlayer; 하지만 그냥 C++로만 하듯이 이렇게 선언해서 사용하면 안된다. 언리얼엔진에는 가비지컬렉터가 존재한다는것을 반드시 인지하고 있어야 한다. 언리얼 엔진의 가비지컬렉터에 관한 내용은 매우 방대하기 때문에 전부를 다루는것은 어렵고, 개발하면서 부딪치는 문제를 해결할 때마다 관련 경험에 대한 글을 반드시 작성하는게 좋을 것 같다. (..
목적에 맞게 파일이나 폴더를 정리하려 할 때, 임의로 윈도우 탐색기에서 막 위치를 조정하면 안된다. 아마 조정 후, 프로젝트 오픈하는 중에도 바로 에러메시지가 발생할 것이고 플레이도 안될 것이다. 반드시 에디터 내에서 파일이나 폴더의 이동,복사를 수행하는게 좋다. https://www.youtube.com/watch?v=f2o9aGC96lk 만약 언리얼엔진을 시작하려한다면 반드시 이 영상이라던가 관련 내용에대해 충분히 숙지하는 걸 추천한다. 에디터내에서 파일의 조작이 수행되어야 에디터가 변경된 경로를 인식할 수 있다. 이런 에셋들뿐만아니라 cpp파일 같은 경우도 삭제라던가 경로가 변경되면 다시 Generate해줘야 하니 반드시 관련 내용에 대해 숙지하자. 미리미리 알면 그래도 운 좋은 편이다..
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 : 블루프린트에서 사용될 수 있음..