sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

Unity 9スライスを利用したイメージの拡大・伸縮(リサイズ)

ゲームのテキストボックスに代表する吹き出し(フレーム)を作成するときは9スライスが便利。こんな感じで、簡単にフレームをリサイズできました。

f:id:shikaku_sh:20200128132503g:plain:w500
リサイズがラクチン!

今回は9スライスの機能を使って、ドラゴンクエストのテキストボックスのフレームを再現してみようと思います。

f:id:shikaku_sh:20200128132717p:plain
こんな感じのフレームを再現する

今回使用したイメージの素材はこれです。(お手製)

f:id:shikaku_sh:20200128132814p:plain
フレーム素材


9スライスとは?

9スライスとは、図のようにA~Iに区分けした9つの部分(スライス)ごとに拡大方法を使い分ける手法です。(1ドットの緑線が見えますか?)

f:id:shikaku_sh:20200128132610p:plain:w500
AからIの並びは公式に倣います

  • 四隅(ACGI)は、伸縮・タイリングが発生しない。元の状態を維持する。
  • BHは、水平方向の伸縮・タイリングのみ発生する。
  • DFは、垂直方向の伸縮・タイリングのみ発生する。
  • Eは、通常どおりの伸縮・タイリングが発生する。(水平・垂直の両方向に発生する)


9スライスを適用しない例

9スライスを適用しないときの拡大は次のように全体を同じ比率で拡大してしまい、線の幅・太さ(Border Thickness)が太くなってしまうため、期待する結果になりません。

f:id:shikaku_sh:20200128133032p:plain:w200
太くなるのは駄目……

また、Filter Mode設定Point (no filter) にしないと、拡大の際にアンチエイリアスが発生し、ぼやけてしまいます。ドット絵風のときは、だいたいこれがポイントに。

f:id:shikaku_sh:20200128133230p:plain:w500
Filter Mode の設定はドット風のときにも大切


9スライスの使い方

インポートしたイメージの設定

インポートしたイメージの Inspector を次のように設定する。

  • Texture Type「Sprite (2D and UI)
  • Sprite Mode
    • Mesh Type「Full Rect

f:id:shikaku_sh:20200128133707p:plain:h500
Pixel per Unit はプロジェクトの設定にあわせよう

設定したあと、「Sprite Editor」を開き、次のように9スライスの領域を設定し、設定変更を「Apply」(適用)します。

f:id:shikaku_sh:20200128133915p:plain:w500
これが9スライス!

シーンにイメージを追加する

UI -> Image を追加して、シーンにイメージのコンポーネントを追加します。

追加したコンポーネントSource Image に上述のイメージを設定し、次のように設定します。

  • Image Type「Sliced」or「Tiled」

以上で、9スライスを適用したイメージを表示することができました。

f:id:shikaku_sh:20200128133952p:plain:w500
こんな感じの枠ができました

Sliced と Tiled の違いは、イメージの拡大かタイル状の反復になります。


ポイント

  • 全体を同じ比率で拡大せず、9つに区分した領域ごとに拡大する方法を使い分ける
  • 拡大する方向をうまく使い分けることで、ドット絵らしい吹き出しを再現することができた


参考

楽しく学ぶ Unity2D超入門講座

楽しく学ぶ Unity2D超入門講座

Unity ゲームエフェクト マスターガイド

Unity ゲームエフェクト マスターガイド

  • 作者:秋山 高廣
  • 発売日: 2019/07/19
  • メディア: 単行本(ソフトカバー)