RPGツクールVX_アクション改

● 目次

ダウンロード / 更新履歴
注意
操作方法
仕様
敵キャラクターの基本設定
リフト設定
その他の敵キャラ設定
コマンド一覧
装備品によるショットの設定
スクリプトの設定
スクリプト改造例
ミニメッセージ機能
確認済みの不具合

● 概要

RPGツクールVXのマップシーンを重力の働く2Dアクションタイプに変更する
RGSSスクリプト素材です。
旧バージョンに『はしご』『装備品によるショット変更』『各種演出強化』
『敵キャラデータの利用』『操作キャラ変更』『テロップメッセージ』などを追加しました。





● ダウンロード / 更新履歴

▼ RGSS2_アクション改をダウンロード
2011.11.22 update / zip形式 / 308 KB

▼ タイル破壊&設置追加スクリプト
2011.06.10 update / txt形式 / スクリーンショット
マップタイルの破壊と設置の機能を追加します。

▼ アクショングラフィックスクリプト
2010.06.17 update / txt形式
ダッシュとジャンプに別の歩行グラフィックを割り当てる機能を追加します、
ファイル名の頭に % を付けて、右側2キャラ分をダッシュ、ジャンプ用に置き換えてください。

▼ HPゲージ装飾追加スクリプト
2010.05.30 update / txt形式 / スクリーンショット
HPゲージ装飾用画像 HPゲージ装飾用画像
↑この画像も必要です Graphics/System フォルダに置いてください。

▼ アイテムショートカット追加スクリプト
2010.06.01 update / txt形式 / スクリーンショット
アイテムショートカット背景用画像
↑この画像も必要です Graphics/System フォルダに置いてください。

2011.11.22
・イベントコマンド『装備の変更』実行時にプレイヤーの
 アクション関連パラメータが更新されない不具合を修正

2011.06.15
・blogで公開していたタイル破壊&設置スクリプトをこちらでも公開。
 中身に変更はありません。

2011.04.07
・はしご上部でイベントとプレイヤーが重なってしまう不具合を修正
(修正箇所は Game_Character セクションの passable? メソッドのみです)

2010.06.17
・アクショングラフィックスクリプトを公開しました。

2010.06.01
・ショートカットアイテムと同IDの武器防具の表示がおかしくなる不具合を修正。

2010.05.30
・HPゲージ装飾追加スクリプトを公開しました。
・アイテムショートカット追加スクリプトを更新しました
 表示スイッチがオンでもショートカットをセットしていない場合に表示されない不具合を修正

2010.05.28
・アイテムショートカット追加スクリプトを公開しました
 使い方はスクリプト内の説明をお読みください。

2010.05.10
・自機狙いの軌道に変化する弾を追加。
 ショットとして指定したスキルのメモ欄に <自機狙いに変化> タグが含まれて
 いれば、弾削除(時間切れ)のタイミングで軌道が変化します。
・接触スキルの設定が注釈でできるようになりました、エネミーに設定されていれば
 そちらが優先されます。イベントページの一番上にある注釈が対象です。
・イベントから接触した場合にも接触スキルが発動するように修正。
・一方通行タイル(下から上へ通行可能)を追加
・はしごの処理を改善
・横STGモードを追加、使い方はサンプルゲームを参照してください。

2010.04.27
・ショット、ダッシュ、ジャンプ、操作キャラ変更を一時的に使用不可にする機能を
 追加しました、設定項目セクションで対応するゲームスイッチを変更できます。

2010.02.26
・弾貫通オプションを追加、装備のメモ欄に<弾貫通>で弾が地形を貫通
・弾速度オプションを追加、装備のメモ欄に<弾速度=n>で弾速度にnを加算
 弾速度の初期値は 64 なので n が 64 なら倍速になります。
・イベントコマンド『メンバーの入れ替え(外す)』に対応
・敵との接触時に被弾処理を発生させる機能を追加
 敵のメモ欄に<接触スキル=スキルID>で、敵本体が消えない弾扱いになります。
 スキルID が 0 なら通常攻撃扱い。

2010.02.05
・壁蹴りジャンプを追加
 壁にくっついた状態で壁の方を向いてジャンプすることで
 壁を蹴って何度もジャンプすることができます。
 壁蹴りジャンプを利用できるのはメモ欄に <壁ジャンプ> という文字列を含んだ
 武器か防具を装備しているアクターに限ります。
・装備品のショット設定に <弾角度=f> を追加
 左右の向きに関わらず上下方向に発射角度を補正します、<弾角度=-0.7>で弓っぽくなります。
・以下のコマンドでプレイヤーを対象にできるように修正
 gain_hp, get_hp, get_hp_rate, set_gravity, set_undead
 イベントIDの指定を -1 にするとプレイヤー(現在操作中のアクター)が対象になります。

2010.01.14
・死亡イベント起動時にロックが外れなくなる不具合を修正

2010.01.06
・HPゲージの更新処理を修正
・弾回転機能を基本機能に追加

2009.11.28
・追加スクリプトで弾画像を発射角度に合わせて回転させる機能を追加
 zipには含まれていません、こちらをアクション改の一番下に貼り付けてください。
 当然重くなります、ご利用は計画的に。
 最新版では基本機能に含まれています(デフォルトでは機能オフ)

2009.11.24
・戦闘不能判定の不具合を修正

2009.11.20
公開

▲目次へ戻る

● 注意

デフォルトのRGSSにあるいくつかの機能を削除しています。(ループマップ、乗り物等)

画面に表示される弾が多ければ多いほど処理が重くなります、
プレイ環境によって快適に表示できる弾の数が変わってくるので、あまり多く
しすぎないように注意しましょう。

弾の消滅エフェクトが非常に重くなっています、不要な場合は設定項目にて
エフェクト最大数(EFFECT_MAX)の値を0に設定してください。

感想、バグ報告、機能の追加要望等ありましたら掲示板か拍手でどうぞ。
規模が大きい要望はお断りさせていただく確率が高いです、ご了承ください。

このスクリプトは利用報告、著作権表記、リンク等をせずご自由にお使い
いただけます。改造したものをRGSS素材として二次配布するのもOKです。

このスクリプトを利用して発生したいかなる損害にも制作者はその責任を負いません。

▲目次へ戻る

● 操作方法

・左右移動 … ←→
・上下移動(はしごにつかまっている場合) … ↑↓
・はしごにつかまる … ↑
・ショット … Xボタン
・ジャンプ … Yボタン
・ダッシュ … Zボタン
・操作キャラ変更 … Rボタン

B, CボタンはデフォルトRGSSとほぼ同じ働きをします。

各ボタン表記はキーボードのキーではありません、
対応するキーはF1キーの "ゲームのプロパティ" で変更することができます。

▲目次へ戻る

● 仕様

・マップを新規作成した状態では、何もないように見える部分も通行不可能となっています、
 まず最初に通行可能な透明タイルで塗りつぶしをしてください。

・エネミーとして設定されているイベント(イベント名に<en=enemy_id>)は
 戦闘不能時にセルフスイッチDがオンになり、マップ切り替え時にオフになります。

・はしごの一番上からさらに上へ移動しようとすると落ちてしまいます。
・はしごにつかまっているときに左右を入力せずにショットを撃つと右に発射します。

・プレイヤー弾を発射するエネミーにもプレイヤー弾が当たってしまいます、
 援護キャラクターはエネミーではなく通常イベントで作成してください。
・イベントからプレイヤー弾を発射した場合、その弾のダメージ計算には
 発射した際に操作していたアクターの攻撃力が使われます。

・画面外のイベントは弾を撃つことができません。

・被弾によるダメージには通常戦闘と同じ計算式を使用します。
・ステートは未対応(付加はされるが効果がない)です。

・弾画像の指定がない場合は "Graphics/System/bullet_0" を使用します、
 エラー回避のためにこの画像は常にSystemフォルダに置いてください。

▲目次へ戻る

● 敵キャラクターの基本設定

敵キャラクターとして扱いたいイベントのイベント名に <en=enemy_id> という文字列を挿入してください、
これでこのイベントが敵キャラクターとして動作するようになります。
(enemy_idはスペースなどをいれず半角数字で指定してください)


敵の強さはデータベースの敵キャラで設定したものをそのまま利用します、
(enemy_id に 1 を指定していれば1番の敵キャラになります)
ダメージ計算式も通常戦闘と同じものを使用します。

この敵キャライベントはHPが0になるとセルフスイッチDが自動的にオンになります、
イベントの2ページ目にセルフスイッチDを条件とした空イベントを用意することで
倒した敵が消えるようになります。
必ず すり抜け にチェックを入れてください。でないと透明な壁ができてしまいます。

敵キャラの行動(移動と攻撃)は通常のイベントと同じく並列処理で設定します。
移動と待機は "移動ルートの設定" と "ウェイト" を使って設定します、
攻撃は "スクリプト" で以下のように記述してください。
例 : nway(3, 0.1, 0.0, 64, true, 60, 0, "bullet_0", 0)
括弧内の数字(文字)は左から順に以下のようになっています。
・ショットのWAY数 … 3なら一度に3個の弾が発射されます
・ショットの間隔 … 一度に発射する弾の間隔(角度)です、約6.28で一周
・ショットの発射角度 … 弾を撃つ方向です、右(0.0)から時計周りに約6.28で一周します
・ショットの速度 … 弾が飛ぶスピードです
・プレイヤー狙いフラグ … trueでプレイヤーがいる方向へ弾を発射します
              発射角度が設定されていれば加算されます
・ショットの表示時間 … 指定フレーム数が経過すると自動的に消滅します
・ショットに働く重力 … 1以上を指定すると弾にも重力が働きます
・ショットの画像 … Graphics/Systemフォルダにある画像ファイル名を指定してください
・ダメージ計算に使うスキル … 0なら通常攻撃、1以上ならスキルIDとして扱い
                該当するスキルのダメージ計算式が適用されます

後ろの3項目は省略することが可能です、省略時には重力なし、画像はbullet_0
ダメージ計算は通常攻撃になります。
角度の値として円周率 Math::PI を指定することができます。
・Math::PI … 左
・Math::PI/2 … 下
・Math::PI*3/2 … 上
角度は右(0.0)から時計周りに Math::PI*2 で一周となります。

敵キャラクターにジャンプさせるにはショットと同じようにスクリプトを使います。
例 : jump(-80)
この例ではジャンプの初速が -80 で上に飛び跳ねます、必ず負の値を指定してください。
通常のジャンプコマンドは使用できません、敵キャラ以外のイベントも同様です。

▲目次へ戻る

● リフト設定

敵キャラクターとして設定したイベントのイベント名に <リフト> という文字列を挿入してください、
通常の敵キャラはプレイヤーが上に乗った状態で移動させると、プレイヤーを置き去りにして
敵キャラだけが移動してしまいますが、リフト設定をした敵キャラは上に乗ったプレイヤーや
他のイベントも一緒に移動させることができます。

リフトキャラは自動的に "重力なし&無敵" という設定になります、リフト設定と一緒に
これらの設定も行うことで "重力のはたらくリフトキャラ" や "破壊できるリフト" を作成可能です。
リフト設定は敵キャラだけでなく通常のイベントにも適用可能です。
例 : イベント名<リフト><無敵> … 無敵じゃないリフトになります

リフトキャラに押されて壁にめり込んでしまう場合があります。
リフトキャラの移動範囲と壁の間に隙間を作ることで回避してください。


▲目次へ戻る

● その他の敵キャラ設定

イベント名に <無敵> という文字列が含まれていれば、その敵キャラは
一切のダメージを受けない無敵キャラになります。

イベント名に <g=n> という文字列が含まれていれば、その敵キャラに
働く重力を n に変更することができます、空を飛ぶ敵には 0 を指定してください。

イベント名に <bl=n> という文字列が含まれていれば、そのイベントは
60フレーム間隔で ID:n のフキダシアイコンを表示し続けるようになります。
サンプルプロジェクトではマップ切り替えポイントの目印として利用しています。

イベント名に <size=w,h> という文字列が含まれていれば、その敵キャラの
接触判定の大きさが 横=w, 縦=h になります、ただしこの設定はプレイヤー弾の接触判定にのみ有効で
プレイヤーや他の敵との接触やショットの発射位置などには影響しません。
通常より大きいサイズの歩行グラフィックを利用する際に設定してください。

敵キャラのメモ欄に <接触スキル=n> という文字列が含まれていれば、
その敵キャラに触れたとき、指定したID n のスキルのダメージを受けます。
触れただけでダメージを受ける敵を設定する際に利用します、n = 0で通常攻撃です。

攻撃に使うスクリプトには他にも種類があります。
・nall(WAY数, 発射角度, 速度, プレイヤー狙いフラグ, 表示時間, 重力, 画像, スキルID)
  WAY数から自動的に間隔を計算する全方位ショットを発射します。
・pnway(WAY数, 間隔, 発射角度, 速度, プレイヤー狙いフラグ, 表示時間, 重力, 画像, スキルID)
  nwayと同じですがこちらはプレイヤー弾を発射します。
・pnall(WAY数, 発射角度, 速度, プレイヤー狙いフラグ, 表示時間, 重力, 画像, スキルID)
  pnwayの全方位版です。

pnway(pnall)を使うことでプレイヤーを援護してくれるキャラクターを作成できます、
しかし、敵キャラにプレイヤー弾を撃たせた場合は撃った本人に当たってしまうので、
援護キャラクターは通常イベントとして設定してください。

▲目次へ戻る

● コマンド一覧

敵キャラの行動に関するコマンドはこちらを参照してください。
敵キャラクターの基本設定 / その他の敵キャラ設定

・gain_hp(id, n)
  idに指定したイベントIDをもつイベントのHPを n だけ回復させます。
  最大HPを超えることはありません。
・get_hp(id) / get_hp_rate(id)   idに指定したイベントIDをもつイベントのHPを取得します。
  get_hpは値をそのまま、get_hp_rateは最大HPに対する割合を百分率で返します。
  ゲーム変数に敵キャラのHPを代入する場合は以下のようにします。
  $game_variables[8] = get_hp(5)
  この例ではゲーム変数8番にイベントID5番の残りHPが代入されます。
・set_gravity(id, n)
  idに指定したイベントIDをもつイベントの重力を n に変更します。
  重力の設定はマップ切り替え時にイベント名で指定された値に戻ります。
・set_undead(id, flag)
  idに指定したイベントIDをもつイベントの無敵状態を変更します。
  flag が true ならば無敵、false ならば無敵ではなくなります。
  無敵状態の設定はマップ切り替え時にイベント名で指定された状態に戻ります。
・set_balloon(id, n)
  idに指定したイベントIDをもつイベントのフキダシアイコンを変更します。
  n に 0 を指定した場合はフキダシ表示が無効になります。
  フキダシアイコンの設定はマップ切り替え時にイベント名で指定された状態に戻ります。
・erase_bullets
  すべての弾を削除します。

gain_hp, get_hp, get_hp_rate, set_gravity, set_undead
これらのコマンドはイベントIDに -1 を指定することでプレイヤー(現在操作中のアクター)を
対象にすることができます。


▲目次へ戻る

● 装備品によるショットの設定

武器と防具にショットに関するパラメータを付加し、プレイヤーの攻撃を
変化させることができます。
付加できるパラメータは以下のとおりです、武器か防具のメモ欄に記入してください。

<弾数=n> … 一度に発射される弾の数が n 増えます
<弾角度=f> … 発射される弾の角度が f だけ変化します(負の値で上方向へ)
<弾間隔=f> … 同時に複数の弾が発射される場合の間隔(角度)が f だけ変化します
<弾時間=n> … 弾の表示時間が n 増えます
<弾重力=n> … 弾に働く重力の値が n 増えます
<弾貫通> … 弾が通行不可タイルを貫通するようになります
<弾速度=n> … 弾速度の値が n 増えます(初期値 64)
<弾画像=ファイル名> … 弾の画像を ファイル名 に変更します

弾画像は武器にのみ有効です。
弾角度,弾間隔は小数の値を指定してください(2の場合は2.0)


この機能を使えば一度に5発の弾を発射できるが飛距離(弾時間)がない武器や、
弾に重力が働くようになる武器、弾を広範囲に撃てるようになる装飾品など
様々な装備品を作成することができます。

▲目次へ戻る

● スクリプトの設定

スクリプトエディタを開き、"設定項目" の中身を書き換えることで
細かい設定の変更をすることができます。


各設定項目の内容についてはスクリプト内にコメントで記しているので
ここでは割愛します。

はしごとして扱うタイルの設定では、タイルIDを調べる必要があります。
テストプレイ時にF5キーを押すことでプレイヤーがいる位置のタイルID情報が
表示されるので、この情報をもとに設定を行ってください。
設定に必要なのは上層に表示されているタイルIDとなります。

▲目次へ戻る

● スクリプト改造例

アクターの敏捷性をジャンプ力として扱う
Game_Playerクラスのmove_by_inputメソッドにある
move_jump(-80) if Input.trigger?(Input::Y) # ジャンプ
という部分を
move_jump(-battler.agi) if Input.trigger?(Input::Y) # ジャンプ
と書き換える。

▲目次へ戻る

● ミニメッセージ機能

アクションとは独立したかたちで画面の左端にテロップを表示する機能を搭載しています。
敵キャラが戦闘不能になったときに得た経験値や、マップシーンでアイテムやお金を得たとき
自動的にテロップ表示されます。
他にもキャラクターのレベルアップとスキル習得にも対応しています。

イベントコマンドのスクリプトで以下のようにすれば、イベントから任意のテロップを
流すこともできます。
例 : add_mes("本日は晴天なり", Color.new(255, 0, 0))
この例では赤色で 本日は晴天なり というテロップが流れます、色は省略が可能です。

▲目次へ戻る

● 確認済みの不具合


▲目次へ戻る