Appendix

広告

Entries

製作中のプラグインと1.5のお話

先週には製作中のプラグインのスクリーンショットくらいは出せるかと思ったのに、
エラーに次ぐエラーで起動すら無理でした。

新しい試みをしているとか言っておきながら、エラーのたびにそれを破棄して
さらに別の試みをするといったことを3回くらい繰り返して
ようやく最低限の機能が動くようになったくらいです。

とりあえず、現在出せるスクリーンショットはこれくらい。
170609a.jpg

詳細はまた今度!(見ればわかるけど・・・



ツクールMVのバージョン1.5が公開されました。

画像処理関連で大きな変更があったようです。

場合によっては「画像がうまく表示されなくなった」なんてこともあり得ますので注意しましょう。

私も↑のプラグインで画像表示がおかしくなりました(泣



さて、スクリプト的には画像を扱う ImageManager クラスで大きな変更があったようです。

他もほぼこの変更に合わせての変更ぽいです。


この ImageManager クラス、今までは読み込んだ画像をキャッシュに入れるだけのお仕事でしたが、
今回なにやら reserve やら request といった機能が追加された模様。


まだ詳しくは調べてませんが、見た限り reserve はツバ付け、request は事前読み込みぽいですね。


どうも今回のパッチで、キャッシュに入れておく画像の容量にある程度の上限が設定されたようで、
上限を超えたら古いファイルを削除していく機能が盛り込まれたようです。

で、 reserve は画像に専用のIDをつける機能らしく、
このIDがついた画像は削除されないようにツバ付けするものっぽいです。



request はリクエスト、つまり呼び出された画像を順番に読み込んでいく機能のようです。

あらかじめ画像を読み込んでおくことで、途中で読み込みが発生しないようにするものかと思われ。
(今まではloadを使ってましたが、こっちだと同時に読み込み開始してしまいます)


これを使って、イベント実行時にイベント内で使う画像を先に読み込む機能も追加されてます。

実は私も「アニメーション画像先読み」プラグインでアニメーションのみ同じようなことやってたり。

なので、こちらのプラグインは半分くらい用途を失いました。

まだ戦闘で使うアニメーション画像の先読み機能は実装されていないようなので、
そちらのみに機能を絞ったバージョンも出さないといけませんね。

こちらの機能は公式が実装する可能性は低いでしょう。

というのもこの機能には欠点がありまして、普通にプレイする分には軽量化プラグインになるわけですが、
ある使い方をするとメモリを圧迫してしまいます。

とはいっても、この欠点を知っていてさらにこのプラグインが入っていることを知らなければ
やってみようとは思わないことなので、問題ないはずです。

でも公式は常に最悪のケースを想定しないといけないので実装できない、
私のようなアマチュアだからこそ作れる機能だと思ってます。



他にもBitmapクラスやらSceneManagerクラスでいろいろと変更されてますが、
私にはよくわかってないし、長くなったので今回はここまで。


web拍手 by FC2

近況報告

ブログ何も書いてないなーとは思いつつも、何も書くことがないです。


とりあえず、ツクール触ってないわけではないです。

むしろずっとスクリプト組んで遊んでます。


とはいっても、プラグイン素材を作っているのかと聞かれるとどうだろうといった感じ。

正直、まともに動作するとは思ってないです。

ただ、作ってみたかったから作ってるだけ。


とにかく読み込む画像の量が多いので、ブラウザプレイではロードが長くなるので向かないうえに、
スマホとかだとメモリの問題なんかも出てきます。

ダウンロードして遊ぶゲームなら問題ないと思いますが、
今時MVでそれやってる人少ないですよね・・・



そんな感じで、ほぼ趣味のプラグインです。

一応公開はする予定ですが、上記の理由から使い物にならない可能性があるということは
ご了承ください。


どんなプラグインかも、またそのうち。



中身も今までに組んだことのないようなスクリプト組んでます。

いろいろと解析したり、
フォルダ内のファイル名を取得してそれをデータに変えるスクリプト組んだり、
必要な画像を複数ダウンロードし終えてから処理を行うといった処理が必要だったり、
文字列に情報詰め込んで、送った先でそれをまた情報に戻したり、
キャッシュへの画像保存をキャラごとに行うようにしたり、

とにかく、今までにやったことないことをこなしていくのは楽しいですね。

web拍手 by FC2

コメントお返事

> エクロウレ さん
こんにちは、いらっしゃいませ~

説明しましょう!


まず先に、なぜ .+ を使っていないのかについて。

例として、選択肢の文章が "はい if(s[1]) en(s[2])" だったとしましょう。
この場合、ifの条件が's[1]'enの条件が's[2]'とならなくてはなりません。

ですが、.+を使ってしまうと、ifの条件が's[1]) en(s[2]'となってしまいます。
これでは困るので文字列 ')' までの一致にしないといけません。


そこで [^\)] が出てきます。

\) はこの二つで文字列 ')' を表します。
なので正規表現の () とは別物です。

[^ ] が「カッコ内に含まれるもの以外」となるので、この場合「文字列 ')' 以外」となります。


[^\)]+ ... 文字列 ')' 以外で最長一致
([^\)]+) ... 上記を後方参照
if\(([^\)]+)\) ... 文字列 'if('')' の間の文字列を後方参照

てな感じです。


たぶん、これであってるはず…
正直、条件の書き方を <if:s[1]> とかにすればよかったなあとは今更思ってます。


web拍手 by FC2

Appendix

プロフィール

木星ペンギン

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

ゲーム

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

メールフォーム

wood_penguin@yahoo.co.jp

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