そんなわけでちょこちょことあっちに行ったりこっちに行ったりもしましたが
のんびりと進行中の『妖鬼少女』の制作日誌第70回。
RPGツクールはスクリプトが搭載されて以降は一気に可能性を広げた感がありますが
基本的なUIやイベントコマンドは2000時代の頃からさほど変わっておらず
自分も昔の感覚でイベントコマンドを組んでいるんですが
たまーに細かい仕様の違いや改善された部分があって戸惑うことがあったりします。
例えばこちら。
バトルコマンドの開始条件「敵キャラのHPが○○%以下」は
同時に倒さないと復活する敵を作ったり
HPが減るとパワーアップする要素を入れたりといろいろと便利なんですが
ツクール2000ではこの「敵のHPの%」は小数点以下を切り捨てており
敵のHPが0.99999……の場合もイベントが起こるようになってしまっているんですね。
なので「この敵を倒したらイベントを起こそう」と思って敵のHP0%を開始条件にしても
状況によっては「倒してないのにイベントが起こる」ということがあり得ます。
毒ダメージでHPが1になった時などはほぼ確実に発生します。
これを防ぐためには変数にHPを代入するなどの方法がありますが
そうなると今度は開始条件に変数=がないという仕様が襲いかかってきます。
まるで嫌がらせのように「変数○○以上の時」はあります。
というわけで過去のツクールでは厳密にやるのは面倒くさかったんですが
つい先日「あれ?」と思って数値をいろいろいじって調べたところ
少なくともVXAceでは0%は0%としてしっかり計算してくれることを確認しました。
知らなかったそんなの……。
いやーついつい2000からの流れで律儀に変数代入してましたよ。
少なくともこの点についてはいつの間にか改善されていたと言えるんじゃないでしょうか。
ちなみにバトルイベントの開始条件に「変数が○○の時」を指定することは
VXAceはおろか最新作のMZですら出来ません。
むしろ設定項目が減っています。なんでやねん。
と思わず叫びたくなりましたが
結局はスクリプトに適当な処理を挟み込むことで解決させました。
(例えば戦闘行動のたびにコモンイベントを発動させれば常時HPを監視出来ます)
ここまで長々と書いておいて最後はスクリプト頼りというのは
何とも本末転倒感がありますが使えるものは使っておくのです。はい。