開発日誌

プラグイン/スクリプト

[ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 重要語句の色を変える

2020-07-21 01:19:33

メッセージの中でキーワードとなる言葉――人名やアイテム名などは、色を変えて目立たせてやると、プレイヤーが見落としにくくなるので親切です。

特殊文字の\C[n]で文字色の変更ができるので、キーワードの手前で特定の色に変更し、その後で元の色に戻してやれば、標準でも特に難なく実現可能です。

しかし、何番が何色なのか分からなくなったり、後で色を戻し忘れたりで、実際にやるとなるとけっこう面倒くさいし、間違えやすいです。

というわけで、特殊文字を拡張して、重要語句の文字色変更を簡略化するスクリプトを作りました。

相変わらずRPGツクールVX用ですが、VX Aceでも多少の修正で動くようになるはずです。やっていることは単純なので、MVでも同様にプログラムを組めば動作すると思います。

「文章の表示」の中で、 <●テキスト> のようにテキストを <● > で囲むと、その部分の文字色を手軽に変更することが可能です。

●には語句の種類に合わせてアルファベット1文字が入り、以下に対応させています。

<N > 人名
<P > 地名
<E > モンスター名
<I > アイテム名
<S > スキル名
<K > その他の重要語句(なんでKにしたのかは忘れた)

これによって、人名は赤色、アイテム名は黄色のように、タイプに応じて色を変えることができるので、よりいっそう分かりやすくできます。

色はスクリプトの中の\x01[3]などの数字を変えればOKです。また同様にすれば、新たな語句タイプを設定することも可能です。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ 天下御免!からくり屋敷 ] [ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] [ ツクール情報 ] 正しい蘇生術

2018-08-12 01:35:53

お久しぶりです!

続編の制作を始めると、既存部分に不具合があっても修正が困難になるので、心ゆくまで修正しようとしています。

敵が蘇生方術を使ってくる際に、複数の死亡者がいたとしても、必ず先頭の死亡者を蘇生させてくるような気がしていました。ランダムで選ばれるはずなのにおかしいな、と思っていろいろ調べてみた結果、プリセットスクリプトの不具合であることが分かりました。

Game_BattleActionのdecide_random_targetメソッドにおいて、対象が味方単体(for_friend?)ならば(生存中の)味方からターゲットをランダムに決定、対象が戦闘不能の味方単体(for_dead_friend?)ならば戦闘不能の味方からランダムに決定、としているのですが、for_friend?にはfor_dead_friend?の場合も含まれるので、この判定順序では対象を戦闘不能の味方にしていても、通常の味方単体で選ばれてしまいます。

というわけで、判定の順序を入れ替えたら、蘇生対象がちゃんとランダムに選ばれるようになりました。

また、蘇生や途中で仲間を召喚する際に、アニメーションが表示されていないことに気付きました。蘇生や召喚した時点では、まだ対象が非表示の状態になっているため、アニメーションも表示されないのだろうと思って諦めていたのですが、修正の仕方が分かったので、ちゃんと表示されるようにしました。

今さらVX用のスクリプトに、どこまで需要があるのか分かりませんが、修正版のスクリプトを公開します。

蘇生対象者の選択修正は、Game_BattleActionのdecide_random_targetメソッドを直接書き換えています。また、アニメーションの表示はSprite_Battlerに親クラスであるSprite_Baseのanimation_set_spritesメソッドを継承して追加定義しています。この辺りに関わる改変スクリプトを入れている場合は、競合で正常に動作しない可能性がありますので、ご注意ください。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

[ 天下御免!からくり屋敷 ] [ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] [ ツクール情報 ] 画面全体アニメーションの不具合修正

2017-10-29 16:44:30

RPGツクールVXのプリセットスクリプトのバグというか仕様として、アニメーションの基準位置が「画面」に設定されていても、対象となるキャラクターの分だけアニメーションが表示される、というものがあります。

単に重なって表示されるだけなので、実害がないと言えばないのですが、透明度を設定している場合は、重なっている分だけ濃く表示されてしまうため、気になると言えば気になります。

これまでは、EnDlEss DREamERさんの「アニメーション軽量化」を参考に、全体アニメーションの場合は最初の1体分だけを表示するようにしていたのですが、これだと今度は、対象のフラッシュが最初の1体にしか反映されないため、全体技なのに単体技のように見えてしまうという点が気になっていました。

というわけで、いろいろいじって、アニメーションは1体分だけ、ただし対象のフラッシュは対象者ごとに全部反映させる、というスクリプトを作ったので公開します。今さらVX用のスクリプトに、どこまで需要があるのかは分かりませんが……。

晴れて敵全体がフラッシュするようになった

問題なく意図通りに動作しているはずですが、アニメーションの仕様はいまいちよく把握していないので、思わぬエラーが潜んでいる可能性があります。また、なるべくaliasを用いた追加定義にしていますが、アニメーション周りの改変スクリプトを入れている場合は、競合で正常に動作しない可能性がありますので、ご注意ください。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

いやー、それにしても、この1ヶ月で相当制作が進みました。最初からこのペースで進めていれば、とっくの昔に完成していたものを……!

[ 天下御免!からくり屋敷 ] [ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 経験値増減アイテム作成スクリプト

2014-04-09 00:01:31

3月はアイテムやモンスターの整理で、あまり制作が進みませんでした。

その代わりと言っては何ですが、その過程で新しく作ったスクリプトをシェアします。

その名の通り、経験値を増減させるアイテムを実装するスクリプトです。

経験値の増減はコモンイベントを使ってもできるのですが、対象者を選ぶところがスマートにはいかないため、スクリプトにしてみました。VX用となります。

対象となるアイテムのメモ欄に、

PANDA::ExpPoints = n

と記述すればOKです。nには増減させたい数値が入ります。減らすことはあまりないかと思いますが、マイナスの数値を入れることも可能です。HPが満タンの時にHP回復が使えないのと同様に、経験値が上限に達している場合は使用できないようになります。

メニューでの使用が前提なので、レベルアップ時のメッセージなどは表示されません。ただ、レベルアップで新しいスキルを覚える場合など、そのメッセージも表示されないので、その辺りはもう一工夫する必要があるかもしれません。『天下御免!からくり屋敷』では、レベルアップでスキルを覚えることはないので、気にしていないのですが…。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。

それでですね、その経験値を増加させるアイテムとして、桃・栗・柿の3種類を用意したのですが、素材集にある柿以外の、桃と栗のアイコンで、綺麗なのをご存知の方がいたら、ぜひ教えてください。

自力で(玉ネギを改造して)描いてみたんだけど、どうしてもきれいにならないの…(;;)

[ 天下御免!からくり屋敷 ] [ テクニック ] [ 素材 ] [ プラグイン/スクリプト ] 全員攻撃スクリプト

2013-09-23 16:33:26

制作は再開したものの、半年も中断していたので、なかなか調子が戻らない…。

1日1セリフという超スローペースで、途中になっていたイベントの一つを、なんとか完成させました。

今回作ったのは、「全員攻撃」の戦闘コマンドが解禁されるイベントです。「全員攻撃」とは、パーティー全員が先頭の敵に通常攻撃を行うコマンドです。要するに、決定キーを連打するのと同じ効果が得られます。

そんな便利なコマンドなら、イベントで解禁じゃなくて、最初っから使えるようにしとけよ、って感じですが、個人的に戦闘は、何も考えずにただただ殴りまくれば倒せる、というよりも、倒す順番を工夫したり、魔法を適宜使うことで、より効率的に倒せる、というバランスが好きなので、あまり通常攻撃連打に慣れてほしくなかったりします。

ただ、そうは言っても、明らかに格下の相手だったり、あと一撃で倒せる、という時には、全員攻撃があると便利なのは事実なので、途中のイベントで解禁されるようにしました。

このイベントを組み込むために、既にできあがっているマップの一部を、大きく作り替える羽目に…。

なお、この全員攻撃コマンドは、割と汎用性も高いと思われるので、スクリプトを公開します。今さらながら、VX用となりますので、ご注意を。

指定したスイッチがONになっている時に、戦闘のパーティーコマンドに「全員攻撃」が追加されます。

スクリプトの冒頭の、

PANDA_ALL_ATTACK_SWITCH = 1

となっている数字を、全員攻撃を解禁するスイッチ番号に変えてください。

特に解禁とかは必要なく、最初から使えるようにしたい場合は、スクリプトの条件式を改造するか、あるいは、最初の自動イベントで該当するスイッチをONにしてしまえばOKです。

質問やアドバイスなどはコメント欄まで、お気軽にどうぞ。素材利用条件などについては、このサイトについての「提供素材について」の項目などをご覧ください。