[unity2019]複数枚の画像を同じ位置とサイズでスライスする方法

 

状況とやりたいこと

スマホ向け脱出ゲームをunityで制作中
アニメーションの差分の画像を全て同じ位置とサイズで切り取りたい

 

 

環境

unityのバージョンは2019.4.1f1 、
PCはmacbookPro

 

やり方

参考:[Unity] 1枚の画像を用途毎にサイズを指定して分割したい(SpriteEditor/エディタ拡張)

 

 

プロジェクトパネルから切り取る画像のスプライトを選択

スプライトモードをデフォルトのsingleからmutipleに変更
ちょい下のsprite editorをクリック
なんか出てくるけどOKをクリック
ドラッグでスライスの範囲を選ぶ、

apply

positionの値をコピーして他の画像も同じサイズでコピペで切り取り

でできました

あとは同じ位置とサイズで切り取りたい画像で、同じ数値を入力すれば同じ位置で切り取れる。

 

今回だと

x:360  y:210

w:650 h:650

みたいな感じ

 

 

 

ちなみにapplyをしないとpositionのXとYの位置が反映されないので注意。

これに気づかなかったことがハマった原因でした。

反映前の値を他の画像に入力してたらずれました。

 

知ってれば超簡単だった。

位置と大きさを確定させてから値をコピペしましょう。

位置の基準点はpivotで変えらる。

デフォルトはcenter。

 

 

 

補足

 

何回がググったけどスライスの位置の合わせ方を説明してくれてる人がいなかったので書いておきました。

書いてなかった理由は簡単すぎたからだと思う。

スライスの仕方は解説たくさんあったんだけどな。

ちなみにフォトショップなどで素材をトリミングしてもよいが、絵の素材を更新した時にいちいち切り取らないといけないし、その度にシーン内の画像の位置がずれるので調整が必要になってしまう。

 

ゲームを作る前に素材画像の解像度などの仕様を決めておいて作り始めるのが理想だけど、作っている最中に変わったりすることもある。

3Dで絵を作るなら、素材の解像度やアスペクト比をいちいちカメラの設定から変えてると死ぬほど面倒くさい。

なので全ての素材はフルHDなどの固定解像度で出しておき、unity側に欲しいサイズに変更しておくと、クオリティアップや素材不足で画像の差し替えが発生した時に、素材を上書きすれば自動的に反映されるのでよいと思う。