Help us understand the problem. What is going on with this article?

あの日増えた容量の大きさを僕はまだ知らない

More than 3 years have passed since last update.

最近ネイティブアプリではヨウリョウガ!ヨウリョウジャ!といった某FFの強力魔法みたいな言葉が飛び交っておりますが(飛び交っていない)、
基本的に新キャラ追加とか新シナリオ追加を行うとヨウリョウガ!ヨウリョウジャ!が発動するのは当たり前です。詠唱条件満たしてしまっています。MP?知りません。

開発段階で運用を想定した設計や仕組みを考えておかなければいけないですが、
実際に運用が始まらないと分からないことがほとんどなので、
正直開発段階で完全な設計や仕組みづくりは出来ないと思っています。
(もしくは運用2年後ぐらいからタイムリープしてくればあるいはいや待てもしかしたら)
ちょっと論点がズレてますね。修正。

今回は容量削減の中でも画像周り(他にも応用は効くと思います)でとりあえずやってみたことを書いておこうと思います。

1.テクスチャ設定を見直す

一番手っ取り早く、取りかかりやすいです。
ここは各自使うものによって変わると思います。
特にFilterの設定はしっかりした方が良いです。
(うちのプロジェクトは初期バッラバラでした)

2.アトラスを利用する

容量削減というよりは、リソースの管理と無駄を省くという意味の方が強いかもしれません。
・テクスチャの読み込み枚数を減らせる
・正方形化されてない画像を正方形の画像にまとめておくことで無駄な処理を省ける(iPhoneとかでの描画のお話)
・リソースの視認性を高める(管理が杜撰だったら視認性も糞もないです)
特定のシーンUIのリソースがアトラス化されておらず、
1シーンで大量のテクスチャを読み込んでいる・・・・・・なんてこともありました。
低スペック端末だと表示できないとかもあります。
リソースの管理は計画的にしましょう。

3.アセットバンドルをまとめる

運用をしていくと色んな施策としてイベント用ガチャだったり、
イベント用シナリオとかを行うというのは往々にしてあると思います。

その度にDLCが発生し、ユーザーの端末にリソースがダウンロードされてきます。
しかし、イベント期間が過ぎた後も端末内にイベントのリソースが残っているのはよろしく無いはずです。

DLC時に不要なデータが残っている場合削除する等、何かしらの機能を実装しておけば問題はありませんが、
それ以外の方法として必要なリソースだけを常にアセットバンドルにまとめるようにしておくという方法でも改善できると思います。
(ガチャやイベントなどの頻繁に更新され、プレイヤーのデータに対して影響の与えないレベルの物)

外伝:9スライスを活用する

今関わっているプロジェクトで一番無駄が多いなと思ったところの一つがコレでした。
ポップアップやボタンを使用するサイズで出力されていることが多かったので、一人で首を傾げていました。
ウィンドウやボタンのUIを組むときには、9スライスを利用して作ることをお勧めします。
9スライスについては調べてみてください。(無慈悲)

簡単に説明すると、
ss_9s_01.png
普通に画像サイズが128x26のものでボタンを配置するとき、widthに128、Heightに26と指定すると思います。

このままサイズを変更しようとすると以下のようになります。
ss_9s_00.png
これだと100x100の画像も用意しないといけなくなります。

そこで9スライスです。画像に対してBorderを設定することで
中央のブロック部分だけを引き延ばす対象にして、
それ以外のブロックは固定して使用することができます。
ss_9s_04.png
※画像ではLeftとRightのBorderだけを設定している

するとwidthをいくら設定しても両端部分は画像が崩れずに
引き延ばすことができます。
ss_9s_05.png
※オレンジ色の方は同じ画像の色違いでBorderの設定無

ss_9s_06.png
違いが分かりやすいです。
borderを設定している方は丸い部分の形が崩れていません。

もっと言うとこういう風なこともできます。
ss_9s_07.png
(横幅に画像サイズ以下の数値を指定)

ss_9s_08.png

これを利用すればウィンドウやボタンの画像の縦横幅を最低限まで小さくできます。
そうすれば
・画像自体も小さくなる
・アトラス化の際に領域を無駄に使ったりしないので他の画像を入れるスペースだって出来る
・そもそものアトラス自体のサイズも小さくできる!
やったね!

ただし、装飾があるような場合は9スライスが利用しづらいので、
そのまま使うかデザイナーとの相談が必要です。
(装飾の一部分だけが引き延ばされると見栄えが悪い)

まとめ

最終的に9スライス使いましょうって話になってしまった感が否めない……
ですが、ヨウリョウガ!ヨウショウジャ!は運用が続く限り、避けては通れないので
しっかり対策は考えていかなければいけません。
みなさんも何か良い方法とかご存知であれば、教えてください。

あれ・・・・・・・・・?
これってエンジニアの記事なのだろうか・・・

gumi
Python、Erlang、Elixir などちょっと変わった技術でゲームをつくったりする会社。プログラマだけじゃなく、企画、デザイン、イラストなど開発全般揃ってます。
http://gu3.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away