2017. 11. 15.

기술 미리 보기: 언리얼 엔진 속 Python

저자 Ken Pimentel

오토데스크 유니버시티(Autodesk University)에서는 현재 CAD 데이터를 언리얼 엔진으로 옮기는 복잡한 문제의 해결에 대해 진행중인 연구를 살짝 공개해 드렸습니다. 살짝 공개해드린 것이긴 하지만, 이 연구는 데이터스미스의 발전에 있어 아주 중요한 디딤돌입니다.

현재 진행 단계

현재 베타가 진행중인 데이터스미스 워크플로우 툴킷은 최대한 마찰 없이 언리얼 엔진으로 데이터를 옮길 수 있게 해 줍니다. 데이터스미스는 유명한 DCC 및 CAD 어플리케이션의 지오메트리, 텍스처, 머티리얼, 라이트 및 카메라와 같은 일반 씬 애셋의 높은 정확도 트랜슬레이션을 언리얼 엔진으로 제공합니다. 현재 8,000명 이상의 베타 사용자 여러분과 이런 사용자 여러분이 보내주신 열정적인 피드백이 증명하듯, 우리는 이미 워크플로우에서 리얼타임 용도의 데이터를 준비하는 시간에 몇 일, 몇 주 단위의 시간을 아낄 정도로 큰 발전을 만들어냈습니다.

앞으로의 목표

정말로 마찰 없는 워크플로우를 얻기 위해, 우리는 리얼타임 용도 데이터의 자동화 및 준비에 관한 문제도 다루어야 합니다. 데이터스미스를 거친 데이터가 언제나 "완벽하게 렌더링"되거나 "최적화" 될 것이라고 예측할 수는 없기에, 이런 종류의 문제를 파괴적이지 않은(즉 똑같은 작업을 반복하지 않고도 업스트림 데이터를 쉽게 변경할 수 있는) 방식으로 다룰 수단을 제공해야만 합니다.

 PythonInUnreal_1.jpg
기존에 언리얼 엔진을 위해 데이터를 준비하던 워크플로우는 데이터 최적화에 다른 툴을 의존했습니다.

전망

이번 주 오토데스크 유니버시티에서, 우리는 사상 처음으로 데이터 준비 작업을 위해 언리얼 엔진 내에서 파이썬(Python)과 블루프린트를 사용하는 얼리 프리뷰를 보여드립니다.
 
PythonInUnreal_2.jpg
 미래의 데이터 준비 워크플로우에서는 데이터 스미스와 언리얼 엔진 기반 툴을 사용할 것입니다.

이번 시연에서는 사용자가 파이썬 및/혹은 에픽게임즈의 블루프린트 비주얼 스크립팅에서의 작업을 통해 씬 데이터를 처리하고 최적화하는 새롭고 정교한 데이터 준비 툴을 이용할 수 있다는 가능성을 보여주었습니다. 우리가 분석하고 있는 데이터 준비 기능은 “1 입방 센티미터보다 작은 부분을 모두 찾아 제거”하는 것부터 “이 오브젝트들을 찾아 자동으로 수정(나쁜 토폴로지와 갭, 그리고 오버랩을 수정)하는 것에 이릅니다.”

PythonInUnreal_3.jpg
 이 사례의 오토바이는 일련의 간단한 규칙들로 처리되어, 보다 최적화된 버전으로 만들어졌습니다.

오토데스크 유니버시티를 위해 제작한 위 사례의 프로젝트는 3ds 맥스(3ds Max)파일을 가지고 시작했지만, 사실 데이터스미스에서 원래 지원하는 그 어떤 파일 포맷으로든 시작할 수 있습니다. 현재 20가지 이상의(그리고 앞으로도 계속 추가될) 파일 포맷들이 지원되고 있으니, 여러분이 필요할 포맷이 지원될 확률도 높습니다. 파일을 임포트한 후에는 공통적인 작업이 실행됩니다.

PythonInUnreal_4_V2.jpg
간단한 파이썬 스크립트가 데이터를 로드합니다. 데이터스미스는 20가지 이상 포맷의 데이터를 지원합니다.

여러분은 종종 보이지 않는 모델이나 현재 제작중인 시각적 경험과 관련이 없는 모델에 세부 정보를 가지게 됩니다. 우리는 특정 인스턴스에 대한 메타데이터를 검색해 제거하거나 최적화할 수 있는 방법을 지원합니다. 또한 우리는 보이지 않는 모든 오브젝트를 탐색하는 방법도 지원하므로, 내부에 있는 세부 정보 중 관련이 없는 것을 찾아 삭제하는 데 도움이 됩니다. 관련이 없는 애셋을 찾아 간소화하거나 제거하는 방법에는 많은 기술들이 있을 것입니다.
 
PythonInUnreal_5.jpg
이 간단한 파이썬 스크립트는 메타 데이터로부터 특정 이름을 찾은 다음 삭제합니다.

복잡한 메시를 다루는 기술 중 한 가지는 그 메시의 간소화된 버전을 만드는 것입니다. 여러분은 데이터스미스와 언리얼 엔진으로 몇 가지의 평가 방식을 가집니다. 데이터스미스는 카티아(Catia), 크레오(Creo), NX, SW, JT, 라이노(Rhino) 등에서 BREP 데이터 임포트를 지원하므로, 여러분은 테셀레이션 및 코서 파라미터를 사용해 간소화된 메시를 구하는 선택지를 가집니다. 언리얼 엔진은 LOD를 제작할 2차 메시 옵티마이저도 가지고 있습니다. 어떤 방법으로든 여러분은 가시성 지오메트리의 보다 최적화된 버전을 제작하여 경험의 목표 퍼포먼스를 달성하는 데 도움을 받을 수 있을 것입니다..

PythonInUnreal_6.jpg
이 파이썬 스크립트는 복잡한 시트 메시를 취하고 빌트인 언리얼 엔진 옵티마이저를 사용해 LOD를 구축합니다.

씬 구조 조작은 퍼포먼스나 애셋 작업을 보다 쉽게 하기 위한 재정리 작업에 흔히 필요합니다. 모든 리얼타임 엔진에는 실시간 처리할 수 있는 오브젝트 숫자에 제한이 있습니다. 예를 들어 아이패드(iPad)에서는 60fps의 AR에서 최대 1,000개의 오브젝트와 1,000,000개의 폴리곤을 목표로 할 수 있습니다. 강력한 사양의 데스크탑에서는 90fps의 VR에서 그 두 배의 오브젝트와 폴리곤을 처리할 수 있습니다. 복잡한 CAD 파일은 5,000개 이상의 오브젝트를 포함하는 경우가 많으므로, 여러분은 데이터를 조직하는 방법을 구상하여 드로 콜을 제한해야 합니다.

PythonInUnreal_7.jpg
이 스크립트는 각각의 수많은 개체를 취한 다음, 이들을 하나의 개체로 합칩니다.

데이터스미스가 V-레이(V-Ray), 코로나(Corona), 멘탈 레이(Mental Ray) 등으로부터 머티리얼을 자동으로 변환하긴 히지만, 그렇다고 이것이 여러분이 원하는 머티리얼이라는 뜻은 아닙니다. 여러분은 최적화된 언리얼 엔진 4 머티리얼로 구성된 자신만의 라이브러리를 가질 수도 있고, 혹은 일종의 후처리가 된 CAD의 머티리얼을 사용할 수도 있습니다. 이럴 경우 여러분은 기존의 머티리얼을 찾아 언리얼 엔진 4로 최적화된 머티리얼로 교체할 방법이 필요할 것입니다. 새로운 파이썬 툴이 있다면, 여러분은 찾을 머티리얼과 교체할 머티리얼 간의 1:1 관계를 가진 간단한 텍스트 파일을 사용해 이 작업을 할 수 있습니다.

PythonInUnreal_8.jpg
이 스크립트는 간단한 텍스트 파일을 기반으로 머티리얼을 찾아서 대체하는 전략을 사용합니다.

데이터스미스는 사용자가 원하는 스크립팅 패러다임을 선택해 작업할 수 있도록 파이썬과 블루프린트 인터페이스를 모두 제공합니다. 즉 데이터스미스 사용자는 이 새 워크플로우를 사용해 강력한 지오메트릭 프로세싱 툴을 용도별로 제작(하고 공유)할 수 있게 될 것이라는 뜻입니다.

PythonInUnreal_9.jpg
여러분은 블루프린트 비주얼 스크립팅 인터페이스를 사용해서도, 노출된 파이썬 툴을 사용할 때와 똑같은 작업을 수행할 수 있습니다.

데이터 프로세싱과 최적화를 언리얼 엔진으로 옮겨, 자동화 및 파괴적이지 않은 워크플로우에 더 나은 지원을 할 수 있습니다. 이제 업스트림 데이터에 변화가 생길 경우(언제나 발생하는 일입니다), 다운스트림 애셋을 손으로 일일히 재작업하는 대신 스크립트를 사용해 재처리해 줄 수 있습니다.

마찰 없는 데이터 임포트와 강력한 데이터 준비 툴의 조합은 언리얼 엔진 사용자에게 최소한의 노력만으로 CAD 애셋을 생생한 가상 경험으로 트랜스폼할 수 있는 능력을 해금해줍니다. 

이 기사에서는 앞으로의 계획에 대해 아주 살짝 공개해 드렸습니다. 저희는 앞으로의 데이터스미스 베타 릴리즈에서 새로운 파이썬 기반 툴을 공개할 것이므로, 오늘 바로 www.unrealengine.com/beta에서 베타에 참여해 보세요!

언리얼 엔진과 관련된 다른 굉장한 개발에 대해서도 공개할 예정이니, 앞으로도 올라올 기술 미리보기 기사에 계속 주목해 주시기 바랍니다!
 

최근 게시글

GPORTAL과 함께 논하는 멀티플레이어 기반 체제

개발자들은 멀티플레이어 위주 게임에서 멀티플레이어의 기반 체제 관리에 대해 어떤 것을 알아야 하는지, GPORTAL과 함께 의논해 보았...

2017 에픽 메가잼 결과 발표

3주동안 270개 이상의 게임들이 제출되었으며, 상당한 숙고를 거듭한 끝에 저희는 2017년 에픽 메가잼의 우승자들을 가려낼 수 있었습...

리얼 타임은 미래입니다. 왜 지금 바꿔야 할까요?

리얼타임 디자인은 현재 빠르게 변화하는 크리에이티브 산업 전반에서 경쟁 우위를 찾고 있는 디자이너들에게 어떻게 엄청난 차이를 만들어 주...