원문 주소 : https://unity3d.com/kr/learn/tutorials/topics/performance-optimization/profiler-window

도입

프로파일링 툴은 우리의 게임이 어떻게 동작하는지에 대한 자세한 정보를 줍니다. 만약 우리 게임에 낮은 프레임율(framerate)이나 높은 메모리 사용과 같은 문제가 있다면, 프로파일링 툴을 통해서 무엇이 이러한 문제를 일으키는지 확인할 수 있고, 이러한 문제를 해결하는데 도움이 될 수 있습니다.

프로파일러 창(Profiler window)은 유니티에 내장되어 있는 강력한 프로파일링 툴입니다. 이 글은 프로파일러 창이 무엇이고 어떻게 사용하는지에 대한 가이드가 되어줄 것 입니다. 일단 이 글을 읽고 프로파일러 창의 레이아웃과 기능에 익숙해지고나면, 다른 종류의 성능 문제를 분석하기 위해서 프로파일러 창을 어떻게 사용하는 지를 배우게 될 것 입니다.

프로파일러 창은 우리 게임의 다른 부분들이 어떻게 돌아가고 있는지에 대한 심도있는 정보를 보여줍니다.
그림 1 : 프로파일러 창
[그림 1 : 프로파일러 창]

프로파일러 창을 사용해서, 게임에서 메모리가 어떻게 사용되는지, 다른 작업들을 진행하는데에 얼마나 많은 CPU 시간이 소비되는지, 그리고 물리 계산이 얼마나 자주 이뤄지는지 등과 같이 게임 성능과 관련된 여러가지 면을 배울 수 있습니다. 가장 중요하게는, 이 데이터가 우리의 게임에서의 성능 문제에 대한 원인을 찾고, 그러한 문제를 해결하는 시도가 얼마나 영향을 미칠 수 있는지 측정하는데에 도움이 되도록 사용할 수 있다는 것입니다.

우리 게임에 성능 문제가 있다면, 그것을 고치려고 하기 이전에 성능 문제가 발생하는 원인을 먼저 아는 것이 필수적입니다. 다른 문제는 다른 해결책을 필요로 하기 때문이죠. 만약 우리 프로젝트가 느리게 동작하고 있고, 이 문제의 진짜 원인이 과도하게 복잡한 물리를 사용한 것이라면, 그래픽 렌더링을 개선하는 것은 전혀 도움이 되지 않습니다! 같은 이치로, 성능 문제를 해결하기 위한 시도가 얼마나 효과를 발휘했는지를 측정하는 것은 매우 중요합니다. 프로파일링 데이터를 효율적으로 사용한다는 것은 단순히 어떤 것을 변경하고나서 최고의 결과를 바라는 것이 아닌, 진짜 최적화를 할 수 있음을 의미합니다.

프로파일러 창의 레이아웃

게임의 데이터를 모으기 위해 프로파일러 창을 사용하기 전에, 먼저 프로파일러 창을 열고 레이아웃에 익숙해져봅시다.

  • 상단의 메뉴 바에서 Window > Profiler를 선택하여 프로파일러 창을 엽니다.
    그림 2 : 프로파일러 창 레이아웃
    [그림 2 : 프로파일러 창 레이아웃]

프로파일링 데이터가 기록되어야만 프로파일러 창에서 정보를 볼 수 있음을 꼭 기억하십시오. 우리가 처음 프로파일러 창을 열면, 실행 중인 게임으로부터 프로파일링 데이터를 기록하기 전까지는 특정 영역은 비어있습니다.

프로파일러(Profilers)

프로파일러 창의 왼쪽 열(column)에 프로파일러가 종류별로 있습니다. 각 프로파일러는 게임의 특정 부분에 대한 정보를 보여주고 있습니다. CPU 사용, GPU 사용, 렌더링, 메모리 사용, 오디오, 물리, 네트웍과 같은 프로파일러들로 구분되어 있죠.
그림 3 : 프로파일러 열
[그림 3 : 프로파일러 열]

프로파일링 데이터가 기록되면, 프로파일러 창의 위쪽 반에 각 프로파일러의 데이터를 시간 단위로 볼 수 있습니다. 성능은 시간에 따라 달라질 수 있고, 한 프레임 이상의 성능을 보는 데에 유용합니다. 어떤 문제는 지속적으로 발생할 수도 있고, 어떤 문제는 오직 한 프레임에만 발생할 수도 있고, 또 어떤 문제는 시간이 지날수록 점점 더 좋아지거나 점점 더 나빠질 수도 있습니다.
그림 4 : 프로파일러 데이터
[그림 4 : 프로파일러 데이터]

프로파일러 창의 아래쪽 반에는 현재 선택된 프로파일러의 현재 프레임에 대한 데이터에 대한 상세 정보를 볼 수 있습니다.
그림 5 : 프로파일러 상세정보
[그림 5 : 프로파일러 상세정보]

여기에 표시되는 데이터는 현재 어떤 프로파일러가 선택되었냐에 따라 다르게 보여집니다. 예를들어, 메모리 사용 프로파일러가 선택되었다면, 이 영역에는 어떤 에셋이 가장 많은 메모리를 사용하는지, 또 총 메모리 사용량은 얼마인지와 같은 정보들이 보여집니다. 만약 렌더링 프로파일러가 선택되었다면, 이 영역에는 렌더링되고 있는 오브젝트의 갯수나 수행되고 있는 렌더링 오퍼레이션의 갯수와 같은 통계가 보여질 것 입니다.

프로파일러는 많은 자세한 정보를 제공하지만, 우리는 프로파일링할 때마다 그러한 모든 정보가 다 필요한 것은 아닙니다; 사실, 대게는 한개나 두개 정도의 프로파일러만 사용하게 될 것 입니다. 예를들어, 느리게 돌아가는 게임이 있다면 CPU 사용 프로파일러를 보고 조사를 시작할 것 입니다.
그림 6 : CPU 사용 프로파일러
[그림 6 : CPU 사용 프로파일러]

CPU 사용 프로파일러는 우리 게임의 어떤 부분이 가장 많은 CPU 시간을 사용하는지에 대한 개요를 보여줍니다. 우리는 그 정보를 가지고 어떤 다른 프로파일러를 살펴봐야할지 결정할 수 있죠. 예를들어, 만약 물리 함수가 실행 시 긴 시간을 사용한다면, 물리 성능에 대한 상세 정보를 얻기 위해 물리 프로파일러를 사용하겠죠.

관심없는 정보를 보지 않기 위해, 특정 프로파일러를 숨길 수도 있습니다. 각 프로파일러의 오른쪽 상단에 있는 X아이콘을 클릭해서 프로파일러를 숨길 수 있습니다.
그림 7 : 프로파일러 숨기기
[그림 7 : 프로파일러 숨기기]

또한 프로파일러 창의 왼쪽 상단에 있는 Add Profiler를 클릭해서 프로파일러를 추가할 수도 있습니다.
그림 8 : 프로파일러 추가
[그림 8 : 프로파일러 추가]

프로파일러를 숨기거나 추가한다고 해서 이미 모은 데이터가 사라지는 것은 아닙니다. 단순히 표시하고 있는 데이터만 보였다가 숨겼다가 하는 것이지, 실제 데이터를 삭제하는 것은 아닙니다.

컨트롤(Controls)

화면 상단 바에는 프로파일러 창의 컨트롤들이 있습니다.
그림 9 : 상단 바 컨트롤
[그림 9 : 상단 바 컨트롤]

이 컨트롤들을 이용해서 프로파일링을 시작하거나 정지할 수도 있고, 프로파일링 특징들을 활성화 또는 비활성화할 수도 있으며, 프로파일러가 모은 데이터 사이를 이동하는데에도 사용할 수 있습니다.

이러한 컨트롤의 전형적인 사용은, 성능 문제를 포착하기 위해 적절한 시점에 프로파일링을 시작하고 원하는 데이터를 충분히 모았다면 프로파일링을 멈추는 것입니다. 그러고나서는 타임라인 컨트롤을 이용해서 성능 문제라고 보여지는 프레임으로 이동합니다. 그러면 화면 아래쪽 반에 해당 프레임의 데이터가 표시될 것입니다.

프로파일러 창을 이용해서 게임 프로파일링 데이터 기록하기

이제 우리는 프로파일러 창에 대해서 조금 더 이해하게 되었으니, 게임 데이터를 어떻게 기록하고, 게임이 어떻게 수행되는지를 이해하기 위해서 데이터를 어떻게 읽는지 배워봅시다.

프로파일러 창에서 데이터를 기록하는데에 약간의 비용이 든다는 것을 이해하는 것은 중요합니다. 이는 모든 프로파일링 툴에서 공통적인 부분입니다; 이러한 약간의 오버헤드없이 데이터를 기록하고 표시하는 것은 불가능한 일입니다. 이는 게임이 동작하는데에 있어서 중대한 변화를 초래하지는 않지만, 프로파일러 창이 기록을 하는동안 아주 약간의 성능에 영향을 미칠 수는 있습니다.

우리의 게임을 프로파일하는 방법은 2가지가 있습니다 : 첫번째는 유니티 에디터 상에서 프로파일링하는 방법이고, 두번째는 개발 빌드(development build)를 해서 유니티 에디터 밖에서 실행시키는 방법입니다. 개발 빌드는 일반적인 빌드와는 두가지 측면에서 다릅니다 : 첫번째는 개발 빌드는 게임이 실행될 때 프로파일러 창에 연결할 수 있다는 것이고, 두번째는 개발 빌드에 디버깅을 가능하게 하는 파일들이 포함된다는 것입니다.

거의 대부분의 경우에 유니티 에디터에서보다는 개발 빌드로 프로파일링하는 것이 좋습니다. 여기에는 두가지 이유가 있습니다. 첫번째 이유는, 유니티 에디터에서보다 독립된(standalone) 개발 빌드가 성능과 메모리 사용에 대한 데이터에서 더 정확하기 때문입니다. 프로파일러 창은 유니티 에디터에서 데이터를 기록하는데, 이는 결과를 왜곡시킬 수 있습니다. 두번째 이유는, 가능하다면 타겟 기기에서 게임을 테스트하는 것이 좋기 때문입니다; 예를들어, 만약 우리 게임이 안드로이드 게임이라면 당연히 안드로이드 기기에서 테스트를 해야하는 것입니다. 특정 성능 문제는 오직 특정 하드웨어나 특정 OS에서만 발생하기 때문에, 유니티 에디터에서만 테스트를 한다면 이러한 문제를 발견하지 못할 것입니다.

그렇긴 해도, 유니티 에디터에서 프로파일링하는 것이 유용할 때도 있습니다. 아주 정확한 결과보다는 대략적인 성능 문제를 빨리 파악하기 위해서 필요한 경우가 있죠. 예를들어, 어떤 게임 오브젝트가 성능 문제를 발생시키는지를 파악하기 위해서 런타임에 대량의 게임 오브젝트를 활성화하거나 비활성화할 수 있을 것입니다. 유니티 에디터에서 이런 부분을 테스트하는 것이 여러 개의 빌드를 만드는 것보다 훨씬 빠를 것입니다. 일단 대략적으로 어떤 부분에서 문제가 발생하는지 파악된다면, 저 정확한 문제 원인을 파악하고 해결하기 위해 개발 빌드를 프로파일링할 수 있을 것입니다.

유니티 에디터에서 프로파일링하기

유니티 에디터에서 우리 게임의 데이터를 프로파일링하기 위해서는, 다음 차례를 따라야합니다.

  • 프로파일링하고 싶은 프로젝트를 유니티에서 엽니다.
  • 상단 메뉴 바의 Window > Profiler 메뉴를 선택해서 프로파일러 창을 엽니다.
  • 프로파일러 창 상단의 툴 영역에서 Record를 선택합니다.
  • Play Mode로 들어갑니다.

이렇게하면, 게임에서 상호작용하는 동안 실시간으로 프로파일링 데이터를 모으고 표시해줄 것입니다.

게임을 개발 빌드로 프로파일링하기

타겟 디바이스에서 우리 게임의 프로파일링 데이터를 기록하기 위해서, 우리 게임의 개발 빌드를 만들고 프로파일러 창에 연결해야 합니다. 이는 타겟 플랫폼에 따라 어떻게 해야할지가 달라지게 됩니다.

Windows, OSX, Linux 그리고 WebGL

Windows, OSX, Linux 그리고 WebGL에서 개발 빌드를 실행하기 위해서는 다음과 같은 순서로 진행해야 합니다:

  • 프로파일링하고 싶은 프로젝트를 유니티에서 엽니다.
  • 상단 메뉴 바에서 Window > Profiler 를 선택해서 프로파일러 창을 엽니다.
  • 프로파일러 창의 툴 영역에서, Record를 선택합니다.
  • 상단 메뉴에서 빌드 설정(Build Settings) 창을 엽니다.(File > Build Settings).
  • Development Build를 체크하십시오.
  • Autoconnect Profiler를 체크하십시오.
  • Build and Run을 클릭하십시오.

그림 10 : 빌드 설정 창
[그림 10 : 빌드 설정 창]

게임이 타겟 디바이스에서 실행될 것입니다. 게임이 실행되면, 여러분이 게임과 상호작용하는 것이 유니티 에디터의 프로파일러 창에 표시될 것입니다.

iOS와 Android에 개발 빌드를 프로파일링하기

iOS와 Android에 개발 빌드를 프로파일러 창에 연결하는 것은 조금 더 복잡합니다. 왜냐하면 디바이스를 위한 빌드를 해야하고, 이 디바이스를 유니티 에디터에 연결해야하기 때문입니다.

iOS와 Android의 개발 빌드를 프로파일러 창에 연결하는 순차적인 방법은 유니티 매뉴얼의 문서를 참고하시기 바랍니다.

문제를 분석하기 위해서 프로파일러 창을 사용하기

이제 프로파일러 창이 어떻게 동작하는지에 대해 이해했으니, 이제 프로파일러 창을 이용해서 문제를 파악하는 방법과 어떻게 하면 이러한 문제를 해결하는데에 도움이 될 수 있는지를 알아야 합니다.

만약 우리 게임이 느리게 동작하거나, 프레임이 튀거나, 멈춤 현상이 발생한다면, 이 글이 프로파일러 창을 어떤게 사용하는지와 이러한 문제의 원인을 어떻게 찾는지에 대한 이야기를 해줄 것입니다.

더 읽어볼거리

Unity Learn: Introduction to the profiler

Unity Learn: Profiler overview for beginners

Unity Manual: Profiler

Unity Manual: The CPU Profiler

Unity Manual: The GPU Profiler

Unity Manual: The Rendering Profiler

Unity Manual: The Memory Profiler

Unity Manual: The Audio Profiler

Unity Manual: The Physics Profiler

Unity Script Reference: Profiler

원문 : https://blogs.unity3d.com/kr/2016/12/02/unity-expands-2d-offerings-with-anima2d/

유니티에서 우리는 개발자들을 도울 수 있는 방법과 가능한 최고의 툴을 제공할 수 있는 새로운 방법들을 항상 모색하고 있습니다. 그 목적을 당성하기 위해서, 유명한 뼈대 애니메이션 소프트웨어인 Anima2D가 2017년 1월에 무료로 유니티 개발자 커뮤니티에 올라오게 됩니다! 이 강력한 툴과 이 툴의 개발자 중 한명인 Sergi Valls를 우리 2D 팀에 맞이하게 된 것을 환영합니다.

2D 제작 경험의 개선

우리는 개발의 민주화에 대한 목표를 위해 공헌하고 있고, Anima2D는 우리의 툴셋과 2D 공간에서의 작업에 초점을 맞추고 있는 개발자들을 위한 워크플로우를 개선하는 데에 중요한 한 부분이 될 것 입니다. Sergi의 경험과 결합된 Anima2D의 2D 애니메이션과 2D 캐릭터 툴에 대한 독특한 접근 방식은 이러한 노력의 중추적인 부분이 될 것 입니다.

Anima2D

Anima2D 특징

  • 2D Bones
  • Sprite를 메쉬로 변환
  • SpriteMesh 에디터
  • 자동 weights
  • Inverse Kinematics
  • 자세를 저장 / 로드
  • 아틀라스 호환성
  • Animation을 Bones으로 굽기
  • Onion Skin
  • Avatar Masks 생성

유니티로 작업

이 에셋을 더 개선하기 위한 노력으로써, 12월에는 에셋 스토어에서 Anima2D를 일시적으로 내릴 것 입니다. 그리고 2017년 1월에 Unity 커뮤니티에 무료로 선보이게 되고, 이 때 문서에 수정이 있을 것이며 개발자들이 최고의 프로젝트를 만들 수 있도록 도와주기 위해 필수 지원을 할 예정입니다. 우리는 이것의 가치를 믿고, 여러분이 가능한 최대로 Anima2D를 활용할 수 있도록 도와드리고 싶기 때문에 이런 일을 하고 있습니다.

이 에셋에 대한 전체 문서를 보고 싶으시면, Anima2D User Guide 문서를 참고하세요.

Anima2D를 유니티 개발자 커뮤니티에 가져오는데에 있어서 Mandarina Games의 Joaquim Virgili와 Sergi Valls에게 감사를 표합니다.

안녕하세요. 오늘은 팁을 하나 소개해 드리려고 합니다.

예제를 따라하다보면 가끔씩 아두이노 보드에 업로드가 잘 안될 때가 있습니다.
스케치도 문제없이 잘 컴파일이 되는데, 이상하게 업로드를 하려고하면 아두이노 소프트웨어가 에러를 뿜어내는 경우 말이죠.
이러한 경우에 무엇을 체크해봐야 되는지 살펴보겠습니다.

1. 포트

그림 1 : 포트 설정
[그림 1 : 포트 설정]

아두이노 소프트웨어의 [Tools-Port] 메뉴에 들어가보면 그림 1과 같이 여러 개의 포트 목록을 볼 수 있습니다.
저 같은 경우에는 /dev/cu.Bluetooth-Incoming-Port/dev/cu.usbmodem1411 (Arduino/Genuino Uno) 이렇게 2개의 포트 목록을 볼 수 있습니다.
이 중 우리는 USB로 연결을 할 것이기 때문에 두번째 포트인 usbmodel 포트를 선택합니다.

만약 usb 포트가 보이지 않는다면 아두이노 보드와 USB 연결선이 제대로 접속되어 있는지 꼭 확인하시고, 메뉴를 껐다가 다시 Tools-Port 메뉴를 들어가 보면 확인하실 수 있습니다.


2. 언어 설정

그 다음으로 확인할 부분이 언어 설정입니다. 우리는 한국인이라서 아마 이 글을 읽는 대부분은 시스템 언어가 한글로 설정되어 있을 것 입니다.
그런데, 정확히 무슨 이유인지는 몰라도 아두이노 소프트웨어의 언어가 한글로 되어 있으면 업로드 에러가 굉장히 빈번히 발생하는 것 같습니다.

그래서 언어를 바꿔줘야하는데요, 그림 2와 같이 Arduino-Preferences 메뉴를 눌러서 Preferences 다이얼로그를 엽니다.

그림 2 : Preferences 메뉴
[그림 2 : Preferences 메뉴]

그러면 그림 3과 같은 다이얼로그를 확인할 수 있습니다.
여기에서 에디터 언어(Editor Language) 설정 부분을 보시면 기본적으로는 시스템 기본 언어(System Default)로 설정되어 있을텐데, 이 부분을 영어(English)로 바꿔 줍니다.

그림 3 : Preferences 다이얼로그
[그림 3 : Preferences 다이얼로그]

언어 설정의 경우 아두이노 소프트웨어를 껐다가 다시 켜야 적용이 된다는 점 참고하시기 바랍니다.

+ Recent posts