출처 : 【開発者ワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳 – Unity for Pro (unity3d.jp)

 

【開発者ワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳 – Unity

Unityは2020年夏に、Unity 2020 LTSのワークフローを加速させるための70以上の時間節約のヒント(Tips)を集めたeブックを公開しました。 https://create.unity3d.com/ebook-improve-workflow こちらのeブックは英

forpro.unity3d.jp

<이 페이지에서 배울 수 있는 내용>

Unity는 2020년 여름에, Unity 2020 LTS의 워크플로우를 가속화하기 위한 70개 이상의 시간 절약 힌트(Tips)를 모은 e북을 공개했습니다. https://create.unity3d.com/ebook-improve-workflow 이쪽의 e북은 영문판입니다만, Unity for Pro에서는 이것의 일본어 번역(한국어로 다시 번역)을 작성했습니다. 제3탄의 이 기사에서는, 개발자 워크 워크플로우에 관한 부분을 소개합니다. 본 기사의 Tips는 이미 Unity Blog에서도 일본어로 공개하고 있기 때문에 그쪽도 봐주세요. https://blog.unity.com/ja/technology/speed-up-your-programmer-workflows
 

プログラマーのワークフローを高速化しよう | Unity Blog

Unity Debugger を使うと、Unity のエンティティが再生モードになっている間に C# コードをデバッグすることができます。コードエディター内にブレークポイントをアタッチし、実行時にスクリプ

blog.unity.com

 

개발자 워크플로우

오랜 세월 유니티를 사용해 온 개발자라도, 이것은 몰랐다고 하는, 사소한 것이지만 강력하고 도움이 되는 단축키나 힌트가 있습니다. 스크립트 변수에 어태치된 작은 속성들이라던가, 편리한데도 자주 넘어가는 에디터 설정들이라던가 여러 가지가 있는데, 여기서 여러분들이 워크플로우를 고속화하기 위한 정보들을 많이 찾으실 수 있을 것입니다.

 

속성


유니티에는 클래스, 속성 혹은 함수 위에 올려놓고 특별한 동작을 나타낼 수 있는 다양한 속성이 준비되어 있습니다. C# 에서는 각 괄호 ([ ]) 안에 속성의 이름을 포함 합니다. 여기서는 스크립트에 추가할 수 있는 속성 중에 자주 사용되는 것을 소개하겠습니다.

 

속성 설명
SerializeField 이 속성은 Unity에 비공개 필드를 시리얼라이즈하여 인스펙터로 표시하도록 강제시킬 수 있습니다. 주의: 비공개 필드에 [Serialize Field]를 제공하면 0649의 경고를 받을 수 있습니다. 이를 회피하려면 정의 시 변수를 초기화하면 됩니다. 디폴트 키워드를 사용하면 편리합니다. [SerializeField] private GameObject myObject = default;
Range 이 속성을 사용하면 부동소수점수형 또는 정수형 변수 값을 특정 범위로 제한할 수 있습니다. 인스펙터에서는 필드가 슬라이더로 표시됩니다. [Range(1,6)] public int integerRange; [Range(0 2. f, 0 8. f)] public float floatRange;
HideInInspector 이 속성을 사용하면 변수들을 시리얼라이즈 하면서 인스펙터에서는 숨길 수 있습니다. [HideInInspector] public int p = 5;
RequireComponent 이 속성을 붙이면 필요한 컴포넌트를 의존으로 추가하여 설정 오류를 방지합니다. 주의: 이 속성은 게임 오브젝트에 컴포넌트를 추가하는 순간에만 체크합니다. // PlayerScript はゲームオブジェクトがRigidbody を持つよう要求します[RequireComponent(typeof(Rigidbody))] public class PlayerScript: Monobehaviour { private Rigidbody rBody;

void Start() { rBody = GetComponent<Rigidbody>(); } }
Tooltip 이 속성을 붙이면 사용자가 인스펙터에서 필드에 마우스 커서를 맞추었을 때 툴팁을 표시하게 됩니다. public class PlayerScript: Monobehaviour { [Tooltip(“Health の値は 0 から 100です”)] int health = 0; }
Space 이 속성을 붙이면 필드 사이에 작은 공간(추가 텍스트 제외)을 넣어 필드를 시각적으로 분할하여 표시하도록 할 수 있습니다. [Space(10)] // 10 ピクセルのスペースを追加 int p = 5;
Header 이 속성을 붙이면 굵은 글씨 텍스트와 공백이 추가되어 인스펙터 내부 변수들을 정리할 수 있습니다. 묶고자 하는 일련의 필드의 첫 번째 필드에만 이 속성을 추가합니다. public class PlayerScript: Monobehaviour { [Header(“Health Settings”)] public int health = 0; public int maxHealth = 100; [Header(“Shield Settings”)] public int shield = 0; public int maxShield = 0; }
Multiline 이 속성을 붙이면 문자열을 여러 줄로 나눠서 편집할 수 있습니다. 옵션으로 정수를 넘겨주면 줄 수를 지정할 수 있습니다. 힌트: 자기 자신이나 다른 사용자에 대한 메모를 스크립트에 붙여두기 위해 이 속성을 사용합니다. [Multiline] public string textToEdit;

[Multiline(20)] public string moreTextToEdit;
SelectionBase 이 속성은 그 자체는 빈 편이지만 자식 개체에 메쉬가 포함된 게임 객체를 선택할 때 유용합니다. 베이스가 되는 오브젝트의 임의의 컴포넌트에 이 속성을 추가합니다. 에디터에서 오브젝트를 선택 시 [Selection Base]속성을 가진 게임 오브젝트는 자식보다 우선하여 선택되게 됩니다. // これをベースとなるゲームオブジェクトに追加する [SelectionBase] public class PlayerScript: Monobehaviour { }

인스펙터의 필드에 영향을 주는 속성

여기에 제시한 것은 다수 속성의 단 한 가지 예에 불과합니다. 값을 잃지 않고 변수의 이름을 바꾸거나 빈 게임 오브젝트를 사용하지 않고 로직을 발동하고 싶다면 스크립팅 API 레퍼런스에서 속성의 완전한 목록을 보시기 바랍니다. 앞서 언급한 것을 포함해 다양한 장치를 만들 수 있습니다.

그리고 독자적인 Property Attribute를 만들고 스크립트 변수에 쓰는 커스텀 속성을 정의할 수도 있습니다.

 

커스텀 윈도우와 인스펙터


유니티의 가장 강력한 기능 중 하나는 확장 가능한 에디터입니다. UI Toolkit 패키지 또는 IMGUI 모드를 사용하여 커스텀 윈도나 인스펙터 등의 에디터 UI를 만듭니다.

UI Toolkit은 표준 Web 개발과 동일한 워크플로우를 가지고 있습니다. HTML 나 XML 로부터 힌트를 얻어 만들어진 마크 업 언어 「UXML」를 사용하고, 유저 인터페이스나 재이용 가능한 UI 템플릿을 정의합니다. 그런 다음 Unity Style Sheets(USS)를 적용하여 UI의 비주얼 스타일이나 동작을 조정합니다.

또한 앞서 말한 것처럼 즉시 모드인 IMGUI를 사용할 수도 있습니다. Editor 를 기저 클래스로 하는 파생 클래스를 만들고 CustomEditor 속성을 사용합니다.

어떤 방식으로든 커스텀 인스펙터를 만들 수 있습니다.

커스텀 에디터에서는, 인스펙터에서의 MyPlayer 스크립트의 표시방법이 변경되어 있습니다.

UI Toolkit 또는 IMGUI 의 어느쪽인가를 사용해 커스텀 에디터 스크립트를 실장하는 방법에 대해서는, 「유저 인터페이스(UI)」를 참조해 주세요. UI Toolkit의 간단한 소개는 동영상 'Getting started with Editor scripting' 튜토리얼에서 만나보실 수 있습니다.

 

 
 

 

 

블로그 이미지

RIsN

,

출처 : 【チームワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳 – Unity for Pro (unity3d.jp)

 

【チームワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳 – Unity

Unityは2020年夏に、Unity 2020 LTSのワークフローを加速させるための70以上の時間節約のヒント(Tips)を集めたeブックを公開しました。 https://create.unity3d.com/ebook-improve-workflow こちらのeブックは英

forpro.unity3d.jp

<이 페이지에서 배울 수 있는 내용>

Unity는 2020년 여름에, Unity 2020 LTS의 워크플로우를 가속화하기 위한 70개 이상의 시간 절약 힌트(Tips)를 모은 e북을 공개했습니다. https://create.unity3d.com/ebook-improve-workflow 이쪽의 e북은 영문판입니다만, Unity for Pro에서는 이것의 일본어 번역(한국어로 다시 번역)을 작성했습니다. 제2탄의 이 기사에서는, 팀 워크 워크플로우에 관한 부분을 소개합니다. 

 

팀 워크플로우


게임 만들기란 협력해서 작품을 만들어 내는 행위입니다. 유니티에는 소스 관리를 사용하고, 관계자 전원이 실시한 변경이나 갱신을 정리하고, 팀이 일체가 되어 보다 재빠르게 제작을 진행시키기 위한 기능이 갖춰져 있습니다.

유니티 팀스와 유니티 엑셀러레이터 서비스를 사용하면 한 곳에 모여 있든 클라우드 상에서 개발자와 아티스트를 뭉치게 도와줍니다.

Unity는 팀 협동에 조력함

 

 

소스 관리


Unity 는 PerforcePlastic SCM의 2가지 버전 관리 시스템과 통합되어 있습니다. Unity 프로젝트의 Perforce 또는 Plastic SCM 서버를 설정하려면 Project Settings > Editor 메뉴를 엽니다. Version Control 아래에 있는 서버의 설정(및 Perforce의 사용자 인증정보)을 설정합니다.

버전 관리를 사용하도록 프로젝트를 설정한다

Unity를 도입한 팀은 Plastic SCM Cloud Edition을 5GB의 스토리지 최대 3명의 사용자 범위 내에서 무료로 이용할 수 있습니다. Plastic SCM for Unity 를 사용하면 Unity 에서 작업하면서 자신의 변경과 동료 작업을 동기화시키거나 프로젝트의 이력을 참조할 수 있습니다. Plastic SCM 의 최근 업데이트는 이 기사를 참고하시기 바랍니다.

Git 등의 외부 시스템(및 대규모 애셋의 보다 효율이 좋은 버전 관리를 향한 Git LFS(Large File Support))를 이용하여, 그래픽이나 사운드 리소스등의 큰 애셋의 버전 관리를 효율적으로 실시할 수도 있습니다. GitHub 호스팅 서비스에서의 작업 편의성을 높이기 위해 GitHub for Unity 플러그인을 설치하십시오. 이 오픈 소스의 확장 기능을 사용하면, 프로젝트의 이력을 표시하거나 블랜치로 실험하거나, 변경점에서 커밋을 작성하거나, GitHub에 코드를 푸시하거나 하는 작업을, 모두 Unity 안에서 실시할 수 있습니다.

Unity를 위한 .gitignore 파일도 관리되고 있습니다. 이를 통해 Git 저장소에 넣어야 할 것과 넣지 않을 것을 정하고 그 규칙을 철저히 준수하도록 할 수 있습니다.

GitHub for Unity 확장

Unity Teams를 사용하면 프로젝트 전체를 클라우드에 저장할 수 있습니다.

워크플로우를 효율화하기 위한 선택지의 하나로 생각해 두어야 할 것입니다. 클라우드에 프로젝트 전체를 저장해야 프로젝트 백업을 할 수 있고 어디서든 접근할 수 있으므로 Unity 프로젝트 저장 및 공유, 함께 작업하는 모든 Unity 프로젝트를 동기화시키기가 이전보다 훨씬 쉬워집니다.

 

Unity Accelerator


유니티 Accelerator는 팀의 에셋 복사본을 캐시하여 대기 시간을 줄입니다. 이것은 즉, 누군가 한 명이 실제로 Import를 실행하기만 하면 그 결과가 자동으로 Unity Accelerator에 캐쉬가 된다는 것입니다. 팀원들이 다음에 같은 버전의 에셋을 Import하고자 할 때 유니티 에디터는 로컬 머신으로 Import 프로세스를 시작하기 전에 캐시를 체크하게 됩니다.

Unity 2020 LTS에서는 Accelerator의 로컬 관리자용 대시보드가 제공되고 있습니다. 이를 통해 툴을 설정하거나 디스크공간 사용현황, 얼마만큼의 시간저장을 했는지 등의 통계정보를 보거나 문제의 진단을 통해 로그를 저장할 수 있습니다.

Unity Accelerator

옵션으로 Accelerator를 Unity Teams Advanced와 조합하여 사용하고 Collaborate의 소스 애셋을 공유할 수 있습니다. 이로써 Collaborate 서비스에서 다운로드를 수행하기 위한 시간을 대폭 줄일 수 있습니다.

요건 및 설치 절차를 보시고 유니티 Accelerator에 대한 자세한 정보를 확인하시기 바랍니다.

 

Unity Build Server


Unity Build Server를 사용하여 빌드 프로세스의 부하를 네트워크상의 하드웨어로 분산함으로써 팀의 생산성을 높이는 것을 검토합니다. 이러한 조치를 취함으로써 창의적인 팀이 필요한 빈도로 프로젝트 빌드를 수행하고 보다 자율적으로 반복 수정을 할 수 있게 됩니다.

유니티 프로젝트의 크기와 복잡함이 거론되면 빌드 생성에 걸리는 시간이 점점 늘어납니다. 개발 워크스테이션을 프로젝트의 빌드에 사용하면 팀이 빌드 완료까지 기다리는 동안 생산성이 떨어져 버립니다.

Unity Build Server는 Unity를 Unity 프로젝트의 빌드 전용 배치 모드에서 실행합니다. 팀원은 자기 페이스대로 빌드를 요구할 수 있습니다. 이것으로 버그 수정이나 테스트를 위해서 신기능을 릴리스하기 위한 대기시간을 줄일 수 있습니다. 또 다른 기계로 빌드함으로써 각 개발자가 일을 할 수 없는 시간을 줄이고 팀 전원이 더 빠르게 반복 수정을 할 수 있게 됩니다.

Unity Pro와 Unity Enterprise 가입자는 Unity Build Server를 이용하실 수 있습니다. Unity Pro를 이용하시는 분은 애드온팩을 이용하실 수 있습니다. 또한 Unity Enterprise를 이용하시는 분은 이용 중인 Enterprise 라이선스에 따른 수의 Build Server 라이선스를 받으실 수 있습니다.

Unity Build Server의 셋업
 
 

 

 

블로그 이미지

RIsN

,

출처 : 【アーティストワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳 – Unity for Pro (unity3d.jp)

 

【アーティストワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳

Unityは2020年夏に、Unity 2020 LTSのワークフローを加速させるための70以上の時間節約のヒント(Tips)を集めたeブックを公開しました。 https://create.unity3d.com/ebook-improve-workflow こちらのeブックは英

forpro.unity3d.jp

<이 페이지에서 배울 수 있는 내용>

Unity는 2020년 여름에, Unity 2020 LTS의 워크플로우를 가속화하기 위한 70개 이상의 시간 절약 힌트(Tips)를 모은 e북을 공개했습니다. https://create.unity3d.com/ebook-improve-workflow 이쪽의 e북은 영문판입니다만, Unity for Pro에서는 이것의 일본어 번역(한국어로 다시 번역)을 작성했습니다. 제2탄의 이 기사에서는, 아티스트 워크플로우에 관한 부분을 소개합니다. 본 기사의 일부 Tips는 이미 Unity Blog에서도 일본어로 공개하고 있으므로, 그쪽도 봐 주세요. https://blog.unity.com/ja/technology/speed-up-your-artist-workflows
 

アーティストワークフローをスピードアップ | Unity Blog

グリッドを使って作業することで、プレハブを当て推量ではなく、より一貫性を持ってプレハブを組み立てることができます。レベルデザインの時に、ピースがグリッドの目盛りに合わせて

blog.unity.com

 

프로그레시브 라이트 맵

라이트 맵에서는 직접 라이팅과 간접 라이팅의 양쪽을 사전에 계산하여, 그 결과를 라이트 맵이라고 부르는 텍스쳐에 보존해, 후에 사용하는 것이 가능합니다. Unity에서는, 고품질 라이팅과 섀도우를 생성하기 위한 글로벌 일루미네이션(GI) 기술이 다수 사용되어 있습니다. 라이트 맵에서 보존된 지오메트리는 실행시에 퍼포먼스가 높기 때문에, 라이트 맵의 베이크에서는 지금까지 코스트가 걸려 있었습니다.

라이트맵을 적용한 최종 씬
라이트맵을 사용하고 있지 않은 동일 씬

프로그레시브 라이트 맵은, 계산 결과를 빠르게 출력해, 시간 경과와 함께 렌더링을 세련되게 만드는 고속 패스 트레이서입니다. 이처럼, 최종적으로 베이크 결과를 기다리지 않고, 프로세스를 중단하여 변경을 가하는 것으로, 더욱 신속하게 반복 수정을 가하는 것이 가능합니다. 여기서는, 라이트맵을 고속화하기 위한 힌트를 소개합니다.

  • Prioritize View를 활성화하면 프로그레시브 라이트매퍼가 씬뷰에 표시되어 있는 텍셀을 뷰 밖의 것을 변경하기 전에 처리하도록 합니다.
  • 불필요한 Samples(Direct Samples와 Indirect Samples)와 Bounces(통상은 2면 충분합니다. 필요한 경우에만 늘려주세요)를 줄입니다.
  • 라이트 맵의 해상도와 텍셀수를, 라이팅에 맞추어 최적화합니다.텍셀 수는 라이트 매퍼가 얼마나 작업을 해야 하는지를 나타냅니다. 라이트 맵은 2D 텍스처이므로 라이트 맵의 해상도를 2배로 하면 처리량이 4배가 됩니다.
  • 숨은 표면이나 작고 얇은 물체 등, 라이트 맵의 효과를 별로 기대할 수 없는 것에 대해서는 텍셀을 줄입니다. Mesh Renderer는 글로벌 일루미네이션에 공헌합니다.
  • 맵에서의 상대적인 UV 크기를 줄이는 Scale in Lightmap 옵션이 있습니다.
  • Baked IndirectSubtractiveShadow Mask에서 적절한 Lighting Mode를 선택합니다. 아트디렉션에 필요하지 않다면 쉐도우 베이크를 진행할 필요가 없습니다.
  • 현재 프로그레시브 CPU 라이트매퍼는 실행하는 머신의 CPU와 RAM을 사용합니다. 새로운 프로그레시브 GPU 라이트매퍼(미리보기판)는 GPU와 VRAM을 사용하기 때문에 베이크가 대폭 고속화될 수 있습니다. 사용하는 컴퓨터가 하드웨어 및 소프트웨어의 요건을 충족하면 글쓰기의 워크플로우를 극적으로 가속시킬 수 있습니다(경우에 따라서는 10배가 됩니다).

베이크된 라이트맵의 프리뷰

 

라이트 프로브


글로벌 일루미네이션은 아름다운 간접조명을 만들어내는데, 이를 계산해서 디스크에 저장하는 데 비용이 많이 듭니다. 라이트맵을 필요로 하지 않는 세트의 장식이나 기타 정적 메쉬가 있는 경우는 라이트맵의 베이크에서 그것들을 삭제하고 대신 라이트프로브를 사용하는 것을 검토하십시오.

이 예에서 라이트프로브는 작은 오브젝트에 대해 직접 빛과 반사광을 모두 근사할 수 있어 보다 고품질의 라이트매핑을 보다 눈에 띄는 위치에 사용할 수 있게 됩니다. Viking Village 프로젝트에 적용된 라이트 맵의 설정은 아래와 같습니다.

『Viking Village』 프로젝트에 적용된 라이트맵
라이트 맵의 효과가 보기 힘든 작은 디테일에 관해서는 라이트 프로브를 사용함

이전에는 역동적인 객체를 위한 것이었지만, 라이트 프로브는 스태틱 메시에도 적용할 수 있습니다. MeshRenderer 컴포넌트에서 Receive Global Illumination 드롭다운을 찾아서 Lightmaps에서 Light Probes로 바꿉니다.

라이트프로브의 조명등은 정확한 UV가 필요 없기 때문에 메쉬를 언랩하는 여분의 단계를 생략할 수 있습니다. 프로브에 의한 글쓰기에서 사용되는 구면조화기저함수는 라이트 맵에 비해 계산속도가 빠른 것이 특징입니다. 라이트 프로브와 라이트 프로브의 그룹을 씬내에 공간적으로 배치합니다. 프로브 라이트는 일반적으로 라이트 맵보다 고속으로 베이크를 할 수 있습니다.

Light Probes를 선택함
스테이지 전체에 배치된 라이트프로브를 하나의 라이트프로브 그룹에 정리한다.

라이트프로브를 사용해서 씬 오브젝트를 선택적으로 조명하는 방법에 대해서는

라이트프로브를 사용한 정적 라이팅」을 참조해 주세요.

Unity의 라이팅 워크플로우에 관해서는 「Unity에서 현실적인 비쥬얼을 작성함」을 봐 주세요.

 

 

블로그 이미지

RIsN

,

출처 : 【アーティストワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳 – Unity for Pro (unity3d.jp)

 

【アーティストワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳

Unityは2020年夏に、Unity 2020 LTSのワークフローを加速させるための70以上の時間節約のヒント(Tips)を集めたeブックを公開しました。 https://create.unity3d.com/ebook-improve-workflow こちらのeブックは英

forpro.unity3d.jp

<이 페이지에서 배울 수 있는 내용>

Unity는 2020년 여름에, Unity 2020 LTS의 워크플로우를 가속화하기 위한 70개 이상의 시간 절약 힌트(Tips)를 모은 e북을 공개했습니다. https://create.unity3d.com/ebook-improve-workflow 이쪽의 e북은 영문판입니다만, Unity for Pro에서는 이것의 일본어 번역(한국어로 다시 번역)을 작성했습니다. 제2탄의 이 기사에서는, 아티스트 워크플로우에 관한 부분을 소개합니다. 본 기사의 일부 Tips는 이미 Unity Blog에서도 일본어로 공개하고 있으므로, 그쪽도 봐 주세요. https://blog.unity.com/ja/technology/speed-up-your-artist-workflows
 

アーティストワークフローをスピードアップ | Unity Blog

グリッドを使って作業することで、プレハブを当て推量ではなく、より一貫性を持ってプレハブを組み立てることができます。レベルデザインの時に、ピースがグリッドの目盛りに合わせて

blog.unity.com

 

스냅


그리드를 사용해 작업하는 것으로, 프리팹을 추측해서 맞추는 게 아닌 보다 일관성을 갖고 프리팹을 만들 수 있습니다. 레벨 디자인을 할 때, 조각을 그리드의 눈금에 맞추어 연결하도록 하면, 정렬이나 재구축이 용이합니다.

모듈식 에셋에서 씬을 구축하려면 그리드 면을 사용하여 게임 오브젝트의 위치를 조정하세요. 인스펙터에 반올림한 수치를 수동으로 입력하는 것보다도 그리드 스냅 툴에서 보다 빠르고 정확하게 트랜스폼을 설정하는 것이 좋습니다.

그리드와 스냅의 설정

유니티에는 3가지 종류의 스냅이 준비되어 있어 씬을 빠르게 만들 수 있습니다.

  • 월드 공간의 그리드 스냅 : 이동 툴의 핸들 방향이 Global로 설정되어 있는지 확인하십시오. Ctrl(Windows)키 또는 Cmd(macOS)키를 누른 상태로 두면 Edit > Grid and Snap Settings 에서 설정한 월드공간의 그리드 증가분만 움직여서 오브젝트를 스냅할 수 있습니다.
  • 표면 스냅 : Shift 키와 Ctrl(Windows) 키 또는 Cmd(macOS) 키를 누른 채로 하면 오브젝트를 임의의 컬라이더와 만나는 장소에 스냅 할 수 있습니다.
  • 정점 스냅 : 이동 툴을 활성화하고 V 키를 누른 상태로 둡니다. 이는 선택 중인 게임 오브젝트를 다른 메쉬의 꼭지점 위치로 이동시키는 것입니다. 이동하기 전에 활성화 게임 객체의 한 꼭지점 위에 마우스를 올려놓으면 그 꼭대기가 피벗 기능을 합니다. Shift+V키로 정점 스냅 모드의 온·오프를 바꿉니다.

꼭지점 스냅과 표면 스냅을 조합하면 빠르게 오브젝트를 배치할 수 있습니다.

  • 꼭지점 스냅을 사용해 V키 또는 Shift + V키를 조합하고 게임 오브젝트를 이동합니다. 피벗이 되는 꼭지점 위에 커서를 놓습니다. 일반적으로, 다른 정점으로 스냅 합니다.
  • Shift 키와 Ctrl(Windows) 키 또는 Cmd(mac OS) 키의 편성을 누른 채로, 대상이 되는 메쉬의 표면에 따라서 드래그 합니다.
  • 객체가 원하는 위치에 오면 마우스 버튼과 V 키를 놓습니다.

Grid and Snap창은 Edit > Grid and Snap Settings 메뉴 또는 Grid Visibility 드롭다운 메뉴 중에서 열 수 있습니다.

그리드와 스냅의 설정

아래의 그리드 스냅을 위한 단축키는 기본적으로 작성됩니다.

액션 기본 단축키
그리드 사이즈를 크게 한다 Ctrl + ] (Windows) 또는 Cmd + ] (macOS)
그리드 사이즈를 작세 한다 Ctrl + [ (Windows) 또는 Cmd + [ (macOS)
그리드를 조금 뒤로 움직인다 Shift + [
그리드를 조금 앞으로 움직인다 Shift + ]
선택한 것을 그리드와 맞춘다 Ctrl + \ (Windows) 또는 Cmd + \ (macOS)

조금 더 세밀하게 제어할 필요가 있을 때는 ProGrids 패키지를 사용하면, 스냅 평면이나 그리드 평면을 더욱 세밀하게 제어 가능합니다.

ProGrids

 

애니메이션 워크플로우


애니메이션 창(Window > Animation > Animation)을 사용하면 코드를 한 줄도 쓰지 않고 Unity의 모든 속성을 애니메이션화할 수 있습니다. 움직임의 변경 뿐만이 아니라, 커스텀 스크립트에서 정의한 파라미터를 변경할 수도 있습니다.

이 창에서 애니메이션 클립을 만들 수도 있고 좋아하는 서드파티 DCC 패키지(Autodesk® Maya® 나 Blender 등)로 작업할 수도 있습니다. 하나의 클립을 하나의 움직임 단위로 봅니다.

애니메이션 윈도우는, 커브나 도프 시트 같은 애니메이션 데이터를 표현하는 게 가능하다

윈도우내의 AnimationClip 애셋을 Dopesheet 또는 Curve 중 하나의 모드로 편집합니다. K 키 또는 C 키 단축키를 각각 사용하여 이 두 가지를 바꿉니다. 표준 단축키를 사용하고, 모든 키 프레임을 프레임화(A 키), 또는 선택한 키 프레임을 프레임화(F 키)할 수 있습니다.

AnimatorController가 비쥬얼 그래프로 애니메이션 클립들을 잇는다

게임 오브젝트들이 여러 개의 애니메이션 클립을 갖게 하면 Animator Controller는 스테이트 머신의 역할을 하고 애니메이션 클립 사이에 흐름도 같은 그래프를 만들 수 있습니다.

이를 통해 예술가는 프로그래머의 손을 빌리지 않고도 고도의 애니메이션을 제작할 수 있습니다. 2D 또는 3D의 리그를 사용하고 있는 경우, 그 바디 부품을 각각 다른 로직으로 애니메이션 시킬 수 있습니다. 레이어 기능이나 마스크 기능을 활용하면, 보다 제어하기 쉬워집니다. 비주얼 프로그래밍 툴로 모션을 시작하여 클립간의 트랜지션이나 인터랙션을 미세 조정합니다.

Animation Rigging 패키지를 사용하면 더욱 확장할 수 있습니다. 본 패키지는 프로시저 모션 작성에 사용할 수 있는 리그 및 인버스 키네매틱 제약의 라이브러리를 제공합니다. 애니메이션화된 스켈레톤은 실행 시 리깅을 통해 환경과 상호 작용할 수 있으며 또한 물리 기반 제약으로 인해 역동적인 세컨더리 모션을 추가할 수 있습니다.

제약에 따라, 실행시의 애니메이션이 수정된다

 

최적화 팁

AnimatorController 는 편리하지만, 몇가지 주의점이 있습니다.

  • 애니메이터를 특히 UI 요소와 조합하여 너무 많이 사용하지 않도록 해야 합니다. 애니메이터는 애니메이션이 재생되지 않더라도 프레임별로 UI Canvas를 재구축합니다. UI 및 심플한 애니메이션을 위해서는 가능한 기존 Animation 컴포넌트를 사용해 주십시오. 또한 트윈 함수를 작성하거나 서드파티제 라이브러리(예: DO Tween)를 사용하는 것도 검토하십시오.
  • 기본적으로 유니티는 애니메이션화된 모델을 Generic 리그로 Import하지만 개발자가 캐릭터를 애니메이션화할 때는 Humanoid 리그로 전환하는 경우가 많습니다. 휴머노이드 리그는 사용하지 않을 때에도 프레임마다 인버스 키네머틱스와 애니메이션의 리타깃팅 계산을 실시합니다. 이들 특정 기능을 필요로 하지 않으면 Generic 리그를 사용해 CPU 시간을 절약하도록 합니다.

이러한 컴퍼넌트의 사용법에 대해서는, 애니메이션 클립, 애니메이터 컨트롤러의 메뉴얼 페이지를 참조해 주세요.애니메이션 컴퍼넌트의 최적화에 대해서는, Unity 의 베스트 연습을 읽어 주세요. 이쪽의 연습은 수시로 업데이트 되고 있습니다.

 

커스텀 기즈모와 아이콘


기즈모는 게임 오브젝트와 관련된 작은 오버레이 그래픽입니다. 뷰포트를 내비게이트하거나 특정 개체를 찾는데 사용합니다.

Select Icon 메뉴를 사용하여 게임 오브젝트의 아이콘을 변경합니다. Other 를 선택하면, 독자적인 아이콘을 정의할 수 있습니다.

인스펙터의 드롭 다운을 사용해, 기즈모를 변경합니다. Other... 옵션을 사용해, 커스텀 기즈모를 선택합니다

또, 스크립트가 달린 가즈모를 만들어, 상호 작용하게 할 수도 있습니다. 예를 들어, 기즈모는 커스텀 컴포넌트가 영향을 주는 부피라던가 면적을 정의할 때 도움이 됩니다.

이 예에서는, 스크립트가 선택 내용에 따라 기즈모를 변화시킵니다.

 

 

씬 컨트롤 바의 Gizmos 대화상자를 사용하여 특정 씬 컨트롤바의 온/오프를 바꾸거나 모든 씬 컨트롤바의 온/오프를 글로벌하게 전환할 수 있습니다.

사용 예시는 "Creating Custom Gizmos for Development" 튜토리얼을 참조하십시오. 또 GizmosHandles의 API도 확인해주세요.

 

 

블로그 이미지

RIsN

,

출처 : 【アーティストワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳 – Unity for Pro (unity3d.jp)

 

【アーティストワークフロー編】Unity 2020 LTS で生産性を上げるための 70 のヒント +α 日本語訳

Unityは2020年夏に、Unity 2020 LTSのワークフローを加速させるための70以上の時間節約のヒント(Tips)を集めたeブックを公開しました。 https://create.unity3d.com/ebook-improve-workflow こちらのeブックは英

forpro.unity3d.jp

<이 페이지에서 배울 수 있는 내용>

Unity는 2020년 여름에, Unity 2020 LTS의 워크플로우를 가속화하기 위한 70개 이상의 시간 절약 힌트(Tips)를 모은 e북을 공개했습니다. https://create.unity3d.com/ebook-improve-workflow 이쪽의 e북은 영문판입니다만, Unity for Pro에서는 이것의 일본어 번역(한국어로 다시 번역)을 작성했습니다. 제2탄의 이 기사에서는, 아티스트 워크플로우에 관한 부분을 소개합니다. 본 기사의 일부 Tips는 이미 Unity Blog에서도 일본어로 공개하고 있으므로, 그쪽도 봐 주세요. https://blog.unity.com/ja/technology/speed-up-your-artist-workflows
 

アーティストワークフローをスピードアップ | Unity Blog

グリッドを使って作業することで、プレハブを当て推量ではなく、より一貫性を持ってプレハブを組み立てることができます。レベルデザインの時に、ピースがグリッドの目盛りに合わせて

blog.unity.com

 

2D 워크플로우에 관한 10가지 팁


유니티는 기존 네이티브 2D 툴을 진화시켜 더욱 빠르게 개발할 수 있도록 변경했습니다. 여기서 소개하는 탑울 활용해서 개발 시간을 절약해보세요.

1. 2D Pixel Perfect 패키지에는 해상도를 바꾸더라도 픽셀 아트를 뚜렷하게 선명한 형태로 표시할 수 있는 Pixel Perfect Camera가 포함되어 있습니다. 이것을 사용하면 아트 에셋의 크기를 수동으로 바꿀 필요가 없게 됩니다.

South PAW Games가 처음 제작한 픽셀 아트 스타일의 게임 Skul : The Hero Slayer에서 유니티의 2D 툴을 2D Pixel Perfect 패키지와 함께 사용하여, 모험의 여행을 생생하게 그려낸 방법을 해설한 블로그 기사도 읽어보세요.

Pixel Perfect Camera
2D Pixel Perfect Camera

2. Photoshop 파일로 된 에셋을 사용하려면 PSD Importer 패키지를 사용하세요. 스프라이트를 분류 해 export 하는 수고를 줄이고, PSB 파일을 임포트 할 수 있습니다(PSB 파일은 보다 일반적인 PSD 파일보다 큰 이미지를 서포트하는 것으로, 기능적으로는 동등합니다). 이제 여러 개의 스프라이트를 다양한 레이어에서 Import할 수 있고, 스프라이트 시트나 2D 캐릭터 리그를 생성할 수 있게 됩니다. PSD Importer에 의한 2D 워크플로우 고속화에 관한 이 가이드도 참고해 주십시오.

2D PSD Importer はパッケージマネージャーから利用可能。

3. 대규모 그리드 기반 월드를 만들 때는 타일 맵을 사용하세요. 헥스 형식이나 등각법의 타일 맵에도 대응하고 있으며, 사이즈나 최적화에 대해서도 최적화되어 있습니다. 타일맵을 사용하여 2D게임을 최적화하는 팁을 이 가이드에서 더 소개하고 있습니다.

타일 맵을 사용하면, 등각법 같은 그리드로 표현된 환경을 그리는 것이 가능합니다
배경을 만드는 『Dragon Crashers』의 타일 맵

4 . 리깅, 테세레이션, 본 생성과 함께 원활한 2D 스켈레톤 애니메이션을 만들어 보세요. 2D Inverse Kinematics(IK)는 2D 본이 원하는 위치에 어떻게 도달하는지를 계산해주므로 애니메이션을 단순화할 수 있습니다.

『Dragon Crashers』의 드래곤 캐릭터를 애니메이션화

5. 2D Light를 사용하여 비주얼을 강화하세요. 라이트 기능은 라이트의 색상, 강도, 감쇠, 혼합 효과 등 쉽게 조정할 수 있는 파라미터를 갖추고 있습니다. Odd Bug Studio의 Martin Reinmann씨가 쓴 이 기사를 보시면 2D 글쓰기에 대한 힌트를 더 알 수 있습니다.

『Dragon Crashers』의 라이팅 설정

6. 2D Sprite Shape를 사용하여 고급스럽고 여러 형태의 2D 환경을, 시각적이고 직관적인 워크플로우를 통해 만들 수 있습니다. 이 기능은 스프라이트를 쉐이프의 아웃라인을 따라 타이링하여 아웃라인의 방향에 따라 자동으로 변형과 반전을 이루어 줍니다.

최신 2D 샘플 프로젝트에서 2D Sprite Shape이 사용된 일례

7. 스프라이트를 원하는 방향에 따라 정렬하세요. 이 기능은 같은 레이어에 있으며, 정렬순도 같은 스프라이트가 다수 있을 때(예를 들면, 각 카드가 조금씩 겹치는 카드 게임을 만들 때 등)에 편리합니다.

빌트 인 렌더 파이프라인에서는 Edit > Project Settings > Graphics를 열면 이 기능을 사용할 수 있습니다. Transparency Sort Mode 의 Custom Axis 를 선택합니다.예를 들어 (0, 1, 0)을 Transparency Sort Mode로 설정하면 Y축을 따라 위에서 아래로 정렬합니다.

유니버설 렌더 파이프라인에서는, Camera.transparencySort ModeTransparencySortMode.Custom Axis 로 설정해, Camera.transparencySortAxis를 사용해 정렬의 축을 설정합니다.

Transparency Sort Mode로 설정된 정렬 축

8. 맞춤 셰이더가 필요한 경우, 셰이더 그래프에 포함된 2D용으로 설계된 2개의 마스터 노드를 사용합니다. 즉, Sprite LitSprite Unlit입니다. 2D 셰이더를 만들어 2D 프로젝트의 비주얼을 강화하세요.

『Dragon Crashers』의 셰이더 그래프 샘플

9 . 오버드로우를 줄여 성능을 개선하세요. Import 설정에서 각 스프라이트의 Mesh Type을 Tight로 바꿉니다. 중복되는 그래픽스는 가능한 한 하나의 스프라이트로 정리하고, 게임에서 사용하지 않는 배경 레이어에 들어갈 가능성이 있는 스프라이트는 최대한 비활성화합니다. 이렇게 함으로써, 오버드로우 되는 영역이 줄어 들어, 이웃하는 스프라이트끼리 중복될 가능성을 줄일 수 있습니다.

스프라이트 간 오버 드로우를 줄임

10. 2D 스프라이트 에디터를 사용하여, 각 스프라이트 주위에 커스텀 아웃라인을 정의해, 미사용 영역을 최소화하는 일도 검토합니다.

스프라이트 에디터로 커스텀 아웃라인을 설정하는 중

 

프리팹 워크플로우


프리팹은 설정이 완료된 게임 객체를 프로젝트 내에서 저장하여 재이용할 수 있도록 한 것입니다. 프리팹을 현재의 워크플로우에 도입하여 씬을 유연하고 효율적으로 조립할 수 있습니다.

『Dragon Crashers』에서는 각 유닛은 베이스가 되는 유닛을 오버라이드한 형태로 작성되어 있다

 

Overrides 드롭다운에서는 지금 보고 있는 프리팹과 오리지널과의 다른 점이 표시된다.

프리팹을 프로젝트의 에셋으로 생성하여 Prefab 모드로 독립적으로 편집할 수 있습니다. 조립식별로 독립적으로 작업함으로써 의도하지 않은 오버라이드를 적용하는 것을 막을 수 있습니다. 배경이 그레이아웃 된 상태이면 안심하고 변경할 수 있습니다.

컨텍스트 내, 독립 환경 어디서든 개별로 프리팹을 편집 가능
컨텍스트 내에서 편집하는 모드에서는, 씬 내의 다른 오브젝트와 프리팹을 비교하여 보는 것이 가능하다
프리팹 모드에서는 프리팹을 독립시켜 다루며, 의도하지 않은 오버라이드가 발생하지 않게 가능하다. 작은 프리팹이 포개어져 프리팹을 구성하고 있다는 것에 주목해봅시다.

포개어진 프리팹을 사용하면 프리팹을 프리팹의 부모로 만들 수 있습니다. 건물처럼 큰 가건물 안에 방이나 가구 등 작은 가건물을 조합해 만들 수 있게 되었습니다. 이것에 의해, 에셋의 개발을 복수의 아티스트나 개발자의 팀으로 나누어 각각이 컨텐츠의 다른 부분을 동시에 작업해, 효율을 올릴 수 있습니다.

프리팹 변수는 객체 지향 프로그래밍의 상속과 같이 다른 프리팹에서 프리팹을 파생시킬 수 있습니다. 특정 부분을 덮어 쓰고 변수를 변경해도 오리지널에는 영향을 주지 않습니다. 또한 언제든지 변경된 부분을 모두 삭제하고 기본으로 되돌릴 수 있습니다.

또한 베이스가 되는 프리팹 자체를 직접 변경하면 모든 변수를 한꺼번에 변경할 수 있습니다.

Unity의 새로운 2D 데모 「Dragon Crashers」의 프리팹 변수. 각각 다른 무기와 능력을 갖고 있다.

Unity에서 프리팹 사용에 관해서는 프리팹 워크플로우의 개선 페이지를 확인해주세요.

Apply All to Base 를 사용해서 베이스 오브젝트를 변경을 반영하거나, Revert All 을 사용해서 오버라이드를 원래대로 되돌리는 게 가능하다

 

TextMeshPro


TextMeshPro는 Unity의 UI Text와 기존의 TextMesh를 대체하는 것입니다. 커스텀 셰이더와 고도의 텍스트 렌더링 기술을 이용하여 유연한 텍스트 스타일링과 텍스처링을 실현하였습니다.

Text Mesh Pro를 사용하면 문자, 단어, 행, 단락의 스페이싱, 커닝, 텍스트 양끝 맞춤, 링크, 30여 가지 이상의 리치 텍스트 태그, 멀티 폰트와 스프라이트 지원, 커스텀 스타일 등의 기능을 이용할 수 있습니다.

『Dragon Crashers』에서의 TextMeshPro의 사용 예

 

 

 

블로그 이미지

RIsN

,