2015年11月06日

マップイベントが表示中の画像名は何かを知る方法


ぼくが作った鏡コモンはパーティーメンバーを映せませんでした。
その理由は2つくらいあります。
まず「パーティーメンバーにもマップイベントIDが割り振られている」ことをぼくは知らなかったこと。
そして何より「マップイベントが表示中の画像名を知る方法」があるとは知らなかったこと。
まあ仮に知っていたとしても、意欲が尽きて作れなかった公算が大ですが・・・。

非常に複雑なコモンをコツコツ作って完成させ、鏡コモンの機能を飛躍的に拡張してくださったソフトニシンさんには感謝してもしきれません。
ソフトニシンさんはコモンをもちろん公開され、参考にすることを推奨してくださっているので、ここに自分のメモ的な意味も込めてまとめておきます。

マップイベントが現在表示中の画像名を知る方法。
これこそが、ソフトニシンさんが公開してくださった鏡コモン2種のキモとなる部分です。
個人的にそう思ってます。

コモン自体は本当に長い長いものですが、それはほんの3行です。

■変数操作: CSelf15 *= 10 + 0
■変数操作: CSelf15 += 9100009 + 0
■文字列操作:CSelf7 = 位置[CSelf15]の文字列

たったこれだけ。
コモンセルフ15番に、画像名を知りたいマップイベントのIDを入れます。
そしてこの3行を実行すれば、コモンセルフ7番に歩行グラなどの画像ファイル名が返されます。

なんでそんなことになるんだ〜。
というのは悩んでも仕方ないので、これはどうやらありのままを素直に受け入れるのがいいようです。
ぼくが今まで作ったコモンでいうなら、階段の上り下りするコモンでも、主人公の表示高さを変更するのにこれと似た機能を使いました。
とにかく変数呼び出し値はただ者ではないとしか言いようがありません。

しかもこの3行のすごいところは、返ってくる画像名がその時点での最新情報だということです。
ページ切り替えや起動条件を満たさなくなるなどでそのマップイベント画像が消えた時、返される文字列はちゃーんと空白になります。
なんて便利なんでしょう!

ぼくが現在作っているゲームでは、主人公の前方隣接ますにいるマップイベントに対して、決定とはまた別のキーを使って決定とはまた別のアクションをするということを実装しています。
キー判定自体は基本システムの「歩行時並列処理」を流用してキー入力だけ変更したらできたのですが。
ただ、キーを押したときに前方にマップイベントがあったら反応するとした場合、キャラグラを表示していないイベントに対しても起動してしまうので困っていました。
そこでこのソフトニシンさんが使われていた方法を思い出したわけです。

この3行を実行して帰ってきた文字列が、
””(空白)と同じなら
マップイベント画像は表示されていない。
それ以外なら
マップイベント画像は表示されている。

そういうことが分かります。あー助かったー!
ソフトニシンさん、ありがとうございます!


あ、ちなみに、ぼくが知らなかったもう一つのこと、パーティーメンバーのマップイベントIDは何番なのかということですが・・・。
ここをお読みのみなさん、知りたいですよね?どうです?
(ぼくの想像では7割の方が興味ない、1割の方がもう知ってる、2割の方が知りたい、くらいかな?)
まあ、そこまで何もかも書いてしまうのもソフトニシンさんに気が引けるし、それはぜひ立ち鏡コモンなどをDLして確認してもらえたらと思います。
コメントでしっかり説明を入れてくれてるので、とても分かりやすくて勉強になります。
posted by じゃ。 at 23:16| Comment(1) | 雑文 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
この記事をアップしたらすぐにソフトニシンさんから連絡をもらいました。

パーティーメンバーのマップイベントIDは、ウディタの公式マニュアルに載っていますよ、とのこと。
そんなことも知らず、もったいぶったことを書いて、お恥ずかしい限りです・・・。
Posted by じゃ。 at 2016年03月10日 15:32
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: