【Unity】画像をスライスして引き伸ばしを綺麗にする

Unity-画像をスライスして引き伸ばしを綺麗にする Unity
スポンサーリンク

セリフの吹き出しなど可変のUIを作る時、「サイズを変更すると画像が歪んでしまった」ということがあります。
今回は画像の引き伸ばし時に歪んでしまうのを回避する方法について書いていきます。

画像をそのまま引き伸ばした場合

このように全体が伸ばされてしまうので見た目が微妙になってしまいます。

伸ばしたときに線の太さが変わっています

9スライスを設定する

スプライトを綺麗に引き伸ばすために、9スライスの設定をしていきます。

スプライトのInspector設定

まずは画像素材のInspectorウィンドウからSprite ModeのMesh Typeを「Full Rect」に変更します。
変更後は「Apply」を押して適用します。

SpriteのInspectorウィンドウでMesh TypeをFull Rectへ変更する画像
Sprite Modeが表示されていない場合は
一番上のTexture Typeが「Sprite(2D and UI)」になっているかどうか確認してください

Sprite Editorで境界を設定

Sprite Editorを開きます。

Sprite Editorの画像
Inspectorウィンドウから開けます

Sprite Editorが開けない場合はパッケージマネージャーから「2D Sprite」をインポートしてください。

パッケージマネージャーで2D Spriteをインポートする画像
Unity Registryで「2D Sprite」を検索すると出てきます

Sprite Editorを開いたら、緑の点をドラッグするか下のBorderの値を変更してスプライトの境界を設定します。

スプライトの境界を変更する画像
引き伸ばしても大丈夫な範囲に移動させます

吹き出しの画像を例にするとこんな感じです。
角や吹き出しのとがっている部分は引き伸ばしたくないので、そこを避けるように設定しています。
境界が決まったらApplyをクリックして適用し、Sprite Editorを閉じます。

吹き出し画像の境界設定例の画像
きっちり設定しなくても大体でOKです

シーンに配置してModeを変更

画像をシーンに配置し、Sprite RendererのDraw Modeを「Sliced」または「Tiled」に変更します。
※UI(Image)の場合、ImageのImage Typeを「Sliced」または「Tiled」にします。

Sprite RendererのDraw Modeを「Sliced」に変更した画像
今回はSprite Rendererで「Sliced」にしました

設定はこれで完了です。
サイズを変更してみると、設定した境界の外側の部分はそのままで綺麗に引き伸ばされています。

境界で設定した範囲内が伸びるようになります

上手くいかないときに確認するポイント

上記の通りに設定したのに綺麗に引き伸ばしができていない場合は、次のポイントを確認してみてください。

①Scaleの値を変更していないか

Scaleを変えると画像全体の大きさが変わってしまうため意味がありません。
Sprite Rendererの場合はSizeのWidthとHeightを、UI(Image)の場合はRect TransformのWidthとHeightを変えます。

WidthとHeightの値を変更する画像
変更するパラメータが正しいかどうか確認しましょう

②Scale Toolで動かしていないか

Sceneビューからマウス操作などでサイズを変更するとき、Scale Toolで変更するとScaleの値が変わってしまいます。
Rect Toolで変更すると綺麗に引き伸ばすことができます。

Rect Toolを選択している画像
Rect Toolで変更しましょう

参考

スプライトの 9 スライス – Unity マニュアル

コメント

タイトルとURLをコピーしました