Search Unity

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

  • アーティスト向け
  • 開発者向け

<このページで学べる内容>

Unityは2020年夏に、Unity 2020 LTSのワークフローを加速させるための70以上の時間節約のヒント(Tips)を集めたeブックを公開しました。 https://create.unity3d.com/ebook-improve-workflow こちらのeブックは英語版ですが、Unity for Proではこれの日本語訳を作成しました。第1弾の本記事では、このeブックの序盤に記載されてある主にエディターワークフローに関する部分を紹介します。 本記事の一部TipsはすでにUnity Blogでも日本語で公開していますので、そちらもご覧ください。https://blog.unity.com/ja/technology/five-ways-to-speed-up-your-workflows-in-the-editor

はじめに

このガイドではプログラマーやアーティスト向けのツールセットを使いこなして時間の節約・生産性の向上を実現し、個人・チームの別を問わず、Unityクリエイターがより素早く仕事を済ませるための70を超えるヒントを紹介します。

このガイドで紹介するヒントではUnity 2020 LTSの新機能・既存の機能を活用するものです。まだ経験の浅いUnity開発者でも、経験を積んだUnity開発者でも、このガイドをご覧になればゲーム開発のすべての段階でワークフローの高速化を実現できることでしょう。 Unityに所属する多くのチームが、Unityを使うクリエイターの開発体験を向上させるための取り組みを行っています。中でも、Accelerate Solutions チームはこのガイドを編集するにあたって、貴重な知識を提供してくれました。Accelerate Solutions チームは多数の Unity の顧客にサポートを提供し、エンジンの性能をできるだけ引き出してもらう手助けをしています。このチームはプロジェクトのスピード、安定性、効率性に関する重要なポイントを特定し、最適化を行う道筋を示します。Unityのトップクラスのエンジニアにして、Quality of Lifeチームののリーダーを務めるAras Pranckevičiusの言うように、

「Unity は使っていて楽しいものであるべきです。何百万ものユーザーが一日に特定のタスクを何度も繰り返して、そのたびに秒単位の時間が余分にかかったり、余分なマウスクリックがされたりするなら、無駄になる時間はけっして小さなものではありませ ん。私たちはクリエイターの皆さんに無駄に費やす時間を減らし、 もっと生産性を上げてほしいと考えています。」

エディターワークフロー

Unity 2020 LTSには、よく使う機能を立ち上げるキーボードショートカットや、繰り返し行われるタスクを減らす便利なユーザーインターフェイスや、デバッグワークフローの改善など、エディターワークフローを高速化する改良がいくつも入っています。

ひとつひとつは小さなものですが、何日も何週間も作業するうちに、作業時間を時間単位で短縮することもできます。反復修正をより速く、開発をより効率的に行えることができるので、Unity での開発体験も向上します。ここで紹介するヒントやショートカットを試して、Unityでより素早く開発を進めていきましょう。

パッケージマネージャー

Unity 2020 LTSのパッケージマネージャーには、新しいユーザーインターフェイス(UI) のアイコン体系や、改善されたレイアウトや、インストール済みパッケージと利用可能なアップデートをより区別しやすくする情報提示方法など、デザイン上のアップデートが複数含まれています。

アップデートされたパッケージマネージャーのインターフェイス。

ドキュメントにはパッケージマネージャーウィンドウに含まれる機能の分かりやすいまとめが収録されています。このまとめは、経験を問わず、最新のアップデートについてさっと把握する必要があるUnity開発者にとって有用です。

ショートカットマネージャー

ショートカットマネージャーは、エディターのホットキーを管理できるインタラクティブなビジュアルインターフェースです。ここでは、さまざまなコンテキストにショートカットを割り当てたり、頻繁に使用するツールの既存のバインディングを視覚化したりすることができます。

Unity エディターのコマンドには、任意のキーやキーの組み合わせを割り当てることができます。例えば、R キーは、デフォルトでツールコンテキストの拡大縮小ツールに割り当てられています。

Binding Conflict カテゴリには、同時に実行できる 2 つのコマンドに割り当てられているショートカットがないかを確認できます。このような衝突を解決するには、インターフェイスを使用します。注:異なるコンテキストにあり、同時に実行されないコマンド同士の場合は、複数のコマンドに同じショートカットを割り当てることができます。

ショートカットマネージャー

ショートカット間の割り当て衝突を確認する

Unity のメインメニューからショートカットマネージャーにアクセスするには、以下のようにします。

  • Windows および Linux では、Edit > Shortcuts を選択します。
  • macOS では、Unity > Shortcuts を選択します。

UnityEditor.ShortcutManagement 名前空間で提供されている API を使用して、独自のスクリプトやパッケージでカスタムショートカットを定義します。

一般的なエディタのショートカット

よく使われるショートカット

よく使われるショートカットを以下に示します。

アクションWindowsMac
選択したものを中央にFF
項目の複製Ctrl + DCmd + D
ゲームオブジェクトの削除Shift + DelCmd + Delete
ビュー/移動/回転/矩形/トランスフォームQ/W/E/R/TQ/W/E/R/T
ピボットモードの切り替えZZ
ピボット回転の切り替えXX
頂点のスナップVV
スナップCtrl + LMBCtrl + LMB
最大化の切り替えShift + spacebarShift + spacebar
コンテキスト内でのプレハブ編集PP

Focused Inspector

Unity 2020 .1 で導入された Focused Inspector ウィンドウを使うと、特定のゲームオブジェクト、コンポーネント、またはアセットのプロパティを調べることができます。このウィンドウには、シーン中の他のものを選択しても、開いた時に設定した項目のプロパティが常に表示されます。

ゲームオブジェクトまたはコンポーネントを右クリックしてプロパティを選択します。この操作によって、フロート形式のインスペクターウィンドウが表示されます。このウィンドウは他のウィンドウと同様、位置を変えたり、ドッキングさせたり、サイズを変更したりできます。

2 つのゲームオブジェクトを比較するFocused Inspectorウィンドウ

複数のFocused Inspectorを同時に開くと、シーンの変更を行いながら、複数のゲームオブジェクトを参照することができます。

より小さな画面の領域内でゲームオブジェクトの特定のコンポーネントにフォーカスを当てることができる。

プリセット

この機能を使えば、インスペクター内のあらゆるもののデフォルトの状態をカスタマイズすることができます。プリセットを作ると、コンポーネントやアセットの設定をコピーしてアセットとして保存し、後で同じ設定を別の項目に適用することができます。

プリセットを使用して、新しいアセットを標準となる設定に従わせたり、適切なデ フォルト設定を適用したりすることができます。これにより、チーム全体で一貫した標準に従うことができるようになり、見落とされがちな設定を調整し忘れたことでプロジェクトのパフォーマンスに影響を与えることが無くなります。

コンポーネントの右上にあるプリセットアイコンをクリックします。「Save current to…」をクリックしてプリセットをアセットとして保存、また、そこにあるプリセットの 1 つをクリックすると、値のセットが読み込まれます。

この図で赤で囲った部分がプリセットのアイコン。

この例では、2D テクスチャの用途(アルベド、法線、ユーティリティ) に応じて、異なるイン ポート設定がプリセットに含まれている。

他にも便利なプリセットの使い方があります。

  • デフォルト設定を付けたゲームオブジェクトを作成:プリセットのアセットをヒエラルキーにドラッグアンドドロップすると、対応するコンポーネントにプリセットの値が設定された新しいゲームオブジェクトが作成されます。
  • 特定の型をプリセットに関連付ける:プリセットマネージャー(Project Settings > Preset Manager で開く)で、型ごとに 1 つまたは複数のプリセットを指定することができます。新しいコンポーネントを作成すると、指定されたプリセットの値がデフォルトになります。
  • ヒント:型ごとに複数のプリセットを作成し、フィルターを使って正しいプリセットを名前で関連付けることができます。

マネージャー設定の保存と読み込み:Manager ウィンドウでプリセットを使用することで、設定を再利用することができます。例えば、同じタグやレイヤー、物理演算の設定を再度適用する予定がある場合、プリセットを使用することで、次回のプロジェクトのセットアップ時間を短縮することができます。

シーンでの表示制御

シーンの規模が大きくなると、ゲームオブジェクトの選択や編集を簡単にするために、特定のオブジェクトを一時的に隠すことがあるでしょう。

この時、意図しない動作を引き起こす可能性のあるゲームオブジェクトを無効にする代わりに、SceneVisibility コントロールを切り替えます。これにより、実際のゲーム内での可視状態を変えずに、シーンビューだけでオブジェクトの表示・非表示を切り替えることができます。

ヒエラルキーウィンドウのツールバーを使って、ビューポート内のゲームオブジェクトのシーンでの表示制御を切り替えることができます。

SceneVisibility コントロールを使って、シーンビューのオブジェクトを隠す。

なお、ヒエラルキー内では、親オブジェクトと子オブジェクトのどちらが非表示になっているかによって、状態アイコンが変わることがあります。

アイコン状態
ゲームオブジェクトは表示されますが、その子オブジェクトは非表示になります
ゲームオブジェクトは非表示ですが、その子オブジェクトは表示されます
ゲームオブジェクトとその子オブジェクトが表示されます。ただし、ゲームオブジェクトの上にカーソルを乗せた時だけ表示されます。
ゲームオブジェクトもその子オブジェクトも非表示になります。

シーンビューコントロールバーでオン・オフすると、シーンでの表示制御がグローバルに切り替わる。

Isolation ビュー を使って、特定のオブジェクトとその子だけを表示できます。ヒエラルキーウィンドウでゲームオブジェクトを選択し、Shift + H を押すと、オンとオフを切り替えることができます。この設定は、終了するまで他のシーンの表示制御よりも優先されます。

Isolation ビューでは、邪魔なものを表示せずにゲームオブジェクトを編集することができる。

なお、Shift + スペースバーのショートカットを使えば、ビューポートを最大化してエディターの他の部分を隠すことができます。

シーンのゲームオブジェクト選択制御

シーンでの表示制御と同様に、ゲームオブジェクトの選択制御を変更することができます。ツールバーを使って、シーンビューで特定のゲームオブジェクトが選択されないようにすることができます。これは、大きなシーンで意図しないゲームオブジェクトを選択して編集してしまうことを避けるために有効です。

選択制御はゲームオブジェクトの階層構造全体にも、その中のオブジェクト 1 つだけに対しても設定することができるため、いくつかのゲームオブジェクトが選択可能でも、その子や親が選択可能でないということがあります。選択制御がどの状態であるかは以下のアイコンで識別することができます。

ヒエラルキーの選択制御

アイコン状態
ゲームオブジェクトを選択できますが、その子オブジェクトを選択することはできません。
ゲームオブジェクトを選択することはできませんが、その子オブジェクトを選択することはできます。
ゲームオブジェクトとその子オブジェクトを選択することができます(ゲームオブジェクトの上にカーソルを乗せた時だけ表示されます。)
ゲームオブジェクトもその子オブジェクトも選択できません。

検索

エディターには、シーンビュー、ヒエラルキーウィンドウ、プロジェクトウィンドウの検索機能が備わっています。

エディターの検索オプションは赤でハイライトされる。

名前での検索だけでなく、型での検索も可能です。ドロップダウンを使って、「Type」を選ぶか、短縮形の「t:」を使います。

アセットのラベルを使用している場合、短縮形の「l:」使って、ラベルでフィルターすることもできます。

この例では、Camera 型のすべてのオブジェクトをシーンで検索しています。

型でフィルター

インスペクターの Debug モード

各ゲームオブジェクトのインスペクターは、Normal と Debug モードを切り替えることができます。追加のアイテム(…)ボタンをクリックするとコンテキストメニューが開くので、切り替える先のモードを選択します。

Debug モードでは選択したコンポーネントのプロパティとその値だけが表示されます。非公開の変数も表示することができます。ただし、その値を変更することは出来ません。

インスペクターの Debug モード

QuickSearch

ここで説明したウィンドウ以外にも検索を拡張したい場合は、QuickSearch パッケージを使って Unity 内のあらゆるものを検索することができます。

Unity 2021.1 ではこの機能がエディターに組み込まれているので、別途パッケージをインストールする必要はありません。Edit > Search All(Windows では Ctrl + K、macOS では Cmd + K)で検索機能を立ち上げられます。

QuickSearch の起動には、ホットキーまたはヘルプメニューを使う。

パッケージマネージャーからインストールしたら、Help > QuickSearch または Alt + ' ホットキーの組み合わせで QuickSearch を有効にします。

QuickSearch では、アセット、シーンオブジェクト、メニューアイテム、パッケージ、API、設定など、Unity の複数の領域を検索することができます。

右の画像は、「Camera」を対象としたクイック検索の例です。

必ずセットアップウィザードを実行して、最適な検索結果が得られるように条件を設定してください。


QuickSearch が返す包括的な検索結果。

プロジェクトの規模によって性能が異なるので、必要に応じて最適な設定を選択しよう。

Unity の内部、外部どちらの検索にも使うことができます。詳しくは QuickSearch のガイドをご覧ください。

ワークフロー効率化の小ネタ10個

ちょっとした事ながら、エディター内での作業をさらに高速化できるパワフルな改善を10個ご紹介します。

1.ヒエラルキーウィンドウの中でゲームオブジェクトの切り取りや貼り付けを行いましょう。コンテキストメニューからPaste As Childを選択して、選んだゲームオブジェクトの子オブジェクトとして貼り付けることもできます。

Paste As Child

. 2.Fキーのショートカットを使うと、選択したオブジェクトをシーンビューのフレーム内に持ってくることができます。このショートカットで扱えるオブジェクトの種類が増えており、フレーム内にオブジェクトを持ってくる作業がよりやりやすくなっています。再生モードでは、Shift + F キーを使って動いているゲームオブジェクトを選んでそのオブジェクトを追いかけることができます。

3.インスペクターのプレビューでUV、法線、正接など、メッシュ情報を表示できます。

インスペクターのプレビュー

4.インスペクターのプレビューが改良され、ボリューメトリックレンダー、3Dテクスチャースライス、符号付き距離場などの3Dテクスチャーが表示できるようになりました。

ボリューメトリックレンダー

5.Layers メニューを使って、シーンビューが見づらくなっている時に任意のレイヤー(UIなど)を非表示にすることができます。意図せずにレイヤーの状態を変えないように、レイヤーをロックしましょう。

レイヤーの切り替えと編集

6.シーン内の同じオブジェクトを何度も選択する場合は、Edit > Selection の下にあるホットキーのコンビネー ションを使って、選択セットを素早く保存またはロードしましょう。

選択のロードと保存

7.オブジェクトを複製した時の番号の付け方を、Project Settings > EditorNumbering Schemeで編集できます。ここで命名規則や、複製したオブジェクトに付く番号に対するパディングやスペーシングを定義できます。

番号の付け方の定義

Unity はネイティブの 2D ツールを進化させ、さらに素早く開発を行えるようにしました。ここで紹介するヒントを活用して時間を節約しましょう。

番号の付け方の定義

8.EditorOnlyタグを使って、アプリケーションのビルドでは出現しないゲームオブジェクトを決めることができます。

EditorOnlyタグ

9.エディター内で特定のUI要素やオブジェクトをより素早く見つけられるように、エディター内で使う色をUnity > Preferences > Colors から変更することができます。Playmode tintを調整して、その時に再生モードに入っていることを確認できるようにしておきましょう。そうすれば、うっかり再生モードで変更を加えて、再生モードを終了した時にそれらの変更が消えてしまう事態を防ぐことができます。再生モードで変更を加えて、そしてそれを保存したい場合は、More Items()ボタンを使いましょう。再生モードにいる間にコンポーネントやトランスフォームの値をコ ピーし、再生モードから出たらすぐにその値を貼り付けます。複数のコンポーネントを変更している場合は、一時的なプレハブを使って作業内容をそこに保存しましょう。

Playmode tintの設定

10.カメラを設定する時は、GameObject > Align With View を使って、ゲームビューのカメラとシーンビューのカメラの視点を一致させましょう。他のカメラに合わせたい場合には、Align View to Selected を使って、シーンビューのカメラをヒエラルキー内の他のカメラに一致させることができます。

Align With Viewメニュー

この記事はいかがでしたか?