GOREとにゃんこの桃源郷

主観的にCDのレビューやら、日記やら、色々と。
ゴアとかメタルとかロックとか

2013.07.24 - Torsophobia

2013-07-26 | RPGツクールMZ,VXace,VX,2000,95,1~5

 またもや、久方振りにRPGツクールVXaceにてツクリングの日々だ。つい先日、高齢者4人が魔王退治をする短編RPGが完成したため、相も変わらず"つんぽこ劇場"に取り掛かった。そこで今回は、BlueRedZone様提供の、暦システムを試してみた。イベントで作る場合と異なり、マップ移動時など、自動的に色調が変化してくれるため、非常に重宝しそうだ。カスタマイズ項目も多々あり、とても利便性に富む作りだ。中でも、SPECIAL_EXPという設定項目で、曜日の概念を設定することも可能なので、早速実践してみた次第だ。デフォルトの時間概念が、12月、30日、24時間、という構成で固定されている。つまり、現在の月に関わらず、30日周期で月が経過するというゲームならではの仕様だ。よって、実際の曜日計算に比べて、かなり単純な式で曜日を求められるはずだ。ところが、数字に疎い私は、苦戦に次ぐ苦戦、苦難に次ぐ苦難、逆境に次ぐ逆境、血で血を洗って濯いで乾かして、考え抜いた結果、次の結果に落ち着いた。
((cal.mon * 30 + cal.day) - 30 + (cal.year * 360 - 360)) % 7
 最終的に7の乗除を行うことにより、0から6の結果が求められる。0を日曜、6を土曜とし、試してみると問題なく設定できていた。しかし、数字に疎いため、おそらくもっと合理的な式があるのだろう。よかったら教えて欲しい次第である。これを応用して、月齢の概念も取り入れられそうだが、そうなると、月齢によって夜の明るさを微調整する挙動を入れたい。こうした欲望の泉が、夢を夢として終わらせる、所謂座礁の原因に他ならない。欲を言えば、閏年なども含め、より現実的な動作にしたいものだが、スクリプトを読み解いたり改変するうちに、またツクールに飽きる可能性は計り知れないほど高い。だから今回は、これ以上は何もすまいと、そっとマウスから手を離す。

 そうそう、このたび載せた画像に関しては、装備画面だ。命中率や会心率の変化値も出るようにしたことは、以前書いた通り。今度の改変箇所は、アクターの顔画像を出していたところを、歩行グラにした。といっても足踏みしないし歩かないけど。また、根付(ストラップ)という装備部位を作成し、武器に取り付けることで、属性付加攻撃や会心率上昇などの効果を発揮するという設定を考えた。FF7のマテリアシステムも掠っているが、個人的には、PSPのクロニクルオブダンジョンメーカーから拝借している。
 今週末はまた海へ行く予定なのだが、どうやら天気がアレだし、気温が低そう、つまり寒そうだ。かといって、夏を逃しては海へ入ることも無い為、行かないという選択肢は考えられない。ないない打消し用法が増えることも、涼しい夏への不満ゆえか。何故、気温が35℃を超えないのか、大変に遺憾な夏である。

2013.07.26追記
 また、折角なので誕生日のシステムを実装した。いつもアクターの2つ名(@nickname)を使用しないため、其処に誕生日情報を入力しておく。メモ欄を使わない理由は、@actor内に@noteの情報が入っていなかったため。コードは次の通りだ。
change_color(system_color)
draw_text(x, y + line_height * 0, 180, line_height, "誕生日")
change_color(normal_color)
@actor.nickname.scan(/<誕生日s?(d+),(d+)>/)
draw_text(x, y + line_height * 1, 48, line_height, $1.to_i,2)
draw_text(x, y + line_height * 1, 70, line_height, "月",2)
draw_text(x, y + line_height * 1, 98, line_height, $2.to_i,2)
draw_text(x, y + line_height * 1, 120, line_height, "日",2)

 以上のコードを、ステータス欄に書き込むことで、各アクターの誕生日がゲーム中で参照可能となる。使い方は、まずコモンイベントから並列処理イベントを起動させる。ウェイトを適当に挟みながら、常に先述の暦システムから、月日を参照する。アクターの誕生日と一致した段階でプレゼントを貰うことが可能、という流れになる。の、だ、が、、、宿で日数が飛んだり、イベントで日数が飛んだ場合は、どうなるのだろう。その場合は、時刻経過イベントを月単位や日単位で経過させず、半日単位で何度かに分けて実行すれば問題無いはず。ここまで考えたので、とりあえず自分で試してみようと思う。


最新の画像もっと見る

コメントを投稿