본문 바로가기
툰렌더링 공부

언리얼엔진 공부

by IX. 2022. 9. 15.

9.15

프로젝트에 사용할 엔진이 바뀌며 언리얼 엔진을 새로 공부할 필요가 생겼다.

언리얼에선 셰이더를 머티리얼, 우리가 잘 아는 머티리얼은 머티리얼 인스턴스라는 이름으로 부른다.

기본적인 사용법은 익혔고, 나머지는 차차 배워가며 실무적용을 해야 할 듯.

언리얼은 블룸이 참 예쁘다. 

아아. 마음이 편해진다.

얼굴기본까지 완료.

9.20

언리얼은 뭔 파일을 넣든 확장자가 uasset으로 변경된다. 텍스처를 고쳐도 임포트가 자동으로 되지도 않는다. 게다가 엄청 무겁다.

이것이 작업을 할 때 꽤 큰 걸림돌이 되기 때문에, 블렌더에서 사용할 수 있는 형태로 셰이더를 컨버팅했다.

블렌더의 셰이더노드는 단순해서 더 어렵다. 셰이더 로직의 기본이 되는 상수도 추가할 수 없고, RGB는 A를 지원하지 않는다. 따라서 벡터는 무조건 Vector3, 그 흔한 Lerp조차 없다. SmoothStep같은 노드는 언강생심이다. 모두 만들어 써야 한다. 애초에 블렌더의 노드는 Shader To RGB부터 시작하기 때문에, 렌더이미지를 직접만들기보단 BSDF에서 파생된 형태를 가공해서 쓰는 쪽으로 초점이 맞추어져 있기 때문에 그런 것이 아닐까.

9.21

지금까지 손으로 적어 사용하던 스크립트를 패널화.

블렌더는 매우 좋다가도,  당연히 있어야 할 기능들이 없는 경우가 많다.

주로 다수 처리에 관한 것들이다. 

 

9.22

아침마다 1~2시간씩 언리얼 기초강좌를 보고 있다.

유니티 런이 뒤죽박죽 엉망이었단 느낌인데, 에픽은 이런 면에선 꽤 잘해놓아서 접근성이 좋은 편

지금보고 있는 강좌는 이것. 설명이 아주 꼼꼼하고 잘 되어 있다.

Your First Game In Unreal Engine 5 | Epic Developer Community (epicgames.com)

 

Your First Game In Unreal Engine 5 | Tutorial

Practical in-editor demo making a game from scratch highlighting UE5 features. Show how fast you can create a game leveraging new and established featur...

dev.epicgames.com

 

영상은 1시간 20분남짓인데, 벌써 5일째 보고 있는 중[...]

영상속 캐릭터는 회전이 잘 되는데... 내껀 안된다...

공부를 할 때 두 번 해봐도 안된다면 이런 부분은 그냥 넘어가는 게 좋다. 

언젠가 자연스레 알게 된다.

9.23

입셰이더를 제작 중. SD라 평면적인 입을 사용하므로 UV를 흘리는 방식을 사용한다.

헌데 이게 꽤 어려웠다.

일단 오브젝트의 정면벡터를 구해야 하는데 지금까지 사용하던 N, L, H등의 벡터와는 다른 거라 어찌해야 하는지 한참 삽질. 그러다가 그냥 (0,1,0)을 월드 스페이스로 변환하면 된다는 사실을 깨달았다... 멍...

벡터는 구했지만 이걸 어찌돌릴 것인가? 일단 V와 내적하면 얼추 구해지지만, -가 안된다...따라서 계속 한쪽으로만 도는 현상이 발생. 해서 생각해 낸 것이 외적. 지금까지는 비탄젠트 벡터 구할 때만 썼는데, 아... 부호가 필요할 때 쓰는 것이구나! 깨달음을 얻었다.

그런데 또 너무 빨리 돈다...속도야 숫자넣어서 줄여주면 되는데 선형적움직임이 아니다. 당연하지.. 내적이 코사인에 기반을 두고 있으니..

두 벡터 사이의 각도를 숫자로 치환해주면 좋겠다..그럼 선형적일텐데..싶어서 구글링해보니 있다! 아크코사인에 내적값을 넣으면 라디안으로 변환되어 나온다고 한다.

재료들은 다 구했으니 이제 만들기만 하면 된다. 그럼 만들러 가겠슴다

야호.예쁘네요.

우마무스메의  기술문서에 있는 Scale & Offset기능이 항상 궁금했는데, 이 방식이라면 구현할 수 있다.

덕분에 생각보다 복잡해진 노드