FC2ブログ

Appendix

広告

ゲーム

Entries

プラグインの更新とその解説、そしてメールへの返答

そういえばツクールMVのバージョン1.6.1がようやく正式に公開されたようです。

かなり根本的な部分の変更がされています。
バージョンアップした後は、ヘルプをよく見て既存のゲームのJavaScript等もしっかりと更新するようにしましょう。



下記のプラグインを更新しました。

隠し通路
ミニマップ標示

●隠し通路
プレイヤーの高さ的なものを変更できる機能を追加しました。
"的なもの"であり、実際に高さが変わるわけではありません。

今までは「設定したリージョンIDのタイルがプレイヤーより上に表示」されていましたが、
ver.2.0より「設定したリージョンIDであり、かつプレイヤーのZ座標より大きいリージョンIDのタイルを
プレイヤーより上に表示
」させるようになりました。

要は橋の下をくぐった後に上を通るようなことが可能になった感じです。



●ミニマップ標示
全スプライトより上に表示する機能を追加しました。
ほとんどの方には関係ない機能です。

今回、MBS - FPLE MVという3Dダンジョンプラグインと併用するとミニマップが表示されないので
出来たら表示されるようにしてほしいと要望があったので対応してみました。


詳しく解説です。

今までのミニマップはSpriteset_Mapクラス内で生成されてました。

このクラスは、マップ画面で表示されるスプライトをまとめて管理するクラスです。

主にマップとかキャラクターとかピクチャなど、画面に表示される画像はすべてこのクラスです。

画面に表示されるものでこのクラス外のものは、
ウィンドウ関連とフェードアウト(画面暗転)くらいなものです。

当然、ミニマップもこのクラスで表示させていたわけですが、
今回競合が起こっていたMBS - FPLE MVではこのクラスを使っていません。
(3Dダンジョンなので通常のマップ画面は必要ない)

で、どう対応したかというと、Spriteset_Map外で生成し、
それからSpriteset_Map内へ入れるという方法にしました。

そしてプラグインパラメータ次第でSpriteset_Mapに入れず、
ウィンドウ等と同じように表示させることで競合を回避することができました。


今回、私の方でMBS - FPLE MVができなかったため、自分で動作確認ができなかったのが
大変でした。
何とかなるものですね。



頂いたメールお返事です。
いつもならメールにはメールで対応してますが、今回はこっちで返答です。

「文章の表示拡張」プラグインの不具合報告をいただきました。
内容はこちらでも確認したので、近いうちに修正したいと思います。

ご報告ありがとうございました。

プラグインの更新とセーブデータについて

下記のプラグインを更新しました。

ミニマップ標示 マッピング

ご報告いただいた個所を修正しました。
半透明色の合成方法に不備があったので変更です。

不透明なマップだと特に目立つようです。
半透明マップだとあまりわからないような違いです。



ここからはスクリプトに関する日記です。

私が現在作っているゲームはいろいろとこだわった部分があるのですが、
その一つにセーブデータの容量があります。

アツマールだとブロック単位になってますが、あれはおそらく5KB毎に1ブロックではないかと思います。
(大雑把な計測しかしてないです)
たいていのツクールMVのゲームが1ファイル20~30KBなので、だいたい5~6ブロックとなります。


で、今作っているゲームはいろいろと頑張って
数KBまで軽量化することに成功しました!
アツマールだと1~2ブロックで済みます。
これでセーブデータをたくさん作っても大丈夫!


今日はそれをどうやったのかという日記です。

一応先に書いておきますが、プラグイン素材としての配布はほぼ無理です。
軽量化というのは、自分のゲームに必要ないデータを削って実現したにすぎません。
なので軽量化の方法はゲームによって変わります。
細かな仕様を理解してないと削れないデータもあります。
なので、今回の日記を見て、自分でデータの軽量化を行ってもらうしかありません。

というわけで、ここからはセーブデータに含まれる内容とそれを削ったらどうなるかを書いていきます。


● $gameSystem
名前の通り、全体的なシステムに関するデータを扱うクラスです。
これ以降のクラスがそれぞれに特化したものを扱っているとしたら、これはそれ以外を扱っています。
なので、まず削れません。
それに削っても大した容量ではないです。


● $gameScreen
画面に関するクラスです。
色調変更・画面のシェイク・天候・ピクチャといったイベントコマンドの処理を行っています。
よってこれらをセーブデータに含める必要がなければ削れます
とはいっても大した容量ではないです。


● $gameTimer
タイマーを扱うクラスです。
現在のタイマーの時間を保存する必要がなければ削れます
というか、タイマー使ったゲームすらほとんど見ないですけどね。
これも大した容量ではないです。


● $gameSwitches / $gameVariables
スイッチと変数を扱ったクラスです。
当然ながら、まず削れません
中には「変数しか使わないからスイッチはいらない」という方がいるかもしれないって程度です。
これらはゲーム後半になるほど容量が増えていきます。
結局、スイッチ使ってなくてもその分変数使ったら似たようなもんです。


● $gameSelfSwitches
セルフスイッチを扱うクラスです。
使わない人は削れます
私も削ろうかと思ったのですが、ふと1・2か所どこかで使ったなあと気づき、
でもどこで使ったのか正確には思い出せなかったので仕方なく残すこととなりました。
これらはゲーム後半になるほど容量が増えていきます。
ついでに言うと、普通のスイッチよりちょっと容量多いかもしれません。(誤差だと思うけど)


● $gameActors
アクターを扱うクラスです。
まず削れません
が、私はちょっと変わった方法で軽量化しています。
メインキャラ以外は一度くらいしかメンバーに加わらないので、
パーティから離脱した時点でそのキャラのデータを削除しています
レベルアップもないので、再度加入するときに初期化されても問題ありません。
アクターはそこそこ容量食うので少ないに越したことはありません。

それ以外にもGame_ActionResultクラスをセーブデータに含まないということもやっています。
これはスキルなどを使った際にどんな効果があったかを入れるクラスです。
これをセーブする直前に削除し、セーブが終わったら再度作成とやっています。
とはいってもこれはあまり大きな効果ありませんでしたけど・・・


● $gameParty
パーティに関するクラスです。
現在の編成、所持金、所持アイテムなど、まず削れないデータが含まれています。


● $gameMap
マップに関するデータを扱っているクラスです。
現在のマップID・イベント・乗り物・遠景等、マップに関することほとんど入ってます。
全てを削るのは難しいですが、一部分なら削っていくことができます

当然ながら、これがセーブデータの大部分を占めています。
そして私のゲームではこれを丸ごと削ってます。
いろいろと工夫して、現在のマップの情報を必要としないゲームにしました。
これはさすがに仕様を理解していないとできません。

で、簡単に削れるものと言えば、乗り物のデータです。
乗り物がないゲームであれば当然削れます。
が、これはGame_Mapクラスを変更するしかありません。

ちなみにこのクラスの中で容量の大部分を占めているのがイベントです。
マップに配置されているイベントにはそれぞれ、現在の位置・向き・移動速度・頻度・パターン・グラフィック名・歩行アニメ・足踏みアニメ・向き固定・すり抜け・移動ルート・現在表示されているページ等々、多くのデータが含まれています。
これがイベントの数だけ存在するわけですから、
現在のマップに配置されているイベントの数が多いほど、
セーブデータの容量が増す
わけです。


● $gamePlayer
最後にプレイヤーの情報を扱うクラスです。
イベントと似たクラスなので、プレイヤーの現在の位置・向きといった様々な情報 +
現在乗ってる乗り物・場所移動・フォロワーといった情報が含まれています。

この中で重いと言ったらフォロワー(後ろについてくる人たち)かと思います。
プレイヤーと合わせて4人分のイベントが存在していると思えば、なんとなくわかるかと思います。

ちなみにこのフォロワーは[隊列歩行]をOFFにしても、透明なキャラが付いてきているので何も変わりません。



というわけでセーブデータの軽量化に関する日記でした。
正直、簡単に削れるものは効果が薄いです。
そうなってくるともういっそのこと「セーブデータの容量なんてどうでもいいや!」と
割り切るべきかもしれませんね。

タイムライン

新しいプラグインを公開しました。

アクティブタイムバトル タイムライン
アクティブタイムバトル ATゲージ操作

●タイムライン
敵味方全員のATゲージのたまり具合を1ライン上に表示します。

アクティブタイムバトルのパラメータで[戦闘モード]をストップ固定にし、
[アクション中に時間を止めるかどうか]を有効にすれば、よくあるタイムラインバトルになると思います。



●ATゲージ操作
デフォルトに追加してもいいような機能ばかりですが、機能が多いのでオプションにしました。

とはいっても、デフォルトではほとんど使う必要のない機能ばかりです。

主にタイムラインと併用して、グランディアとかチャイルドオブライトみたいな戦闘を想定して作りました。



あとページだけ作成してあるオプションが一つありますが、公開はまだ先になりそうです。

思った以上に難航しているのと、先に作っておきたいプラグインができたのが理由です。

あと、来週はスクリプトの話したいなーと思ってます。

ウィンドウの重なり調整

新しいプラグインを公開しました。

ウィンドウの重なり調整

先日プラグイン公開したばかりですがまた更新です。

WindowInsideClear1.png

ウィンドウの重なる部分の見栄えをよくするプラグインです。

地味ですが、使い勝手はよいかと思われます。

実はついさっき1時間ほどで作ったプラグインだったりしますが、
思ったより良いものができたので急遽更新です。

どんなふうに使えるかは公開ページを見てみてください。

戦闘ログ高速化

新しいプラグインを公開しました。

戦闘ログ高速化

それと下記のプラグインを更新しました。

アクティブタイムバトル

●戦闘ログ高速化
高速スキップを行うプラグインではありません。

どんなプラグインかわかるように動画作ってみました。


余計なウェイトを省くことで戦闘の進行を早くするプラグインです。

ただログの進行が速いだけでなく、
キャラが行動し終わったらすぐ次のキャラが動いたり、
敵の消滅エフェクト待ちをしなかったりといった高速化も含まれています。

アクティブタイムバトルで行動の渋滞をかなり軽減できるはずです。


ついでにログを表示せずに使用したアイテム/スキル名のみ表示する機能も付いてます。

本当は神無月サスケ氏の SimpleMsgSideView と併用できるようにするつもりでしたが、
どうしても競合が避けられないのと、サイドビューでしか機能しないため断念しました。

個人的にかなりお気に入りのプラグインです。



●アクティブタイムバトル
不具合修正とちょっとした機能の追加です。

といいつつ、本当の目的は今後追加するオプションへの対応です。

新しいオプションはとりあえず公開ページだけ作ってあります。

来週には公開できたらいいな。

Appendix

プロフィール

木星ペンギン

Author:木星ペンギン
ほぼツクールのことばかり書いてます。
名前は↑から取りました。
木製ですが木星です。
トカゲは関係ありません。

ゲーム

  • 箱庭の勇者たち(体験版)
  • アクイ ト アイ
  • ぼくらの大革命!
  • 勇者がやらねば俺がやる!
  • 3Turn Battle!
  • 3TurnBattle!2nd 体験版

メールフォーム

wood_penguin@yahoo.co.jp

名前:
メール:
件名:
本文: