シナリオ減量化作戦
シナリオ作成の小ネタ
【対応】
CW:1.20○ 1.28○ 1.29○ 1.30○ 1.50○ |
減量化:メニューカードにおける画像参照
これは、TED様から教えていただいた方法です。わりと知られているやり方だそうですが、CardWirth Editor のヘルプには載っていないので、ヘルプだけ読んでシナリオを作っていた私は知りませんでした。基本的な事柄はヘルプに網羅されていますが、ヘルプに載っていない中にも重要なテクニックはあると思います。このシナリオ減量法は、その1つと思われるので、まだご存知ない方のために、ここに紹介します。
シナリオ内容を全く変えないで減量化できるところが、この方法のミソです。
この項のタイトルにある「メニューカード」というのは、エリア上に置くカードです。
メニューカードに画像を表示する方法には、以下の2つがあります。
- (1)イメージ格納
- カードそのものに画像データを格納します。
読み込み先に指定した画像ファイルの内容が、エリアデータ内にそっくりコピーされます。 - (2)イメージ参照
- シナリオフォルダ内の画像を読み込んで表示します。
エリアデータには参照するファイル名が書き込まれます。
まずは結論から言ってしまいます。
同じ画像をシナリオ内の複数箇所で使う場合、メニューカードではイメージ参照にする。
これだけです。
他に同じ柄の絵が無いか探すべき場所は、
- メッセージやセリフコンテントで参照する画像
- エリア背景として使用する画像
- メニューカードで使用する画像
(※シナリオ全体でエリア上のカード1枚でしか使わない場合は別扱いです。理由は後述します。)
同じ絵柄のメニューカードを複数作って、それぞれイメージ格納を行った場合、格納した数だけ画像がエリアデータに書き込まれ、全く同内容の画像ファイルがシナリオフォルダ内に複数あるのと同じ事になります。
セリフや背景など他で参照している画像をメニューカードに使う場合も、参照用としてフォルダから動かせない画像がエリアデータの方にもコピーされ、やはり同内容の画像が複数あるのと同じ事になります。
はっきり言ってこれは無駄です。
イメージ格納の場合
カードごとに画像情報が付加される。
例えば同じ画像を格納したカードが3枚なら:
データ量 = カード設定3枚分 + 3個の画像
フォルダ内参照の場合
カードに画像情報を内包させず、シナリオフォルダ内に置いたビットマップファイルから読み込む。
例えば同じ画像を参照したカードが3枚なら:
データ量 = カード設定3枚分 + 1個の画像
【シナリオ全体で1箇所しか使わない画像について】
エリア上のカード1枚でしか使わない画像がある場合、それは格納にした方が全体のサイズが減ります。
参照の場合は、エリアデータに参照先のファイル名が書き込まれ、
- 格納でのデータ量 = カード設定1枚分 + 1個の画像
- 参照でのデータ量 = カード設定1枚分 + 1個の画像 + 参照先ファイル名(テキスト)
ただ、ファイル名が余分と言っても、通常ならファイル1個分が数十バイトといったところでしょう。
高速回線と大容量HDDが普通になった今、これが無駄とまで言えるのかどうかは微妙です。
もちろん節約できる所はした方が良いには違いありませんが、画像の著作権者情報を分かりやすく整理するため、敢えて参照にする選択もありだと、個人的には考えています。
[ ▲上へ ]
減量化:画像関連以外のテクニック
シナリオ減量化で最も有効なのは、画像周りの減量だと思います。最も容量を食う分野は、節約の効果が現れやすい分野でもあります。可能な場合は画像自体のサイズを減らす(減色・圧縮)、格納と参照を上手く使い分けるなどの方法で、結構減量できるはずです。
ここでは、それ以外の方法をご紹介します。
- シナリオフォルダ内にThumbs.dbがあれば削除。
縮小版表示のキャッシュです。場合によってはMB単位にまで肥大している事もあります。
Thumbs.dbは、通常見えません。シナリオデータを圧縮後、アーカイブの中を確認してください。 - BGMになるべくMP3を使わない。
容量削減を優先する場合は、MIDIで置き換えられないか検討してみてください。 - カードなどにイメージ格納する際、規格外サイズは表示範囲より大きくなり過ぎないようにする。
- カードなどにイメージ格納する際、PNGはビットマップに変換して、必要ならRLE圧縮をかけた後に格納する。
(※WirthBuilderではPNGも選択できるが、格納時に自動でビットマップ変換されるため、気付かないうちにサイズが増えることがある。) - 同じメニューカードを使うエリアをまとめる。
イベントが混み合い過ぎるとメンテナンスし辛くなるため、ほどほどが良いかも。 - 使用時イベントを持たないスキル・アイテム・召喚獣は、空の使用時イベントを削除。
カード1枚ごとに28バイト節約。 - 分岐になっていない場所に配置されたセリフ・メッセージコンテントの選択肢文字列「OK」を削る。
1箇所削るごとに4バイト節約。
選択肢の文字列が空の場合は「OK」が表示されるので、削っても問題ありません。
(※空の選択肢の表示について詳しく→カードワースエンジンにおける空白選択肢の扱い) - スタートコンテントの名称を短くする。
半角1文字短くすると、1バイト節約。
コールやリンクされないスタートコンテント名は、空でも大丈夫です。
ご参考までにどうぞ。
[ ▲上へ ]