집 짓기

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

프로세스 시작 단계에서 많은 반복과 신속한 테스트를 통해 집을 재미있고 오싹하게, 쉽게 탐색할 수 있고, 잃어버리고 싶은 것을 얻을 수 있도록 만들었습니다.우리는 공간을 통해 생각하고 패키지 를 사용하여 개별 의자와 전체 방을 업데이트하는 것을 더 빠르게 만들기 위해 어떻게 구축했는지 보여줄 것입니다.

2D 레이아웃으로 시작

집은 플레이 가능한 영역의 대부분이자 전체 캐릭터이기 때문에, 실제로 유지되고 재미있게 유지하는 방법에 대해 많은 생각을 하고 싶었습니다.우리는 집에 여러 시각적 및 음향 장난, 지식, 부패한 퍼즐 방이 포함되어야 한다는 아이디어로 시작했고, 플레이어가 처음에 집에 거의 정보가 없이 접근하길 원했으며, 집과 거기에 살던 가족에 일어난 일을 배우는 것이었습니다.

이 모든 중요한 요소를 균형 잡히게 하기 위해, 우리는 2D 레이아웃으로 3D 환경을 상상하기 시작했습니다! 일반적인 스토리 비트 또는 주요 순간을 파악하기 시작하면서, 플레이어가 경험하기를 원했고, 우리는 우리가 삶보다 더 커 보이는 환경을 유지하면서 플레이어를 인도할 방법을 생각했습니다.

플레이 가능한 영역과 주변 환경이 보여야 할 모습의 초기 초안입니다.

전체 레이아웃의 초기 초안이 있으면 지형을 사용하여 주변의 언덕, 호수, 도로 및 집까지 드라이브웨이를 신속하게 배치했습니다.이 시점에서 데모의 시각적 품질에 신경 쓰지 않았지만, 플레이어가 집에 도착하고 하늘에서 이벤트와 집을 미리 보는 데 얼마나 걸리는지에 집중했습니다.

플레이어가 집에 접근하는 방법의 초기 개념.플레이어가 집에 더 가까이 보기를 원하도록 유도하려면 나무를 사용하여 하늘에서 집과 이벤트의 미묘한 모습을 가려 주었습니다.

간단한 부품크리에이터 스토어 자산을 모두 사용하여 환경을 구성하는 데 도움이 되는 콘텐츠를 신속하게 추가할 수 있었습니다. 포함:

  • 도로를 구부려서 플레이어가 길의 전체를 볼 수 없도록 하는 중
  • 플레이어가 액세스할 수 없음을 분명히 하려는 더 밀도 높은 영역이 있는 나무를 추가하고, 탐험하도록 권장하려는 더 얇은 영역을 추가합니다.
  • 플레이어가 접근할 때 집의 주차장을 오르기것입니다. 이렇게 하면 집에 대한 더 위협적인 존재감이 생깁니다.
  • 하늘에서 폭풍 뒤에 거대 이벤트를 배치하여 플레이어가 부품을 볼 수는 있지만, 집 자체에 접근할 때까지 전체를 볼 수 없도록 합니다.
  • 궁극적으로 결정한 집의 일반적인 모양을 배치하고 파악하는 중.

경험의 양은 첫 번째 아이디어가 최고라는 것을 보장하지 않습니다.이런 이유로 우리는 스튜디오에 자산을 신속하게 가져와 임시 자산으로 환경을 채우기 위해 간단한 부품과 크리에이터 스토어 자산을 사용했습니다.이렇게 하면 모든 것을 앞에서 만들 필요가 없으며, 첫 몇 일 내에 플레이테스트를 시작할 수 있었습니다.

간단한 부품과 크리에이터 상점스토어를 사용하는 가장 이른 버전입니다.

결국 임시 자산을 우리 보유것으로 교체하고 싶었지만, 처음에 우리가 신경 쓰는 유일한 것은 기본 사항을 설정하고 경험을 플레이하여 환경이 이동하기 쉽고 너무 크거나 너무 많은 "직사"가 아니라 플레이어가 탐험하도록 권장되는지 확인하는 것이었습니다.

주행로 접근의 초기 샷입니다.

각 방 계획

외부는 전체 스토리의 맛을 내기 위한 것이었으며, 플레이어를 몰입시키고 그들이 플레이하는 세계에 익숙해지도록 하기 위한 것이었습니다.주인공은 집 자체였고, 플레이어가 모든 방에서 비밀을 발견하고 놀라움을 찾기 위해 배관으로 대부분의 게임플레이 시간을 보내기를 원했습니다.이를 위해서는 집에 포함되어야 하는 방, 플레이어가 그것들에 부딪혀야 할 때, 그리고 그것들이 집 내에서 어디에 존재해야 하는지 알아야 했습니다.우리는 집의 2D 레이아웃을 그렸고, 팀은 일어날 수 있는 멋진 아이디어에 대해 바운스했습니다.이 시점에서 아이디어가 무시되지 않았습니다.

각 방에서 발생할 오싹한 이벤트에 대한 설명이 있는 이른 2D "설계도".

각 방의 2D 상자를 사용하여 서로 어떻게 배치하고 싶은지 알아냈습니다.각 방은 무언가를 할 수 있는 기회이고, 각 방의 주요 용도, 플레이어를 놀라게 할 수 있는 괴상한 농담, 그리고 플레이어가 직면할 수 있는 잠재적 퍼즐을 포함하여 많은 아이디어를 던졌습니다.

각 방은 함께 작동해야 했고, 우리는 스토리를 천천히 그리고 점진적으로 전달하고 싶었습니다.누가 먼저 갔는지 제어할 수 없다는 것을 알고 있었기 때문에, 더 어려운 퍼즐 중 일부는 앞문에서 멀리 떨어져 있고 더 어려울 수 있도록 계획했습니다.즉, 게임플레이와 테마 모두를 위한 다락방과 지하실을 포함하여 집에 몇 층을 추가하는 것을 의미했습니다.악하고 무서운 지하실의 최종 퍼즐? 우리를 등록하세요!

3D 레이아웃 빌드

세계의 모든 초기 계획과 아이디어는 재미있는 경험을 만들지 못하므로 아이디어를 3D로 만들기 시작할 시간이었습니다! 외부 레이아웃이 차단되었고 집이 확장되거나 수축되도록 공간을 만들었습니다.가장 이른 반복은 2D 이미지를 플레이 가능한 공간으로 변환하기 시작하기 위해 간단한 상자와 모양을 만들 수 있는 다른 3D 응용 프로그램에서 수행되었습니다.Studio에서 초기 버전을 빌드하고 간단한 부품을 사용하는 것이 가장 좋아하는 방법인 것을 알게 될 수 있습니다.틀린 방법은 없으므로, 아이디어를 3D로 빠르게 가져와 플레이할 수만 있다면 됩니다!

레이아웃의 상위 뷰입니다. 개념에서 뒤집혀 있다는 것을 알 수 있습니다.
회색 메쉬는 3D에서 공간을 만들기 시작할 수 있는 간단한 메쉬입니다.

작업이 점점 더 복잡해지면서 아무것도 쉽게 되지 않으므로, 자주 실험하고 만들고 싶은 환경 구조를 파악하는 것이 중요했습니다.집의 가장 초기 반복은 위에 보는 이미지만큼 간단했고, 간단한 모양은 가능한 한 유연하게 변경하고 데모를 플레이하는 동안 방의 크기를 신속하게 변경할 수 있도록 허용했습니다.규모 역시 초기에 중요했으므로 항상 3D 응용 프로그램과 Studio 내에서 아바타를 함께 빌드하여 문이 얼마나 커야 하고 단계가 얼마나 높아야 하는지 알 수 있었습니다.

우리는 실제적이고 블록 캐릭터가 집의 외부에서 자연스럽게 느껴지기를 원했습니다.
>

집 안에 있을 때, 모든 것이 넓게 느껴지기를 원했지만 터무니없이 크지는 않았습니다!

최종 데모에 있는 것에 합의하기 위해 많은 작은 및 큰 반복을 거쳤습니다.위의 초기 초안을 훨씬 늦은 버전의 로비와 비교하면 우리가 집을 플레이한 후 내린 원래 결정 중 많은 것이 유지될 수 있었음을 알 수 있습니다!

집 레이아웃의 나중 반복. 대부분의 레이아웃은 초기 회색 상자와 동일하게 유지되었습니다!

가구 및 소품

이 크기의 집을 채우기 위해 많은 가구와 소품이 필요했기 때문에, 어떤 콘텐츠를 회색 상자에 채울지 결정하기 전에 우리가 사용할 수 있는 모든 것을 추적하는 문서를 만들었습니다. 그리고 우리가 만들고 있던 방의 유형과 우리가 해결하고 있던 퍼즐을 보완할 수 있는 모든 것을 추적하기 위해서였습니다.모든 생각을 한 곳으로 모으면 우리는 조직화하고, 우선 순위를 지정하고, 다른 방에서 콘텐츠를 재사용할 수 있는 곳을 볼 수 있었습니다.이것은 공정한 수준의 사전 계획이었지만, 충분한 콘텐츠를 만들지 않거나 불필요한 항목을 너무 많이 만드는 것을 방지했습니다.

이 목록은 콘텐츠를 회색으로 포장하고 집 전체에 채우는 동안 우선순위를 두어야 할 사항에 대한 좋은 이해를 제공했습니다.우선 순위가 높은 콘텐츠를 일찍 추가하여 자산이 반복적이거나 잘못된 비율을 가지고 있거나 특정 방에 있을 때 두 번째 변형이나 텍스처 교체가 필요할 때를 쉽게 확인할 수 있었습니다.처음에 차단한 일부 콘텐츠는 경험에 중요하지 않게 되었고 제거되었지만, 그들이 단지 빠른 차단이었기 때문에 과정에서 많은 작업을 잃지 않았습니다.저장된 모든 가구와 소도구는 차단 단계에서 패키지로 만들었고, 이렇게 하면 집 전체에 최종 버전으로 모든 것을 교체하는 것이 더 쉬워졌습니다.

이른 회색 상자 버전.
>

최종 콘텐츠 버전.
>

이 데모에 필요한 자산의 엄청난 수량 때문에, 가능한 한 많은 텍스처를 재사용하는 것이 메모리 예산을 유지하는 데 매우 중요했습니다.많은 가구가 나무, 금속, 돌, 유리, 패브릭을 위한 동일한 트림이나 타일 시트를 공유하며, 가능한 곳마다 투명한 텍스처를 사용했습니다.예를 들어, 투명한 텍스처를 사용하여 패브릭에 색상 변화를 줄 수 있었으므로 두 번째 알베도 텍스처를 만들 필요가 없었습니다.텍스처를 재사용하는 방법에 대한 자세한 정보는 계획, 재사용, 예산을 참조하십시오.

여러 방에서 다시 사용한 4개의 텍스처입니다.

광학 분석

우리는 우리 자신을 구축할 시간이 부족하기 때문에 훨씬 더 많은 콘텐츠가 필요하다는 것을 알고 있었고, 따라서 크리에이티브 커먼즈 (CC0)에서 유래한 광학 분석을 사용하여 1:1 텍스처 시트에서 고품질 콘텐츠를 생성하는 과정을 가속화하기로 결정했습니다. 광학 측정 은 정확한 비율로 고품질 모델을 생성하기 위해 모든 각도에서 수백 개의 개체 이미지를 캡처하는 프로세스이며, 크리에이티브 커먼즈 모델은 법적으로 사용하고/또는 공유할 수 있는 대부분 무료 모델입니다.이러한 모델은 핸드 모델링된 자산에서 광학 분석으로 만든 자산에 이르기까지 다양할 수 있으며, 이 과정에서 작업하면서 시간이 많이 걸리는 세부 고해상도 모델 생성 단계를 건너뛸 수 있었습니다.

가족을 위해 만든 배경 스토리는 그들을 "오컬트에서 활동하는 이상한 수집가''로 묘사합니다.그들은 전 세계에서 유물을 모았고, 우리는 그 이야기를 반영하기 위해 집을 물건으로 가득 채우고 싶었습니다.우리는 CC0 박물관 콘텐츠에서 스캔 데이터를 원본으로 가져와 앤티크, 스테이트, 그리고 택시더미와 같은 모델에 대해 UV 매핑, 재구성, 그리고 텍스처 작업을 시작하여 Studio에서 최적화할 수 있도록 했습니다.

원래 스캔 데이터가 흩어진 텍스처와 결합됩니다.

UV 매핑 은 3D 모델의 메쉬를 분해하고 2D 이미지를 그 위에 프로젝트하는 3D 모델링 프로세스입니다.“U” 및 “V”는 2D 텍스처의 축을 나타내며, “X”, “Y” 및 “Z”는 3D 모델의 축을 나타냅니다.UV는 스캔 시 자동화되는 경향이 있으며, 게임 개발을 위한 목적으로 잘못 수행되는 경향이 있습니다.예를 들어, 특정 광학 측정 모델의 UV는 개별 비행기의 무리처럼 보일 수 있지만, 제작자가 1만 개의 변형으로 제한되면 모바일 환경에서 가장 성능이 좋지 않습니다.때때로 스캔 데이터로 운이 좋을 때가 있지만, 대부분의 경우 경험의 목적으로 이 2차원 텍스처 좌표를 업데이트하거나 완전히 다시 작업해야 했습니다.

자동화된 UV로 원래 스캔 데이터입니다.

또한 모델의 대부분의 메쉬는 모델이 처음 스캔될 때 텍스처에 조명 정보가 굽혀진 디퓨즈 텍스처만 포함했을 뿐이었습니다.메쉬의 알베도 텍스처를 기반으로 사용하는 데 도움이 될 수는 있지만, 조명과 그림자를 그려야 하는 곳에서는 여전히 수동 청소가 필요했습니다.메쉬에 강한 방향 조명이 있으면 세계 조명이 일치하지 않는 곳에 이상하게 보일 수 있습니다.이러한 이유로 CC0 박물관 콘텐츠에서 사용한 모델의 대부분의 PBR 텍스처를 다시 만들어야 했습니다.

원래 스캔 데이터 텍스처에 광원의 조명이 구워져 있습니다.

물리적 기반 렌더링 (PBR) 은 실제 세계의 재료와 조명을 더 정확하게 시뮬레이션하고 표현하여 현실적인 그림자와 조명을 사용하는 개념입니다.PBR 텍스처를 만들 때 조명 정보가 거의 또는 전혀 없거나 알베도 텍스처에 통합되지 않도록 하는 것이 중요했습니다, 왜냐하면 Studio의 엔진이 이미지 기반 조명(IBL)과 더불어 텍스처의 정상, 거친 및 금속 표면 값을 사용하여 실제 세계 재료를 정확하게 표현하기 때문입니다.비교를 위해, 디퓨즈 텍스처는 이러한 개별 맵의 일부 또는 전부의 세부 정보를 하나의 텍스처에 베이킹하여 디퓨즈 텍스처가 IBL이나 다른 개별 PBR 텍스처의 도움 없이 그 세부 정보를 스스로 수행해야 할 경우 유용할 수 있습니다.흩어지는 텍스처를 유지할지 아니면 자신만의 PBR 텍스처를 만들지 결정할 때, 자신의 디자인이나 메모리 예산 제한을 고려하여 자신의 경험에 적합한 것을 고려하십시오.

사용한 스캔 데이터의 메쉬는 대개 꽤 좋았지만, 일부 메쉬는 정리해야 했습니다.예를 들어, 일부 메쉬에는 채워야 하는 문제가 있는 구멍, 부드러워야 하는 가장자리 또는 두꺼워야 하는 얇은 가장자리가 있었습니다.이 프로세스에서 우리는 Zbrush 를 사용하여 스캔 데이터를 편집했습니다.

왼쪽에서 오른쪽으로 노트: 너무 얇고 톱니가 있음 | 전체 모델에는 약간의 정제가 필요합니다 | 또한 너무 얇고 톱니가 있습니다.채우고 부드럽게 합니다.| 구멍 채우기.
스캔 데이터를 정리한 후 동일한 메쉬입니다.

이 프로세스는 완벽하지는 않았지만 고해상도 모델을 정리하면 모델의 메쉬를 자동으로 또는 수동으로 다시 정의하는 것이 훨씬 쉬워졌습니다. 다시 정렬화 는 3D 모델의 가장자리 분포와 구조를 수정하는 프로세스이며, 우리의 목적으로는 더 나은 텍스처 베이킹을 만들기 위해 다시 정렬화가 높은 해상도 모델의 낮은 해상도 버전을 생성할 때 가능합니다.해상도가 낮은 모델은 특히 모바일 장치에서 이행크게 향상되고, 여전히 메쉬와 텍스처에서 높은 해상도 세부 정보를 유지합니다.

수동으로 또는 자동으로 다시 구성하려면 선택한 3D 응용 프로그램을 사용할 수 있습니다.우리는 3DS Max를 사용하여 수동으로 다시 구성하고 Zbrush를 사용하여 Zremesher 또는 소멸 도구를 사용하여 자동으로 다시 구성하기로 선택했습니다.The Zremesher 도구는 형태를 유지하기 위해 더 높은 버트 수를 유지해야 하는 쿼드를 자동으로 재구성할 수 있도록 했으며, 소멸 도구는 더 낮은 버트 수를 사용하는 삼각형으로 자동으로 재구성하여 형태를 유지할 수 있었습니다.

Zbrush의 Zremesher 도구입니다.
Zbrush의 소멸 도구입니다.

모델/메쉬에 대해 자동으로 선택할 수 있는 경로에 상관없이, 자동 재토폴로지화가 높은 해상도의 메쉬, 그 구성 및 알고리즘에 크게 의존하기 때문에 일부 정리가 필요할 가능성이 높습니다.원래 모양을 유지하면서 더 낮은 벡스 수를 가지는 것이 더 중요했기 때문에 삼각형 메시로 소멸 경로를 선택하는 경향이 있었습니다.

겹치고 나쁜 토폴로지는 자동으로 재토폴로지화할 때 발생할 수 있는 표면 정상 오류를 일으킵니다.이것은 수정되어야 했으며, 그렇지 않으면 모델에 메쉬 및 조명 문제가 발생할 것입니다.
고해상도 표면 정상에 부착된 얼굴을 수동으로 그리는 과정입니다.

새로운 UV로 메시를 재구성하는 프로세스를 완료한 후에는 고해상도 메시 세부 정보와 텍스처를 굽고 전송해야 했습니다. Marmoset 메쉬 맵을 굽고 고해상도 모델에서 저해상도로 원래 텍스처를 전송하는 과정을 쉽게 만들었지만, 다른 3D 응용 프로그램에서 당신을 위해 더 잘 작동하는 다른 워크플로와 방법을 찾을 수 있습니다.도구와 상관없이 고해상도 모델에서 원래 텍스처가 모델에 할당되도록 베이킹할 때 확인합니다.

높은 해상도 모델에 원래 텍스처를 크로우 모델에 할당하여 베이킹합니다.
새로운 UV와 페인트로 채워진 조명이 있는 512 크기의 PBR 텍스처입니다.
전송된 텍스처로 수동으로 재구성.수동으로 이렇게 하면 기하 메트릭이 흐르는 방식과 버텍스를 소비한 위치를 제어할 수 있었습니다.많은 경우 고해상도 메쉬는 특히 많은 별도 개체로 구성되거나 문제가 있는 모양을 가지고 있을 때 더 나은 선택입니다.
3D 응용 프로그램에서 자동으로 재구성화하기.이렇게 하면 낮은 해상도의 메쉬를 수동으로 만드는 시간이 자동으로 절약되었지만, 손실은 실루엣을 유지하기 위해 더 많은 벡스 수를 가진 메쉬이고, UV를 생성할 때 작업하기 위해 더 도전적인 모델이었습니다

After we finalized our Albedo, Normal, Metalness, and Roughness PBR textures in Substance Painter , our new assets were ready to be imported into Studio! There were some quality differences between the scan data assets vs.재구성된 자산, 하지만 결국 자산이 1,000개 대신 1,000개일 때 가치 있는 타협이었습니다.또한 메모리 예산을 그대로 유지하고 경험을 원활하게 실행할 수 있도록 했습니다.

데이터 레이븐 스캔.

게임 내 자산을 수동으로 다시 구성했습니다.
>

데이터 촛대 스캔.

게임 내 자산을 자동으로 재구성합니다.
>

패키지 활용

패키지 는 단일 개체나 그룹의 버전을 저장하고 사용할 수 있는 시스템이며, 해당 버전을 업데이트할 때 모든 해당 개체나 그룹의 인스턴스를 한 번에 업데이트합니다.예를 들어, 트리 개체를 만들고 경험에 수백 개의 개체를 배치하면 수백 개의 트리가 한 번에 새 버전으로 업데이트되도록 패키지만 업데이트하면 됩니다.우리는 집의 대부분의 방에 두 가지 상태가 있을 것이고, 정상 상태와 오염된 상태가 될 것이며, 전체 반복 프로세스 동안 집과 그 내용의 두 가지 복사본을 유지해야 한다는 것을 일찍 알고 있었습니다.이러한 이유로 각 집 상태에서 공유해야 하는 개체를 결정하고 패키지로 변환했습니다.

전체 침실에 대한 패키지 예시. 정상 또는 부적절한 상태와 유일한 것은 이 패키지 외부에 살았습니다.

패키지는 벽 패널의 나무 장식에서 전체 방까지 모든 것을 수정할 수 있게 해주었고, 방의 두 상태가 모두 우리의 변경 사항으로 업데이트되었습니다.또한 SurfaceAppearance 개체를 패키지로 변환하여 경험 전체에서 한 번에 재료의 모양을 업데이트할 수 있었습니다.재사용 가능한 재료는 명확한 복잡성에도 불구하고 디바이스에서 가능한 한 효율적으로 데모를 수행하도록 하는 데 중요했습니다.

예를 들어 다음 이미지에서는 메탈 표면 모양 패키지를 포함하여 복잡한 자식 자산 그룹을 갖는 아밀라리 모델 패키지를 표시하며, 이는 데모 내에서 여러 곳에서 사용하는 것입니다.메탈 표면 모양 패키지를 업데이트할 때마다 우리는 또한 아밀라리 모델 패키지가 자식 표면 모양 패키지를 업데이트하도록 강제하는 대규모 업데이트를 수행할 수 있었다.

기어 자산
>

기어 모델 패키지
>

금속 표면 모양 패키지
>

개별 객체나 Models 또는 Folders 같은 그룹의 개체를 패키지로 변환하는 방법, 또는 편집 액세스에 대한 크리에이터를 선택하는 방법에 대한 자세한 정보는 패키지를 참조하십시오.Vistech 데모 그룹을 모든 패키지의 제작자로 지정하기로 결정했는데, 그룹의 모든 사람이 필요할 때마다 패키지에 액세스하고 편집할 수 있기 때문입니다.또한 그룹이 소유한 모든 경험 간에 이러한 패키지를 공유할 수 있게 했습니다!

위의 아밀리아나 전체 방과 같은 부모 패키지나 패키지의 모든 인스턴스에서 모델이나 폴더의 변경 사항을 자동으로 업데이트하도록 설정하여 확인필요 없이 패키지의 모든 인스턴스에서 변경 사항을 자동으로 공유할 수 있습니다.이 프로세스는 각 방의 정상 및 오류 상태에 대해 원활하게 변경을 만들 수 있음을 의미했습니다.예를 들어, 다음 두 이미지는 동일한 패키지를 통해 생성된 연구의 정상 및 손상된 상태를 보여줍니다.패키지 외부의 몇 가지 항목만 서로 다르며, 부패한 상태가 측면에서 발생하더라도 고려합니다!

패키지를 사용하면 하나의 콘텐츠만 처리하면서 방의 두 버전을 만들 수 있었습니다.

경험과 동일한 위치 파일에서 전체 작업을 수행하는 대신, 패키지 링크가 있는 모든 구성 요소로 자산 저장소 장소를 구축했습니다.이 저장소 플레이스패키지를 변경할 때마다 자동으로 업데이트되고 즉시 해당 패키지를 사용하는 모든 장소 에 업데이트됩니다.주요 경험의 분위기와 조명을 탐색하지 않고도 개체를 수정하고 기능을 추가하며 세부 사항에서 작업할 수 있었습니다. 우리가 하고 있는 일을 보기 어렵게 만들 수 있는 주요 경험의 분위기와 조명을 탐색할 필요가 없었습니다.

데모 내의 모든 구성 요소가 있는 자산 저장소입니다.

패키지는 많은 추가 작업을 수행할 필요 없이 3D에서 다양한 아이디어를 탐색할 수 있는 더 많은 자유를 제공했습니다.실험이 실패하거나 경험을 중단시키면 자산의 이전 버전으로 계획, 테스트 또는 심지어 되돌릴 수 있었습니다 실험이 실패하거나 경험을 중단시키면 자산의 이전 버전으로 계획, 테스트 또는 심지어 되돌릴 수 있었습니다패키지에서 버전을 되돌려 수백 시간 치의 작업이 복원된 경우가 여러 번 있었습니다.종료, 패키지 없이는 이 데모에서 폴란드어의 최종 수준에 도달할 수 없었습니다.