軽量化裏技 コミメカ3版 上級者向け。 ほとんど知られていない、というか知る人がいたかどうか……な軽量化の裏技です。 MB単位の軽量化は期待しないでください。 KB単位でちまちまと軽量化していく地味な方法です。 確実ですが、間違えるとコマンドが「不明なコマンド」になってしまったり、破損したファイルとして扱われる可能性があります。 慎重に作業しなければなりません。 この方法について、配布元サイト様で質問することは絶対にやめてください。 試して失敗しても自分で解決出来る、または自分で解決しようと思える方のみ使用してください。 当サイトの掲示板では質問等を受け付けます。 コミックスクリプトファイル(.cf3)をテキストエディタで編集します。 無くても大丈夫な情報を削ります。 練習ファイルこちら。(2012/02/04:練習4〜7追加) 〜練習1〜 〔グラフィックの表示〕。 レイヤーの位置を変更する≠ノチェックをしていない時。 その〔グラフィックの表示〕におけるレイヤーの位置情報は消しても、それより前に指定したレイヤーの位置に表示され、問題無く動きます。 これを削ります。 「GraphicDraw.Layer.Move=0」が、〔グラフィックの表示〕でレイヤーの位置を変更する≠ノチェックをしていない、という情報です。 この情報がある〔グラフィックの表示〕に限り、
〔グラフィックの表示〕でレイヤーの位置を〜≠ノチェックをしている時に、 ViewLeft=相対X座標 ViewTop=相対Y座標 Left=X座標 Top=Y座標 Width=横幅 Height=縦幅 で表示する、という情報です。 上記の順番で書かれていなくても問題ありません。 念の為スクリプトファイルをコピーした物で、「GraphicDraw.Layer.Move=0」を検索しながら、これらを削除して、空いた行を詰めて、上書き保存。 練習1.cf3で行なうと、2.77KB(2,842バイト)→2.12KB(2,178バイト) になるはずです。 ほんの少しじゃないか、と思われるかもしれません。 そういう方法なんです。 元々大きなサイズのファイルほど、作業していくと「うぉ?!」というほど軽くなります。 積み重ねです。 〜練習2〜 〔メッセージの表示〕。 レイヤーの位置を変更する≠ノチェックをしていない時。 練習1と同じく、その〔メッセージの表示〕におけるレイヤーの位置情報は消しても、ユーザーレイヤーに表示する場合はそれより前に指定したレイヤーの位置に表示され、テキストレイヤーに表示する場合は自動的に画面全体に表示され、問題無く動きます。 これを削ります。 「MessageDraw.Layer.Move=0」が、〔メッセージの表示〕でレイヤーの位置を変更する≠ノチェックをしていない、という情報です。 この情報がある〔メッセージの表示〕に限り、
〔メッセージの表示〕でレイヤーの位置を〜≠ノチェックをしている時に、 Left=X座標 Top=Y座標 Width=横幅 Height=縦幅 で表示する、という情報です。 上記の順番で書かれていなくても問題ありません。 練習1と同様に作業し、上書き保存。 練習2.cf3で行なうと、1.67KB(1,715バイト)→1.24KB(1,275バイト) になるはずです。 〜練習3〜 〔数値変数の制御〕。 真ん中と右辺が無い時。 真ん中の情報と右辺の情報は、元々入れていないので、消しても問題無く動きます。 これを削ります。 [数値変数]←1 だけ、などの時、 ValueCtrl.ValueVar=%数値変数% ValueCtrl.LeftValue=1 ValueCtrl.RightValue= ValueCtrl.Calc= @ValueCtrl となります。この内、
ValueCtrl.RightValue=右辺、ValueCtrl.Calc=真ん中(+や−の情報)です。 上記の順番で書かれていなくても問題ありません。 もし ValueCtrl.Calc= の右辺に何か数値が入っていても、 ValueCtrl.RightValue= の右辺に何も無ければ、削ってしまって大丈夫です。 練習1、2と同様に作業し、上書き保存。 練習3.cf3で行なうと、1.39 KB (1,429 バイト)→1.20 KB (1,229 バイト)になるはずです。 間違えて[数値変数1]←[数値変数1]+[数値変数5]の一部まで削って、「数値変数1:1」と表示されないように気をつけてください。 〜練習4〜 〔レイヤーの制御〕。 レイヤーに画像を読み込む≠ノチェックをしていない時。 その〔レイヤーの制御〕より前に読み込まれた画像情報が残っているので、読み込まない画像情報を消しても問題無く動きます。 これを削ります。 「Layer.Image.Change=0」が、〔レイヤーの制御〕でレイヤーに画像を読み込む≠ノチェックをしていない、という情報です。 この情報がある〔レイヤーの制御〕に限り、
〔レイヤーの制御〕でレイヤーに画像を読み込む≠ノチェックをしている時に、〜部分の画像ファイルを読み込む、という情報です。 〜部分が無いこともあります。 レイヤー位置を変更する≠ノチェックをしていない時。 その〔レイヤーの制御〕におけるレイヤーの位置情報は消しても、それより前に指定したレイヤーの位置に表示され、問題無く動きます。 これを削ります。 「Layer.Pos.Change=0」が、〔レイヤーの制御〕でレイヤー位置を変更する≠ノチェックをしていない、という情報です。 この情報がある〔レイヤーの制御〕に限り、
〔レイヤーの制御〕でレイヤーに画像を読み込む≠ノチェックをしている時に、 Left=X座標 Top=Y座標 で表示する、という情報です。 上記の順番で書かれていなくても問題ありません。 レイヤーサイズを変更する≠ノチェックをしていない時。 その〔レイヤーの制御〕におけるサイズ情報は消しても、それより前に指定したレイヤーのサイズに表示され、問題無く動きます。 (画像を読み込む≠ノチェックをして画像ファイルを指定している場合は、前に指定したレイヤーのサイズは反映されず、自動的に新しい画像と同じサイズに変更されます) これを削ります。 「Layer.Size.Change=0」が、〔レイヤーの制御〕でレイヤーサイズを変更する≠ノチェックをしていない、という情報です。 この情報がある〔レイヤーの制御〕に限り、
〔レイヤーの制御〕でレイヤーサイズを変更する≠ノチェックをしている時に、 Width=横幅 Height=縦幅 で表示する、という情報です。 上記の順番で書かれていなくても問題ありません。 表示範囲内の表示位置を変更する≠ノチェックをしていない時。 その〔レイヤーの制御〕における表示範囲内の表示位置情報は消しても、それより前に指定したレイヤーの表示範囲内の位置に表示され、問題無く動きます。 これを削ります。 「Layer.ViewPos.Change=0」が、〔レイヤーの制御〕で表示範囲内の表示位置を変更する≠ノチェックをしていない、という情報です。 この情報がある〔レイヤーの制御〕に限り、
〔レイヤーの制御〕で表示範囲内の表示位置を変更する≠ノチェックをしている時に、 Left=レイヤーに表示する画像のX座標 Top=レイヤーに表示する画像のY座標 で表示する、という情報です。 上記の順番で書かれていなくても問題ありません。 練習4.cf3で行なうと、3.05 KB (3,127 バイト)→2.51 KB (2,575 バイト) になるはずです。 〜練習5〜 〔ダイナミックレイヤーの作成〕 ダイナミックレイヤーは設定項目が多いので、削除項目を間違えないように注意してください。 基本設定(必須)≠フ描画スタイル≠ナ「表示しない」または「イメージを表示」を指定している時。 そのダイナミックレイヤーに表示しないテキストの情報は消しても問題無く動きます。 「DynamicLayer.Type=Transparent」が「表示しない」、「DynamicLayer.Type=Image」が「イメージを表示」を指定している、という情報です。 これらの情報がある〔ダイナミックレイヤーの作成〕に限り、
「テキストを表示」に指定している時に、〜部分のテキストを表示する、という情報です。 〜部分が無いこともあります。 基本設定(必須)≠フ描画スタイル≠ナ「表示しない」または「テキストを表示」を指定している時。 そのダイナミックレイヤーに表示しない画像の情報は消しても問題無く動きます。 「DynamicLayer.Type=Transparent」が「表示しない」、「DynamicLayer.Type=Text」が「テキストを表示」を指定している、という情報です。 これらの情報がある〔ダイナミックレイヤーの作成〕に限り、
「イメージを表示」に指定している時に、〜部分の画像ファイルを表示する、という情報です。 〜部分が無いこともあります。 クリック≠フクリッカブル動作の指定≠ナ「無効」を指定している時。 そのダイナミックレイヤーをクリックした際に移動・サブルーチンコールしないページの情報は消しても問題無く動きます。 「DynamicLayer.Clickable.Mode=None」が「無効」を指定している、という情報です。 これらの情報がある〔ダイナミックレイヤーの作成〕に限り、
Move=〜 が、クリックされたときの動作≠ナ指定している情報。 BookName=ブック名 PageName=ページ名 に移動またはサブルーチンコールする、という情報です。 〜部分が無いこともあります。 上記の順番で書かれていなくても問題ありません。 練習5.cf3で行なうと、5.06 KB (5,191 バイト)→4.55 KB (4,662 バイト) になるはずです。 〜練習6〜 〔しばらく待つ〕の制限時間による解除≠ナ一定時間経過したら、一時停止を解除する≠ノチェックをしていない時。 その〔しばらく待つ〕で使用されない制限時間の情報は消しても問題無く動きます。 「Wait.TimeBreak=0」が制限時間による解除≠ナ一定時間経過したら、一時停止を解除する≠ノチェックをしていない、という情報です。 この情報がある〔しばらく待つ〕に限り、
〔音楽を演奏する〕の指定回数ループしたら演奏をやめる≠ノチェックをしていない時。 その〔音楽を演奏する〕で使用されないループ回数指定の情報は消しても問題無く動きます。 「Music.Loop=〜」が、指定回数ループしたら演奏をやめる≠ノチェックをして、ループの回数を入力している、という情報です。 逆に、「Music.Loop=」が、チェックをしていない、という情報です。 「Music.Loop=〜」で回数が指定されていない〔音楽を演奏する〕に限り、
練習6.cf3で行なうと、879 バイト (879 バイト)→840 バイト (840 バイト) になるはずです。 〜練習7〜 ユーザーレイヤーを作った後に削除すると、削除したはずのレイヤーの情報が消えずに残ったままになることがあります。 <Head="LayerList">〜<Head End>が、ユーザーレイヤーの情報です。 例えば、レイヤー1〜6を作成し、レイヤー6は削除した場合、
LayerCount=6は、現在使用しているユーザーレイヤーの総数に背景レイヤーを足した数です。 現在使わないレイヤー6の情報は削除しても問題無いので、
ユーザーレイヤーの作成順や並べ替えなどによっては、
練習7.cf3で行なうと、934 バイト (934 バイト)→839 バイト (839 バイト)になるはずです。 戻る |