UnityでのスプライトPivotの変更方法


この資料では、Unity Editorを使ってスプライトのPivot(中心点)をビジュアル的に変更する手順について説明します。Pivotを変更することで、スプライトの回転、スケーリング、アニメーション時の基準点を自由に設定することができます。


ビジュアルツールでの変更手順

手順 1: スプライトを選択する

  1. Unity Editorプロジェクトウィンドウを開きます。
  2. Pivotを変更したいスプライト(画像ファイル)を選択します。
    • スプライトファイルは通常、.png.jpgなどの形式です。

手順 2: インスペクターウィンドウで設定を確認

  1. スプライトを選択したら、インスペクターウィンドウにその詳細が表示されます。
  2. Sprite Modeが「Single」に設定されていることを確認します。
    • 「Multiple」になっている場合は、スプライトが分割されており、個別にPivotを設定することができます。

手順 3: Sprite Editorを開く

  1. インスペクターウィンドウの上部にある「Sprite Editor」ボタンをクリックします。
  2. Sprite Editorが新しいウィンドウとして開きます。
    • Sprite Editorでは、スプライトの詳細な編集を行うことができます。

手順 4: Pivotの変更

  1. Sprite Editor内の右上に「Pivot」設定があります。
  2. プリセットから選択するか、「Custom」を選んで、自由にPivotを設定します。
    • プリセット選択肢Center(中央)Bottom Left(左下)など。
    • Customを選択した場合、X, Yの座標を数値で入力してPivotを任意の位置に設定できます。
    • カスタムPivotでは、スプライト上で直接Pivotの位置をドラッグして変更することも可能です。

手順 5: 変更を適用

  1. Pivotの変更が完了したら、ウィンドウの右下にある「Apply」ボタンをクリックして、変更を適用します。
  2. Pivotの変更が保存され、スプライトの中心点が新しいPivotに基づいて変更されます。

補足情報

スクリプトでのPivot変更方法

もし、スプライトのPivotをスクリプトで動的に変更する必要がある場合は、以下のようなコードを使ってSprite.Createを利用します。

using UnityEngine;

public class ChangeSpritePivot : MonoBehaviour
{
    public SpriteRenderer spriteRenderer; // スプライトレンダラー
    public Vector2 newPivot = new Vector2(0.5f, 0.5f); // 新しいPivot

    void Start()
    {
        Sprite currentSprite = spriteRenderer.sprite;
        Sprite newSprite = Sprite.Create(
            currentSprite.texture,
            currentSprite.rect,
            newPivot,
            currentSprite.pixelsPerUnit
        );

        spriteRenderer.sprite = newSprite;
    }
}

このコードでは、既存のスプライトに新しいPivotを設定したスプライトを作成し、それをSpriteRendererに適用しています。


まとめ

本資料では、Unity Editorを使用してスプライトのPivotをビジュアルに変更する方法を解説しました。Pivotの設定は、スプライトのアニメーションや移動、回転に大きな影響を与えるため、ゲーム開発において重要な作業となります。

Unity

Posted by hidepon