プレイヤーとイベントに弾を発射する機能 – TMShooting.js

タイトル
プレイヤーとイベントに弾を発射する機能
作者名
ヘルプ
TMPlugin - シューティング ver1.3.5

使い方:

このプラグインを動作させるには、プレイヤーやイベントが発射する弾の画像
が必要になります。

弾画像は shootingBullet1.png というファイル名で img/system フォルダに
入れてください。ひとつのファイルには、横に8つ、縦に任意の数の弾画像を
入れることができます。
ファイル名の数字部分を変えて複数のファイルを使用することもできます、
サイズが違う弾、当たり判定が違う弾を作る場合など、必要に応じてファイル
を増やしてください。
shootingBullet8.png まで、最大 8 つのファイルを利用できます。

準備ができたらデータベースで武器のメモ欄に以下のタグを挿入します。
<shotWay:1>
<shotCount:45>
<shotSpeed:0.1>
<shotInterval:15>
<shotType:1>
<shotIndex:8>

この武器をアクターに装備させて、Aキーを押せば弾が発射されます。
弾が当たる敵イベントのメモ欄には <enemy:3> のようなタグを挿入します。
これでこのイベントに 3 番の敵キャラのパラメータが適用され、弾を当てて
HPが 0 になるとセルフスイッチ A がオンになります。

このプラグインは RPGツクールMV Version 1.5.1 で動作確認をしています。

このプラグインはMITライセンスのもとに配布しています、商用利用、
改造、再配布など、自由にお使いいただけます。


プラグインパラメータ補足:

bulletSizeTable
弾画像ファイルごとに当たり判定を設定します、初期設定の 6,6,6,6,6,6,6,6
は shootingBullet1.png ~ shootingBullet8.png までのすべての弾が、弾の
中心から半径6ドットの当たり判定をもつという設定になります。

bulletBlendTable
弾画像の合成方法を設定します、値と合成方法の対応は下記のとおりです。
( 0 = 通常 / 1 = 加算 / 2 = 乗算 / 3 = スクリーン )
bulletSizeTable と同様に弾画像ファイルの数だけ設定する必要があります。

useLevelUpMessage
弾による敵イベントの撃破で経験値を獲得した際に、アクターのレベルアップ
をメッセージウィンドウで表示するかどうかを設定します。
アクション要素が強いゲームでは非表示にすることをおすすめします。


プラグインコマンド:

startAutoShot
このコマンドが実行されるとプレイヤーキャラクターが自動的に弾を撃つよう
になります。この変更はパーティメンバーにも適用されます。

stopAutoShot
このコマンドが実行されるとプレイヤーキャラクターの自動射撃が止まります、
この変更はパーティメンバーにも適用されます。

nwayShot 3 0.4 0 0.1 60 1 3 1
このコマンドを実行したイベントが弾を発射します、コマンド名に続く数値は
左から 弾数、間隔、角度、速度、寿命、タイプ、インデックス、スキル番号
となります。
タイプが 1 で、インデックスが 3 なら、弾画像として shootingBullet1.png
の最上段、左から4つ目を使用します。(インデックスは 0 が先頭です)

nwayAim 3 0.4 0 0.1 60 1 3 1
このコマンドを実行したイベントが自機狙いの弾を発射します。
角度が 0 以外の場合は、自機がいる方向にその値を加算した角度で発射され
ます。

nallShot 8 0 0.1 60 1 3 1
このコマンドを実行したイベントが全方位に弾を発射します、コマンド名に
続く数値は左から 弾数、角度、速度、寿命、タイプ、インデックス、
スキル番号 となります。
弾の間隔は全方位に発射されるように自動で調整されます。

nallAim 8 0 0.1 60 1 3 1
nallShotの自機狙い版です。

stopPlayerShot
プレイヤー(パーティメンバー含む)の弾発射を手動、自動問わず禁止します。

startPlayerShot
プレイヤー(パーティメンバー含む)の弾発射禁止状態を解除します。

stopPlayerShot message
イベントコマンド『文章の表示』実行中のみプレイヤー(パーティメンバー含む)
の発射弾を手動、自動問わず禁止します。

startPlayerShot message
stopPlayerShot message の効果を解除します。

stopEnemyShot
イベントの弾発射を禁止します、並列イベントで弾を発射している場合は
弾発射のコマンドのみが無効化され、そのほかのコマンドは実行されます。

startEnemyShot
イベントの弾発射禁止状態を解除します。

stopEnemyShot message
イベントコマンド『文章の表示』実行中のみイベントの弾発射を禁止します。

startEnemyShot message
stopEnemyShot message の効果を解除します。

deletePlayerBullets
プレイヤー(パーティメンバー含む)が発射したすべての弾を消去します。

deleteEnemyBullets
イベントが発射したすべての弾を消去します。

forceShot 0
プレイヤーのショット操作を強制実行します。このコマンドはディレイを
無視して弾を発射します。数値はパーティの先頭を 0 とした並び順です、
0 が指定されていれば先頭のキャラクターのみが弾を発射します。
数値を省略した場合はパーティ全員が弾を発射します。

bulletPause
すべての弾を一時的に停止させます。
bulletPause off
で一時停止が解除されます。


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

<shotWay:3>
一度に発射される弾の数を設定します。

<shotSpace:0.4>
一度に発射される弾同士の間隔(角度)を設定します。

<shotSpeed:0.1>
弾の移動速度を設定します。

<shotCount:60>
弾が消えるまでの時間をフレーム数で設定します。

<shotInterval:20>
再発射までの発射不可時間をフレーム数で設定します。

<shotInvincible:60>
被弾により発生する無敵時間をフレーム数で設定します。


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

<shotIntervalRate:1.4>
再発射までの発射不可時間を倍率で設定します。
shotInterval による加算補正よりも後に計算されます。

メモ欄タグ(武器、ステート):

<shotType:1>
弾のグラフィックとして使う画像ファイルを設定します。値が 1 なら
shootingBullet1.png を使用します。
武器とステートの両方にこのタグがある場合、ステートのものを優先します。

<shotIndex:3>
shotTypeタグで選択した画像ファイルの何番目の弾を使用するか設定します。
武器とステートの両方にこのタグがある場合、ステートのものを優先します。

<shotSkill:1>
弾が相手に当たったときのダメージ計算に使うスキルを設定します。
武器とステートの両方にこのタグがある場合、ステートのものを優先します。


メモ欄タグ(武器):

<shotSeName:Shot1>
<shotSeVolume:70>
<shotSePitch:150>
このタグがついている武器を装備している間だけ、弾の発射音を変更します。
それぞれ、ファイル名、音量、ピッチを設定することができます。


メモ欄タグ(スキル):

<mapThrough>
マップの通行不可タイルと接触しても弾が消えなくなります。

<penetrate>
キャラクターと接触しても弾は消えずに貫通します。キャラクターが同じ弾に
複数回ダメージを受けることはありません。

<bulletAnime:1>
弾がキャラクターにヒットした際に、指定した番号のアニメーションを
被弾したキャラクターに表示します。


メモ欄タグ(イベント):

<enemy:1>
イベントのパラメータとして利用する敵キャラ番号を設定します。

<cw:0.375>
イベントと弾の当たり判定サイズ(横幅)をイベントの中心から左(右)端
までの長さで設定します。値は 1.0 でマップのタイル1マス分になります。
このタグがない場合は初期値として 0.375 を使用します。

<ch:0.75>
イベントと弾の当たり判定サイズ(高さ)をイベントの足元から上端までの
長さで設定します。値は 1.0 でマップのタイル1マス分になります。
このタグがない場合は初期値として 0.75 を使用します。

<shiftFiringY:0>
イベントの弾発射位置(Y座標)を指定したドット数だけずらします。
値が正なら下、負なら上方向へずらします。
通常は当たり判定の矩形の中心から弾が発射されますが、不都合がある場合は
このタグで調整してください。


メモ欄タグ(アクター):

<cw:0.375>
イベント用のものと同じです。

<ch:0.75>
イベント用のものと同じです。

<shiftFiringY:0>
イベント用のものと同じです。

<deadCharacter:!Flame,5>
このアクターが戦闘不能になったとき、歩行グラフィックを変更します。
この例では !Flame.png の下段、左から2番目のグラフィックが採用されます。


メモ欄タグ(アクター、敵キャラ):

<deadAnime:67>
戦闘不能ステートが付加されたときに表示するアニメーションを設定します。


併用可能(動作確認済み)プラグイン:

SAN_AnalogMove.js ver1.4.3
SAN_AnalogMove.js ver3.0.3
SAN_AnalogStick.js ver1.0.0
SAN_MapGenerator.js ver1.1.8
作者: サンシロさん(http://rev2nym.blog.fc2.com/)

CharacterPopupDamage.js Version 1.5.0
作者: トリアコンタンさん(http://triacontane.blogspot.jp/)

CommonPopupCore.js ver1.05
GetInformation.js ver1.15
作者: Yanaさん(https://twitter.com/yanatsuki_)

Mano_InputConfig.js ver0.9.0
作者: しぐれんさん (https://twitter.com/Sigureya/)

上記プラグインを併用したことによる不具合の報告は、併用プラグインの
作者様ではなく、必ずtomoakyへお願いします。


その他注意点など:

shotWay や shotSpace などのメモ欄タグは、アクター、装備、ステートの
合計値が採用されます。shotWay が 0 の場合、または shotCount が 0 の
場合は弾が発射されないか、発射後すぐに消滅してしまいます、素手の状態
でも弾を撃ちたい場合はアクターにも shotWay と shotCount タグを設定する
必要があります。

nwayShot などのコマンドに味方対象のスキルを設定した場合、イベント同士
での攻撃が表現できますが、スキルの設定によっては命中判定が正しく機能
しません。
弾が当たらない場合はスキルの使用効果にステート付加 0 %などの無意味な
効果を設定することでこの問題を回避することができます。

パッドボタン配置は save フォルダ内の config.rpgsave に保存されます、
このファイルが削除されるまでは初期配置の設定を変更しても適用されません。
パラメータ
param shot
type struct<InputSetting>
default {"text":"ショット","mandatory":"true","keys":"AGHJ","padButton":"6"}

param hold
type struct<InputSetting>
default {"text":"ホールド","mandatory":"false","keys":"D","padButton":"-1"}

param holdType
type select
option SWITCH
option HOLD
desc 向き固定方式。SWITCH なら向き固定キーを押すたびに切り替え、
HOLD なら押している間だけ切り替え。
default SWITCH

param deadSwitch
type string
desc イベントが戦闘不能になったときにオンになるセルフスイッチ
初期値: A
default A

param resetDeadSwitch
type boolean
desc マップ移動時に deadSwitch をオフにする
初期値: ON ( false = OFF 無効 / true = ON 有効 )
default true

param bulletBlockTag
type number
min -1
desc 弾が通行できない地形タグ番号
初期値: -1 ( 0 ~ 7 = 該当タグ通行不可 / -1 = 無効 )
default -1

param bulletBlockRegion
type number
min -1
desc 弾が通行できないリージョン番号
初期値: -1 ( 0 ~ 255 = 該当リージョン通行不可 / -1 = 無効 )
default -1

param leaderShotSe
desc プレイヤー弾発射効果音のファイル名。
初期値: Shot1
default Shot1
require 1
dir audio/se/
type file

param leaderShotSeParam
type struct<SeParam>
desc プレイヤー弾発射効果音のパラメータ。
default {"volume":"70", "pitch":"150", "pan":"0"}

param defaultDeadAnimeId
desc 戦闘不能時に表示するアニメーション番号の初期値
初期値: 67
default 67
require 1
type animation

param levelUpAnimeId
desc レベルアップ時に表示するアニメーション番号
初期値: 52
default 52
require 1
type animation

param playerDeadEventId
type common_event
desc 先頭のアクターが戦闘不能時に実行するコモンイベント番号
初期値: 0 ( 0 = 無効 / 1以上 = 該当するコモンイベント起動 )
default 0

param invincibleFollower
type boolean
desc フォロワーを無敵にする。
初期値: false ( false = OFF 通常 / true = ON 無敵 )
default false

param useGameover
type boolean
desc 全滅時にゲームオーバーシーンへ移行するかどうか
初期値: true ( false = OFF 移行しない / true = ON 移行する )
default true

param maxPlayerBullet
type number
desc 同時に存在できるプレイヤー弾の最大数
初期値: 128
default 128

param maxEnemyBullet
type number
desc 同時に存在できるエネミー弾の最大数
初期値: 128
default 128

param bulletSizeTable
type string
desc 弾の当たり判定の大きさ(ドット数)
初期値: 6,6,6,6,6,6,6,6
default 6,6,6,6,6,6,6,6

param bulletBlendTable
type string
desc 弾のブレンドモード
初期値: 0,0,0,0,0,0,0,0
default 0,0,0,0,0,0,0,0

param equipDummyX
type number
min -9999
desc 装備シーンに表示するダミーのX座標
初期値: 408
default 408

param equipDummyY
type number
min -9999
desc 装備シーンに表示するダミーのY座標
初期値: 312
default 312

param useLevelUpMessage
type boolean
desc レベルアップメッセージを表示するか
初期値: true ( false = OFF 表示しない / true = ON 表示する )
default true

noteParam shotSeName
noteRequire 1
noteDir audio/se/
noteType file
noteData weapons

requiredAssets img/system/shootingBullet1
requiredAssets img/system/shootingBullet2
requiredAssets img/system/shootingBullet3
requiredAssets img/system/shootingBullet4
requiredAssets img/system/shootingBullet5
requiredAssets img/system/shootingBullet6
requiredAssets img/system/shootingBullet7
requiredAssets img/system/shootingBullet8

ライセンス表記
このプラグインはMITライセンスのもとに配布しています、商用利用、
改造、再配布など、自由にお使いいただけます。
配布元 : http://hikimoki.sakura.ne.jp/
Copyright (c) 2016 tomoaky
Released under the MIT license.
http://opensource.org/licenses/mit-license.php

紹介ページ https://hikimoki.sakura.ne.jp/plugin/plugin_system.html