【ウディタ】ダッシュコモン(バグ防止付) 配布

コモン配布

「主人公の動作指定が正しく動かなくなるバグ」が出ないダッシュコモンを作りました。

ダッシュコモンでできること

[ Shift ]または[ C ]を押しながら方向キーを押すと主人公がダッシュし、離すと歩く(元の速度に戻る)ようになります。

バグ? 何それ? という方は↓をお読みください。流し読みする程度で構いません。

ダッシュコモンについて

概要

主人公のダッシュを手動で有効/無効化できるダッシュコモンです。
※イベント中にダッシュコモンを無効化することによって、主人公の動作指定をダッシュコモンが邪魔して動かなくなるのを防ぐことができます。

コモンの構成

当コモンは

ダッシュ有効/無効化コモン
┗ダッシュコモン(常時並列)

の2つで成り立っています。

ダウンロード

使い方

お好きな場所にコモンを入れてください。導入していただくだけで主人公が走るようになります。

配置における注意点

『ダッシュ有効/無効化コモン』の真下に『┗ダッシュコモン(常時並列)』を置かないと正しく動きませんので、コモンの順序を入れ替えないでください。

このダッシュコモンは走らせるだけでなく、キー入力によるダッシュを無効化することもできます。滑る床の上を移動するとき、ケガをして走れないなどの演出時に役立ちます。

『ダッシュ有効/無効化コモン』をお好きな場所で呼び出してください。

有効…ダッシュを有効化します。Shiftキーを押すと主人公が走ります。(デフォルトは有効)
無効…ダッシュを無効化します。Shiftキーを押しても主人公が走らなくなります。

主人公の動作指定バグを防ぐ方法

さきほど紹介した記事で説明したバグを防ぐためには、『主人公の動作指定』を含むイベントの先頭と終わりに『ダッシュ有効/無効化コモン』を挟んでください。(下の図にならって配置してください。)

イベント開始時に『無効』、イベントが終了したら『有効』にします。

複数のマップ/コモンイベントを介して途切れなく強制イベントが続く場合においても、その強制イベントの始めと終わりにのみ『ダッシュ有効/無効化コモン』を呼び出していただければ問題ありません。

また、イベント内に主人公の動作指定を含まない場合は、ダッシュコモンを無効化しなくてOKです。

注意点

動作指定がうまくいかなくなる例

このように、イベント終了直前の主人公の動作指定を『完了までウェイト』にしていない場合、動作指定がうまく動かなくなります。(ダッシュコモン内の動作指定が、イベントの動作指定に干渉してしまうため)
この場合は動作指定の『動作完了までウェイト』にチェックを入れるか、処理にかかる時間分のウェイトをダッシュを有効化する前に挟んでください。

小話

主人公の動作指定があるたびにダッシュコモンを有効/無効にするのって、正直面倒じゃないですか。実は手動の切り替えがほぼ不要なコモンは、作ろうと思えば作れます。

私が試行錯誤したところ、システム変数13番の『イベント実行中?』を使ってイベントの有無を判定し、イベント中はキー入力による速度変更ができないようにすれば、いちいち有効/無効と切り替える必要のないコモンができます。

ただしそのコモン、イベント開始時にウェイトなしでいきなり主人公の動作指定が来る場合に限り、イベントの先頭に1フレーム挟む必要があるんですよ。

『移動速度をデフォルトに戻す処理』と『Ev内にある主人公の動作指定』の干渉を防ぐためなのですが、「どんな場合に1フレーム挟む必要があるか?」を理解していただかないと使えない代物であり、それを上手く説明できる自信がなかったので、今回は配布を控えさせていただきました。

ご興味のある方は、ご自身で作ってみるのもアリかと思います。