Sprite Editor (スプライトエディター) の Custom Physics Shape モジュールを使用すると、スプライトの物理形状を編集できます。スプライトの物理形状はスプライトの Collider 2D メッシュの初期形状を決定します。コライダーのコンポーネント設定で物理形状をさらに細かく調整できます。
Custom Physics Shape モジュールを開くには、Project ウィンドウで、編集したいスプライトを選択します。スプライトを Sprite Editor ウィンドウで開くには、スプライトの Inspector ウィンドウで、Sprite Editor ボタンを選択します。
Custom Physics Shape を開くには、Sprite Editor ウィンドウで左上のドロップダウンメニューを開き、Custom Physics Shape モジュールを選択します。
プロパティ | 機能 |
---|---|
Snap | コントロールポイントを最も近いピクセルにスナップします。 |
Outline Tolerance | このスライダーを使って、作成されたアウトラインがスプライトテクスチャのアウトラインにどれだけぴったりと正確に沿うかを制御します。最小値 (0) で、スプライトエディターはスプライトの周囲に基本的なアウトラインを作成します。最大値 (1) では、スプライトエディターはスプライトのアウトラインにできるだけ近いアウトラインを作成します。 |
Generate | このボタンをクリックすると、設定した Outline Tolerance の値に基づいて、Unity が自動的に物理形状アウトラインを作成します。 |
Copy | カスタム物理形状を生成または設定した後、この Copy ボタンをクリックして、カスタム物理形状を複製しますCustom Physics Shape モジュールを終了するか、Sprite Editor を閉じると、コピーされた物理形状はメモリから削除されます。 |
Paste | このボタンを使うと、コピーした物理形状を現在選択されているスプライトに貼り付けることができます。Copy 機能を使って物理形状をコピーしなかった場合は、このボタンは使用できません。 コピーしたカスタム物理シェイプを別のスプライトに貼り付けるには、Project ウィンドウで Custom Physics Shape エディターウィンドウが開いている状態で、そのスプライトを選択します。そして、Paste ボタンをクリックして、コピーした物理形状を新しいスプライトに貼り付けます。物理形状を貼り付ける際に、物理形状内のポイントがスプライトのフレームよりも大きい場合、Unity はそのポイントをスプライトのフレーム内に固定します。 |
Paste All | このボタンを使用すると、選択されている対象を問わず、コピーした物理形状をスプライトエディターウィンドウ内のすべてのスプライトに貼り付けることができます。Copy 機能を使用して物理形状をコピーしなかった場合は、このボタンを使用できません。同じテクスチャ内の複数のスプライトに同じ物理形状を適用するには、この機能を使用します (例: テクスチャの スプライトモード が ‘Multiple’ に設定されている場合)。物理形状を貼り付けるときに、物理形状のポイントがスプライトのフレームを超えると、Unity は該当するポイントをスプライトのフレーム内に固定します。 |
Revert | エディターウィンドウで行われた最近の変更のうち、保存されていないものを元に戻します。変更を保存するには、まず Apply をクリックします。 |
Apply | このボタンを選択すると、エディターウィンドウで行った変更がすべて保存されます。 |
Custom Physics Shape エディターが提供する様々な機能を使うと、スプライトの物理形状を作成できます。カスタムの物理形状を作成するには 2 つの方法があります。Unity が自動的に形状を 生成 する方法と、エディターウィンドウで 手動で作成し、編集する 方法があります。
オリジナルのスプライトテクスチャの形状に沿って、テクスチャの透明部分も考慮した物理形状を Unity が自動的に生成するには、Generate ボタンをクリックします。ただし、生成された物理形状がどの程度スプライトテクスチャに沿っているかは、Outline Tolerance スライダーを使って調整できます。
Outline Tolerance スライダーを調整して、Unity が生成する物理形状のアウトラインをより精密にします。値を大きくすると、アウトラインがより忠実にスプライトテクスチャの形状に沿うようになります。スライダーを 0 にすると、スプライトテクスチャへより緩く沿う物理形状が生成されます。
Outline Tolerance の値を調整した後、スライダーの設定に基づいて Unity が物理形状を自動生成するには、Generate をクリックします。アウトラインを生成した後にスライダーの値を調整して、更新したスライダーの値に基づいてアウトラインを再生成するには、 Generateを再度クリックします。
独自のカスタム物理形状を作成し、それを 2 つの方法で編集することができます。1 つ目の方法は、アウトラインを自動的に 生成 して、生成されたアウトラインのコントロールポイントを移動してさらに精密にする方法です。また、Custom Physics Shape ウィンドウの任意のスペースをクリックしてドラッグすると、4 つのコントロールポイントを持つ矩形のアウトラインが作成され、コントロールポイントを移動したり、追加や削除したりして、アウトラインを精密にする方法もあります。
メッシュのアウトラインの形状を調整するには、コントロールポイントをクリックしてドラッグします。コントロールポイントの上にカーソルを置くと青色に変わり、選択可能であることを示します。物理図形のアウトラインの形状を調整するには、コントロールポイントをクリックして異なる位置にドラッグします。ある領域でカーソルをクリックしてドラッグし、その領域内のすべてのコントロールポイントを選択することにより、一度に複数のコントロールポイントを選択できます。その後、選択したすべてのコントロールポイントの位置の変更や 削除 ができます。
制御点を追加するには、アウトラインの端にカーソルを置きます。アウトラインのエッジに沿って制御点のプレビューが表示されます。クリックすると、その位置に新しい制御点が追加されます。制御点を削除するには、その制御点を選択して Del/Command+Del キー を押します。
図 1: 透明なコントロールポイント | 図 2: クリックして新しい制御点を作る。 |
物理形状のコントロールポイントではなくエッジを選択するには、Control/Ctrl キーを押しながら操作します。ハイライトされたエッジをクリックしてからドラッグして、物理形状に影響を与える新しい位置に移動させます。
図 1: アウトラインのエッジを選択します | 図 2: 選択されたエッジをドラッグして自由に動かします |
スプライトの物理形状に複数の別々のアウトラインを含めることができます。これは、スプライトの特定の領域だけが衝突のための Collider 2D メッシュを必要とする場合に便利です。例えば、あるキャラクターのスプライトにゲームメカニックスの一部としてダメージを与えるために、特定の領域の衝突にのみ反応させたい場合があるかもしれません。
4 つのコントロールポイントを持つ新しい矩形のアウトラインを作成するには、Sprite Editor ウィンドウの何もない場所をクリックアンドドラッグします。この手順を繰り返して、さらにアウトラインを作成します。それぞれのアウトラインは、物理形状のアウトラインと同じように調整することができます。
図 1: クリックアンドドラッグで 4 点ボックスを作成 | 図 2: 4 つのコントロールポイントを持つボックス物理形状 |
図 3: クリックしてドラッグすると、別のボックスを作成 | 図 4: これを繰り返して、さらに別のアウトラインを作成 |
既存のゲームオブジェクトがすでに参照として使用されているスプライトの輪郭を編集する場合は、Collider 2D コンポーネントのラベルを右クリックして Reset を選択します。これにより、Collider 2D メッシュの形状が更新されます。
Copy & Paste エディターウィンドウ昨日は 2020.1 で追加NewIn20201
2018–05–24 公開ページ
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.