에러 상황 CPP 컴파일만 하면, 언리얼 엔진이 Crash가 난다. CPP 컴파일은 성공이고, 재시작한 엔진에서도 코드따라 잘 동작하는데 뭐가 문제일까... 컴파일 할 때마다, 언리얼 엔진이 Crash나서 재시작해야하니 여간 귀찮은 게 아니다. 오류 메세지 Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000138 UE4Editor_CoreUObject UE4Editor_CoreUObject UE4Editor_CoreUObject UE4Editor_Engine UE4Editor_Engine UE4Editor_Engine UE4Editor_UnrealEd UE4Editor_UnrealEd UE4Editor_Unreal..
기타/Unreal
다이렉트X를 공부하면서 램버트, 하프램버트를 구현해봤었다. (라이트 벡터와 노멀 벡터의 내적 연산.) [DirectX11] 12일차 (Depth 버퍼 만들기 / 디퓨즈 만들기) 조명 연산 앰비언트 라이트(간접광) + 디퓨즈(난반사) + 스페큘러(정반사) + ... = 최종 조명. 빛 처리는 하나하나 구한 뒤에 모두 더해서 구한다. 디퓨즈, 스페큘러는 구현하는 유명한 방법이 있다. mingyu0403.tistory.com 언리얼에서 구현을 해보려하니, 라이팅 벡터와 노말 벡터를 어떻게 얻어오는 지조차 알 수 없었다. ㅠㅠ 구글링을 하다보니, 마둠파님 블로그에 초보자를 위해 설명을 해주신 게 있었다. 유니티와 언리얼에서 NdotL 구현하기 안녕하세요 마둠파입니다. 블로그를 다시 시작하고 첫 글인데요, 한동안..
오우.. 처음으로 언리얼에서 C++을 사용해본다. 아마 할 만하겠지..? 프로젝트 생성하기 처음 생성할 때 Blueprint와 C++을 고르는 것은 미세한 차이는 있지만, 의미가 없다. 언제든 프로젝트 내에서 블루프린트나 C++파일을 생성할 수 있기 때문이다. 직접해보니 블루프린트로 만들면 왼쪽처럼, C++로 만들면 오른쪽처럼 생성된다. GameModeBase가 블루프린트로 생성될지, C++로 생성될지가 차이점으로 보인다. 궁금해서 구글링 해봐도 정확히 뭐가 차이 나는 건지 모르겠다. C++ 파일 생성하기 나는 처음에 GameModeBase 파일이 보기 싫어서, 블루프린트로 생성했다. 블루프린트로 생성을 하게 되면, 우클릭을 해도 C++ 클래스 생성이 보이지 않는다. 그래서 처음 한번만 이렇게 생성해주면..
Visual Studio에서 빌드를 하면, 계속 언리얼 엔진이 튕겼다. (엔진 크래시) 뭐가 문제일까 고민을 많이 하다가. 이득우님 책을 읽었을 때, 삭제해도 되는 파일들을 몇 개 소개해주신 게 기억났다. '이 파일들을 한번 삭제했다가 재시작하면 될까' 싶어서 해보았다. 삭제하고 재시작을 하니, 생각한 대로 파일들이 재생성되었다. 문제 발생 이후에 CPP 파일을 Visual Studio로 열었더니, 뭔가 이상해 보인다. 안돼!!!! ㅠㅠ 문제가 일어난 이유 삭제하면 안 되는 파일이었나..? 싶어서 이득우님 책을 다시 자세히 읽어봤다. Intermediate 폴더가 임시파일들을 저장하는 곳이라 삭제해도 되지만, 솔루션이 관리하는 파일들이 Intermediate 폴더 내 ProjectFiles 폴더에 존재한..
언리얼 문서 참고 docs.unrealengine.com/ko/AnimatingObjects/SkeletalMeshAnimation/AnimationRetargeting/index.html 애니메이션 리타기팅 리타기팅된 애니메이션을 여러 스켈레탈 메시에 사용하여, 애니메이션을 공유하는 법입니다. docs.unrealengine.com 애니메이션 리타기팅은 비슷한 스켈레톤을 사용하는 캐릭터에게 애니메이션 파일을 입혀주는? 느낌이다. 왼쪽의 모델에 오른쪽 애니메이션을 리타기팅해보겠다. 스켈레톤을 관리하는 곳에서 리타깃 매니저를 클릭하고, 리타깃 소스를 추가한다. 그 다음에는 릭을 설정해준다. 릭은 캐릭터의 뼈를 매핑해주는 작업이다. 이 뼈는 이 뼈의 움직임을 받는다. 를 설정해주는 것이다. (다리 뼈는 다리..
알아보면서 도움된 블로그 https://blog.naver.com/ryumr/221334719805 https://somworks.tistory.com/7 파생 데이터 캐시 (Derived Data Cache) 언리얼에서 프로젝트를 처음으로 열면, 쉐이더 컴파일을 진행하게 된다. 이것을 캐시로 저장해놓고, 다음번에 프로젝트를 열 때는 캐시를 이용하여 빠르게 열 수 있는 기능이다. 경로를 바꾸는 이유는 1. SSD의 용량을 줄이고, 비교적 용량이 큰 HDD에 저장한다. 2. 협업할 때, 모두가 각자의 Local PC에 DDC를 저장하지 않아도 된다. 협업할 때 서버에 올린다든가하면, 모두가 쾌적하게 사용할 수 있겠죠?? 프로젝트가 커지면 커질수록 컴파일 시간이 오래 걸리니까. 경로 바꾸기 기본적으로 DDC..
미로를 만들면서, Seed 값에 따른 미로를 생성하게 만들었다. 이 때, 랜덤스트림을 사용했다. 2021/02/10 - [게임 엔진/[Unreal] Engine] - 블루프린트 입문 3주차 자세한 내용은 여기있지만, 역시 눈으로 보는 것보단 사용해봐야 다음에 쓸 때도 생각나고 편하다. 랜덤 스트림 Random Stream 이란 무엇인가, 블루프린트에서 어떻게 사용되는가에 대한 설명입니다. docs.unrealengine.com 우선 랜덤 스트림 변수를 잡는다. Set Random Stream Seed로 Seed를 설정한다. (입력받아도 되고, 랜덤으로 해도 되고) 나는 이렇게 설정했다. isAuto가 True면, 랜덤 값으로 Seed 설정. isAuto가 False면, 입력받은 값으로 Seed 설정. 랜..