ジャンプアクション

マップシーンをそれっぽいアクションゲームにします。



サンプルプロジェクト(ダウンロード版)
暗号化していないので、エディタで中身を確認することができます。
データベースやイベントの設定例として参考にしてみてください。
zip形式で18MBほどあります。

プラグインのダウンロード
こちらからプラグイン単体のダウンロードができますが、必要な画像等が
含まれていないため、初めて利用するかたは上にあるサンプルプロジェクトを
ダウンロードしてください。

動作に必要なもの

プラグインファイル(TMJumpAction.js)以外にも必要なものがあります、
これらはすべてサンプルプロジェクトに含まれています。
また、プラグインパラメータの設定によっては必要なものが増える場合があります。

img/system/Bullet1.png
 弾として使用する画像ファイルです。
 プラグインパラメータで使用するファイルを変更することができます。

img/system/TMJumpActionShield.png
 防御アクションで使用する画像ファイルです。

併用可能プラグイン

TMJumpAction.jsはツクールMVの機能を大きく変更するプラグインです。
他のプラグインを併用する場合、エディタのプラグイン管理画面での並び順が
ジャンプアクションよりも下になるように追加してください。

以下は動作確認済みの併用可能なプラグインです。
ビットマップ拡張(TMBitmapEx.js)
マップHPゲージ(TMMapHpGauge.js)
コモンイベントキー(TMCommonEventKey.js)
アイテムショートカット(TMItemShortCut.js)
ボスHPゲージ(TMBossHpGauge.js)
ログウィンドウ(TMLogWindow.js)

操作方法

← / →: 移動
↑ / ↓: はしご移動
↓(長押し): 防御
Z: 攻撃 / 投げる
↓+Z: 持ち上げる
X: ジャンプ
C: ダッシュ
Q / W: アクター変更
Enter / Space: 決定 / 話す(調べる)
Esc / Num0: キャンセル / メニューを開く

攻撃

Z キーを押すことで弾を発射し、弾が当たった相手にダメージを
与えることができます。

操作キャラクターの shot_way タグの合計値が 0 以下の場合は
弾を発射することができません。

プラグインパラメータ『weaponSprite』がON(true)の場合、攻撃時に
武器の画像が表示されます。
この機能と合わせて、弾の飛距離を短くし、透明の弾画像を適用することで
近距離攻撃を表現することもできます。

防御

操作キャラクターの guard_speed タグの合計値が 1 以上の場合に
↓を押し続けることで防御アクションを実行できます。
合計値が高いほど必要な入力時間が短くなります。
合計値が 0 以下の場合は、いくら↓を押し続けても防御アクションは実行されません。

防御アクションの実行中は防御ステートが付加され、移動速度が低下します。
↓入力をやめると防御アクションも解除されます。
付加されるステートと移動速度の補正率はプラグインパラメータで変更できます。
防御ステートに自動解除が設定されている場合、↓を押し続けていても
定期的にステートが解除されてしまいます、自動解除のタイミングは なし に設定してください。


以下の状況では防御アクションが実行されません。
・ジャンプ中
・はしご移動中
・持ち上げ中
・泳ぎ中
・攻撃後の再攻撃不可時間中
・ダッシュ後の再ダッシュ不可時間中

ダッシュ

C キーを押すことで素早く移動することができます。

ダッシュの効果時間中に自分よりも軽い(weight タグの合計値が低い)相手に
ぶつかることで、相手をはじき飛ばすことができます。

はじき飛ばしによるダメージの計算式として使用するスキルは
プラグインパラメータで変更できます。

持ち上げ&投げ

相手の上に乗った状態で↓を押しながら Z キーを押すと相手を
持ち上げることができます。

ただし、持ち上げ力(carry_power タグの合計値)が相手の重さよりも
低い場合は持ち上げることができません。

持ち上げた後、再び Z キーを押すと相手を投げます。
このとき、どの方向にキー入力があるかで投げ方が変化します。
↑+Z: 上方向へ投げる
↓+Z: 向いている方向へ弱く投げる
Z: 向いている方向へ強く投げる

メモ欄タグ(アクター、装備、ステート)

アクション用のパラメータ(ジャンプ力など)はメモ欄を使って設定します。
たとえば、アクターのメモ欄に <jump_speed:0.1> と書き込んだ場合は
そのアクターのジャンプ力が 0.1 に設定されます。

武器と防具、ステートにも同様のタグを書き込むことができ、最終的なパラメータは
装備や付加されているステートに設定されている値をすべて加算したものとなります。

また、アクターにタグがなかった場合には自動的に初期値が設定されます。
(以下、数値はタグがなかった場合の初期値)

<move_speed:0.05>
 ← / → による移動の最高速度を設定します。

<accele:0.003>
 ← / → による移動の加速度を設定します。
 この値が低いと、キー入力が移動速度に反映されるまでの時間が長くなります。
 

<jump_speed:0.14>
 X によるジャンプの初速を設定します。

<jump_input:0>
 X によるジャンプが重力の影響を受けずに初速を維持する時間を設定します。
 たとえばこの値が 20 の場合、X キーを押し続けることで 20 フレームの間は
 減速せずに上昇し続けることができます。
 ジャンプの高さをキー入力で調節したい場合に設定してください。

<ladder_speed:0.04>
 はしごで ↑ / ↓ による移動をする際の最高速度を設定します。

<ladder_accele:0.003>
 はしごで ↑ / ↓ による移動をする際の加速度を設定します。
 この値が低いと、キー入力が移動速度に反映されるまでの時間が長くなります。

<swim_speed:0.02>
 水中で ← / → による移動をする際の最高速度を設定します。

<swim_jump:0.1>
 水中で X によるジャンプをする際の初速を設定します。

<dash_speed_x:0.14>
 C によるダッシュ移動の初速(横方向)を設定します。

<dash_speed_y:0.03>
 C によるダッシュ移動の初速(縦方向)を設定します。

<dash_count:15>
 C によるダッシュの持続時間を設定します。

<dash_delay:30>
 C によるダッシュ開始から次にダッシュが可能になるまでの時間を設定します。

<dash_mp_cost:0>
 C によるダッシュ使用時に消費するMPを設定します。
 この値が 1 以上のとき、残りMPが不足していればダッシュが使用できません。

<mulch_jump:1>
 X によるジャンプを着地せずに何回連続で実行できるかを設定します。
 2 以上の値を設定することで、いわゆる空中ジャンプが可能になります。

<wall_jump>
 X によるジャンプ後、隣接する壁の方を向いて再度 X を押すことで
 さらに高くジャンプする、いわゆる壁ジャンプができるかどうかを設定します。

<gravity:0.0045>
 重力(下方向への加速度)を設定します。

<weight:0>
 C によるダッシュでどれだけ重い相手まではじき飛ばせるかを設定します。

<carry_power:0>
 ↓+Z による持ち上げがどれだけ重い相手にまで実行可能かを設定します。
 この値が相手の重さ以上なら持ち上げが可能となります。

<fall_guard:0>
 落下ダメージ(高所から落ちた際に受けるダメージ)の軽減率を設定します。
 この値が 50 ならダメージ半減、100 の場合は落下ダメージの処理自体を無視します。

<guard_speed:0>
 ↓を押し始めてから防御状態になるまでの速さを設定します。
 値が 10 なら約 1 秒、20 なら約 0.5 秒となります。
 0 の場合は防御アクションが使用できません。

<invincible_time:30>
 弾に当たった後の無敵時間を設定します。
 この値が 30 の場合、当たった瞬間から 30 フレームの間は弾に当たっても
 ダメージを受けません。

<shot_way:0>
 Z による攻撃で同時に発射される弾の数を設定します。

<shot_space:0.2>
 Z による攻撃で同時に発射される弾同士の間隔(角度の差)を設定します。
 単位はラジアンで、3.141592 を設定すると 180度の差になります。
 shot_way の値が 1 以下の場合、このパラメータは無視されます。

<shot_speed:1.0>
 Z による攻撃で発射された弾が移動する速度を設定します。

<shot_count:30>
 Z による攻撃で発射された弾が消えるまでの時間を設定します。

<shot_delay:10>
 Z による攻撃後に、再度攻撃が可能になるまでの時間を設定します。

<shot_type:1>
 Z による攻撃で発射される弾のタイプを設定します。
 タイプごとの違いはプラグインパラメータで設定することができます。
 この値は加算されず、ステート>装備>アクターの順で最初に見つかったタグを採用します。

<shot_index:0>
 Z による攻撃で発射される弾の画像インデックスを設定します。
 0 なら画像の左端のもの、値が 1 増えると画像も右へひとつずれていきます。
 この値は加算されず、ステート>装備>アクターの順で最初に見つかったタグを採用します。

<shot_skill:0>
 Z による攻撃のダメージ計算に使用するスキルを設定します。
 この値が 0 の場合、通常攻撃の計算式が採用されます。
 この値は加算されず、ステート>装備>アクターの順で最初に見つかったタグを採用します。

<shot_se_name:Wind1>
 Z による攻撃の効果音のファイル名を設定します。
 この値は加算されず、ステート>装備>アクターの順で最初に見つかったタグを採用します。

<shot_se_volume:90>
 Z による攻撃の効果音の音量を設定します。
 この値は加算されず、ステート>装備>アクターの順で最初に見つかったタグを採用します。

<shot_se_pitch:100>
 Z による攻撃の効果音のピッチを設定します。
 この値は加算されず、ステート>装備>アクターの順で最初に見つかったタグを採用します。

メモ欄タグ(イベント)

イベントのメモ欄にタグを書き込むことで当たり判定を変更したり、
敵キャラクターとしてのパラメータを設定することができます。

メモ欄ではなく、イベント実行内容の先頭にある注釈コマンドにタグを書き込むことで
ページごとに異なったパラメータを設定することができます。
メモ欄と注釈の両方に同じタグがある場合、注釈の方が優先されます。

<w:0.375>
 当たり判定(中心から左右の端までのサイズ)を設定します。
 1.0 が 48ドット に相当します、幅が 96ドット のキャラクターを
 左端から右端まで全体に当たり判定をつけたい場合は 1.0 に設定してください。
 中心から左に1.0(48ドット)+右に1.0(48ドット)で実質2.0(96ドット)になります。
 このタグはアクターのメモ欄でも利用できます。

<h:0.75>
 当たり判定(足元から頭までのサイズ)を設定します。
 1.0 が 48ドット に相当します、高さが 96ドットのキャラクターを
 足元から頭まで全体に当たり判定をつけたい場合は 2.0 に設定してください。
 このタグはアクターのメモ欄でも利用できます。

<enemy:1>
 エネミーの番号を設定します。
 イベントのHPや弾の攻撃力などは、このタグで設定したエネミーの
 パラメータによって決定されます。

<dead:A>
 このイベントが戦闘不能になった際にオンになるセルフスイッチを設定します。

<repop:300>
 dead で指定したセルフスイッチがオフになるまでの時間を設定します。
 ページ 1 に通常状態、ページ 2 に戦闘不能状態を作成する場合、
 メモ欄に dead と repop を書き込み、ページ 1 の注釈に enemy タグを
 書き込んでください。

<lift>
 イベントにリフト属性を付加します。
 リフト属性をもつイベントを移動させると、上に乗っているイベントやプレイヤーも
一緒に動かすことができます。

<weight:0>
 C によるダッシュはじき、↓+Z による持ち上げの耐性となる重さを設定します。

<gravity:0.004>
 重力(下方向への加速度)を設定します。

メモ欄タグ(スキル)

主に Z による攻撃の弾の挙動を細かく設定するために書き込みます。

<bullet_anime:67>
 着弾時に再生するアニメーション番号を設定します。
 このタグがなければアニメーションは表示されません。

<map_through>
 弾が地形を貫通するかどうかを設定します。
 このタグがある場合、通行不可のタイルと接触しても弾が消えなくなります。

<map_reflect>
 弾が地形と接触した際に跳ね返るかどうかを設定します。
 このタグがある場合、通行不可のタイルと接触しても弾は消えず、
 跳ね返るように移動し続けます。

<gravity:0.004>
 弾に重力(下方向への加速度)を設定します。

<time_bomb 6 0 0.2 45 1 0 1>
 弾が時間切れで削除される際に新しい弾を発射します。
 このタグにはプラグインコマンド『nallShot』の n ~ skillId まで、
 計 7 つの値を半角スペースで区切って設定してください。

イベントコマンド

一部のイベントコマンドはジャンプアクション用に挙動が変更されています。

移動ルートの設定◇ジャンプ
 オフセットの X の値が横方向の移動量になり、Y の値がジャンプ力になります。
 X の値が 0 の場合はその場でジャンプする動作になります。
 Y の値が 0 の場合はそのイベントに設定されているジャンプ力でジャンプします。
 上方向へジャンプする場合は Y の値を 0、または負の値に設定してください。

プラグインコマンド

イベントコマンド『プラグインコマンド』で実行することにより
ジャンプアクションに関わるパラメータを取得、変更することができます。

actGainHp -1 -5
 プレイヤーに 5 のダメージを与える。

actGainHp 1 -100
 イベント 1 番に 100 のダメージを与える。

actHp 1 2
 イベント 1 番のHPをゲーム変数 2 番に代入する。

actForceX -1 0.1
 プレイヤーの横方向の速度を 0.1 に強制変更する。

actForceY 1 -0.15
 イベント 1 番の縦方向の速度を -0.15 に強制変更する。

actForceStop -1
 プレイヤーの速度を縦横ともに 0 に強制変更する。

actChangeActor 2
 操作キャラクターをアクター 2 番に変更する。
 (指定したアクターがパーティにいない、または戦闘不能のときは無視されます)

actHideHpGauge
 足元HPゲージを隠す。

actShowHpGauge
 足元HPゲージを表示する。

マップ作成

マップを新規に作成した直後の空白部分は通行不可ですので、
最初に透明かつ通行可能なタイルで塗りつぶしてください。

横方向、縦方向ともにループマップには対応していません。

はしご

はしごの一番上を床に重ねるような設置を想定しています。
床に重ねる部分のはしごは、4方向通行設定で下だけを通行不可にしてください。


リフト

メモ欄あるいは実行内容の一番上にある注釈コマンドに <lift> タグが
書き込まれているイベントはリフトとして扱われます。

リフトは他のキャラクターと接触しても止まらず、相手を押して進み続けます。
また、リフトの上に乗っているキャラクターはリフトと一緒に移動します。
リフトと壁にはさまれた場合、予期せぬ場所へ移動させられてしまうことがあります。

プレイヤーのダッシュはじきでリフトの移動ルートを狂わせることができます、
これを防ぎたい場合はリフトの重さをプレイヤーよりも大きく設定してください。

地形との接触判定

このプラグインは地形を真横からではなく、若干上から見下ろすような
イメージで調整しているため、通行不可タイルよりも浮いた位置に
プレイヤーやイベントが着地するようになっています。

どれだけ浮かせるかはプラグインパラメータ『tileMarginTop』で
設定することができます。真横からの視点に近づけたい場合は
この値を 0 に変更してください。

パッドボタン配置

コモンイベントキー(TMCommonEventKey.js)を併用して追加したキーを
ゲームパッドに登録したい場合は以下のように設定してください。
 D キーを追加したい場合
 ・プラグインパラメータ『padButtons』に commonKeyD を追加する
 ・プラグインパラメータ『padButtonNames』に ボタンの名前 を追加する
他のキーを追加したい場合は、commonKeyD の D の部分を変えてください。

アイテムショートカット(TMItemShortCut.js)を併用して追加される呼び出しキーを
ゲームパッドに登録したい場合は以下のように設定してください。
 ・TMItemShortCut.js側の呼び出しキーをジャンプアクションと重複しないキーに設定する
 ・プラグインパラメータ『padButtons』に shortCut を追加する
 ・プラグインパラメータ『padButtonNames』に ボタンの名前 を追加する
padButtons には呼び出しキー設定に関わらず shortCut を追加してください。

その他の仕様

足踏み速度の計算式
 足踏みアニメ 1 コマのフレーム数 = ( A - 移動速度 - C ) * B
 A = プラグインパラメータ『stepAnimeConstantA』の値
 B = プラグインパラメータ『stepAnimeConstantB』の値
 C = ダッシュ状態なら 0.01、そうでないなら 0
 ゲーム内の最高移動速度に合わせて調整してください。

更新履歴

2017/07/28 ver1.0.1
・足踏みアニメの 1 コマのフレーム数を調整する機能を追加
・オプション項目『パッドボタン配置』を無効化する機能を追加
・ダッシュにMPコストを設定するタグを追加
・イベントのダメージ効果音が正しく再生されない不具合の修正

2017/07/21 ver1.0.0
・アクション系の拡張プラグインを本体に統合
・防御アクションの追加
・投げアクションに方向キー入力によるバリエーションを追加
・足元HPゲージの追加
・跳弾、爆発する弾、重力の影響を受ける弾を追加
・その他、細かい機能追加と不具合修正、一部コマンド名変更

◆ジャンプアクション(本体)
2017/01/12 Ver0.41b
・移動コマンド 左下に移動 / 右下に移動 / 左上に移動 / 右上に移動 の 4 つに対応。
2016/03/08 Ver0.4b
・プライオリティとすり抜けの仕様を変更(ツクールMVの元々の仕様に近いものに変更)
 プライオリティが『通常キャラと同じ』のもの同士でのみ移動干渉が発生します。
 すり抜けをオンにすると地形の干渉を受けません。
・移動する接触起動イベントとの接触時にエラー落ちする不具合を修正
・wタグ、hタグをアクターのメモ欄に対応
・イベントコマンド『移動ルートの設定』◇ジャンプの仕様を変更
 オフセットのYの値の正負によって挙動が変化するようになりました。
・メニュー操作で攻撃ボタンとジャンプボタンを使えるようにする設定を追加
・プラグインコマンド force_stop を追加
2016/01/19 Ver0.3b
・バトラーイベント撃破時に経験値、お金、アイテムを獲得する機能を追加
・バトラーイベントにリポップ機能を追加
2015/11/13 Ver0.2b
・すべる床、移動速度半減の床、移動できない床リージョンを追加
 (この関係でメモタグから<friction>を削除しました)
・パーティメンバー不在の際にエラー落ちする不具合を修正
・細かな不具合の修正
2015/11/06 Ver0.13b
・ダッシュによるはじき飛ばしにスキルを設定する機能を追加
・細かな不具合の修正
2015/11/03 Ver0.12b
・拡張プラグイン シューティングに対応
2015/11/02 Ver0.11b
・プラグインコマンドの追加
・イベントページごとにアクションパラメータを設定する機能を追加
・細かな不具合の修正
2015/10/30 Ver0.1b
・初期バージョン公開

◆落下ダメージ
2015/11/02 Ver0.11b
・着水時に落下ダメージがリセットされない不具合を修正
2015/10/30 Ver0.1b
・初期バージョン公開

◆シューティング
2015/11/13 Ver0.2b
・細かな不具合の修正
2015/11/06 Ver0.11b
・弾発射時に武器グラフィックを表示する機能を追加
・効果音設定をプラグインパラメータからメモタグへ変更
・shot_delayタグが正しく動作していない不具合を修正
・ダメージポップアップのMissとクリティカル演出を追加
2015/11/03 Ver0.1b
・初期バージョン公開

◆持ち上げ
2015/11/13 Ver0.2b
・細かな不具合の修正
2015/11/06 Ver0.1b
・初期バージョン公開

◆HPゲージ
2016/01/19 Ver0.3b
・細かな不具合の修正
2015/11/13 Ver0.2b
・細かな不具合の修正
2015/11/06 Ver0.11b
・プレイヤーと重なったとき半透明になる機能を追加
・加入直後の仲間の顔グラフィックが表示されない不具合を修正
2015/11/04 Ver0.1b
・初期バージョン公開

◆ログウィンドウ
2016/01/19 Ver0.1b
・初期バージョン公開

◆アイテムショートカット
2016/06/30 Ver0.12b
・プラグインコマンドが動作しない不具合の修正
2016/03/08 Ver0.11b
・細かな不具合の修正
2016/01/19 Ver0.1b
・初期バージョン公開

◆パッドコンフィグ
2015/11/16 Ver0.1b
・初期バージョン公開