忍者ブログ
windowsやFlash のゲーム作ったりとか。
RPGツクールMV プラグイン備忘録・フォーラム編

目次123ツクマテ1ツクマテ2フォーラムチョイ技/講座

NEW!
おっぎーの、ゲームをつくろう!さまツイッター
・ローディング画面を置き換える

lrikiさま(ツイッター
・謎解きマップシステム

莞爾の草原さま(ツイッター
・控えメンバーにも攻撃を当てられる
・「スクリプト」枠自由化
・タイトル画面に天候(雨・雪・嵐)
・条件付き選択肢

asakayuさま
・ゲームの快適化や修正
・乱数を発生させるグローバル関数
・ボス消滅エフェクト高速化
・『画面の色調変更』重複スキップ
・ニューゲーム時タイトル画面省略

荒上理紗斗の秘密基地さま
・メッセージボックスの制御文字を拡張
・プラグインが複数登録されていた際にアラート
・アツマールのシグナル送受信用
・更新された変数の参照(要DevTools)

RPGアツマール公式イベントプラグイン
APIリファレンス
SNS風ゲーム
放置ゲーム
スコアボード
外部リンク
アツマールコアスクリプト NEW!

ツクールフォーラム(公式フォーラムの投稿より)
 ---投稿プラグインまとめ【2017年6月版】(みなみよつばさま)
 ---投稿プラグインまとめ【2017年9月版】(みなみよつばさま)

戦闘/スキル/ステート/アイテム
スリップダメージやHP自動回復の量をターン毎に増減させる
能力値弱体/強化を3段階以上可能に
カウンター行動(反撃時にスキルを使用)
簡易設定(最低ダメージ等、いつくかの項目を設定)
攻撃対象選択時に弱点や耐性を表示
戦闘終了時に戦闘結果を表示
HP再生率による結果をバトルログに表示
バトルイベントを拡張/戦闘終了時にコモンイベント
サイドビュー時のアクターを一直線に並べる
スキルに反応して反撃/連鎖で更にスキルを発動
「戦闘行動の強制」の際、残りの行動をリセットしない
消費MPを現在の最大MPの比率で変動させる
いわゆるメガ○テとマダ○テ
YEPActionPack拡張・矢弾飛ばし
戦闘中、アイテムを所持数以上使えなくする
戦闘開始時の出現メッセージを複数形に対応させる
職業ごとに、武器タイプごとに、威力を増減させる
戦闘時に行動回数表示
所持金消費スキル
怪しい影(正体不明の敵)
戦闘時におけるウィンドウの行数を変更
味方の一番高い能力を吸収する
状態異常のとき戦闘キャラをフラッシュさせ続ける
装備やアイテムなどのパラメータを分離する
レベル差がある敵グループに強制勝利
敵、味方のダメージ倍率を変数制御する
戦闘行動の強制による、直前の中断された行動を再開する
ステートを重複可能に
弱点・耐性に応じてメッセージを追加表示
オートバトル
バトル中に立ち絵を表示(残HPで変更可)
スキル成功率変更
ダメージ分散を無効化
自動戦闘時に「作戦」を導入
耐性によってダメージが軽減されないスキル
ターン終了時に敵が復活
パーティコマンドに「とんずら」を追加
上位のステート作成(毒→猛毒など)
敵の攻撃を確率で軽減(パリィ)
戦闘不能時のメッセージをバトラーごとに変更
フロントビューバトルスタイル
スキル全体化
対象となる武器・防具を装備している間のみTPゲージを表示 NEW!
一度しかランダムエンカウント出来ないレア敵キャラの設定 NEW!
エンカウント前に画面中央に1行メッセージを表示 NEW!
戦闘スタイル変更 NEW!


システム
足音をかなり詳細に設定可
イベントの上下反転やクロスフェードなどを実現
美容院システム(アクターの画像を一括して変更)
勝利アクション禁止
移動ルートの設定などの対象者を変更
立ち絵マネージャー(複数の画像を統合して一枚に合成して表示)
時間制限付選択肢
心の声ウインドウ(既存プラグインの組合わせて使うシステムグラフィックと小技)
戦闘不能のアクターを隊列の最後尾に回し、棺桶などの形で表示
オリジナルシーンやウィンドウを表示
同行者を隊列歩行にも表示
アクターのステータス欄の表示を変更
メッセージウィンドウを複数表示
イベント起動中は自律移動をストップ
ショップの装備画面で、全パラメータの変化を表示
起動中のイベントを強制中断、接触してきたイベントが強引に割り込む
アイテムボックスのカテゴリー選択を無くす
移動ルートのコモンイベント化
ゲームオーバー画面を表示してからリスポーン
アイテム等を入手したときに吹き出しを表示させる
カードゲーム(ババ抜き)
エンカウント歩数の計算式を変更する
MPが一定値以下の場合に顔グラフィックをマップ上へ表示
移動ルートの設定で『右に5歩』や『9時方向に蟹歩き』が可能に
アクターごとにアイテムを個別で所持する
歩くたびに経験値が増える装備
タイトル画面の背景をスクロール
セーブの最大数を変更
タイトル画面を拡張
あらすじ機能を追加
フォロワーを操作
イベントの位置情報を復元
1ボタンでコモンイベントを呼び出す
イベントの中断と再開をサポート
所持アイテムの合計数を取得
宝箱の残り個数を表示
スイッチで戦闘終了時のフェードインを制御
メニュー画面改造
見た目変更装備
残像表示
「移動ルートの設定」で任意のイベントコマンドを実行可能
「場所移動」時のフェードインを制御
パラムフッリワーケシステム(能力値振り分け
シンプルなセーブ画面
シンプルなメニュー画面
アクターを選ぶための選択肢
スプラッシュスクリーンとしてメッセージを表示
カレンダー機能
セーブ内容を反映させてから閉じる
遊泳・ダイビングシステム (人魚等)
簡易長文表示
ピクチャーやイベントに残像
イベントに立体的な影
文章のスクロール表示をマスク
自動斜め移動(坂、横向き階段上の移動など)
タッチ後の目的地を表す軌跡を非表示
ピクチャのドラッグ移動
BGM逆再生
メッセージウインドウの行数を変更
任意のメッセージを画面上にポップアップ
一人称等をスイッチと制御文字で変更
ショップで右に表示される装備した時の数値が一番効果のあるステータスで表示
豪華画面エフェクトの詰め合わせ
メッセージウィンドウ拡張
特殊なアクションを実装
多機能フックロープ
マップ上に簡単な情報ウィンドウを出す
画面上に文字列をポップアップ表示
ツキミ式選択肢ウィンドウ
ピクチャーやエネミーをぶった斬る
重みつきランダム
戦闘やイベントスキップ等のゲームスピードを自由に調整
時間経過システム
移動ルートの設定のスクリプトを使ってIF文などの処理を追加
パーティクルアニメ
イベントの動作を拡張 NEW!
メッセージウィンドウ拡張 NEW!
スローモーション NEW!
戦闘結果の表示を変える NEW!
発射&当たり判定 NEW!
方向キーで向き変更(長押しで移動) NEW!
アイテムの合計購入金額を求める式を変える NEW!



その他
プラグインまとめ読み込み
タッチ移動で『通常キャラの下』イベントを通り抜け可能に
セーブファイルの軽量化
よりばらけたランダムな変数を取得
メタ手抜き
半透明テキストの透明度を変える
セーブデータのインポートとエクスポート
プラグインの一覧を取得
片手操作向けキー設定
ver1-5-0以降のロード時の遠景のちらつき対策
ゲームパッドの切断を報告
デバッグ支援
プラグイン40枚入りデッキ~タケノコ王国の野望編~
クロスゲートで作ったプラグイン集1
クロスゲートで作ったプラグイン集2
アニメのフレームレート調整
xorshiftを使用した再現性のある乱数
古き良きトランジション-グラデーションワイプ
ピクチャのボタン化会話中使用化
偽装缶詰(ツキミ式暗号化)
メモリ改竄チートを予防
破損したセーブデータの復元を試みる
oggファイルだけで音声を再生
MIDI 再生(β版)
コアスクリプト1.3cで実装されたプログレスバーの色、座標位置変更 NEW!
セーブデータに画像データを保存し、セーブ/ロード画面で表示する NEW!
biimシステム NEW!
メッセージ組み込み開発支援 NEW!
SEオートリミッター(SE多重再生による音割れ防止) NEW!
ウィンドウのみ/スプライトのみを画像ファイルとして保存 NEW!
柵の前後を通れる NEW!
壁の後ろを歩けるようにする NEW!
グラデーションワイプ NEW!
FPSが安定するまで待つ NEW!
画面フェードのパラメータ調整 NEW!




拍手[0回]

PR
RPGツクールMV用プラグインであるところの
神鏡学斗さんのSRPGコンバータMVの使い方覚書です。

<製作の流れ>
神鏡学斗さんのSRPGコンバータMVをゲット。
②サンプルゲームをプレイして、何が出来るのかをチェック。
③プロジェクトを開いてどのようなイベントが配置されているか
 プラグインの設定やヘルプを確認。
④サンプルマップ「森」をコピペして雛形を作る。
⑤思う様ゲームを作る。

<イベントで使えるスクリプトコマンドやプラグインコマンド>
SRPG戦闘開始
◆プラグインコマンド:SRPGBattle Start
SRPG戦闘終了
◆プラグインコマンド:SRPGBattle End

指定した座標にカーソル(プレイヤー)を移動
◆スクリプト:this.playerMoveTo(12,10);
指定したイベントをエネミーに変更
◆スクリプト:this.addEnemy(25, 2);//(イベントID, エネミーID)
指定したイベントをアクターに変更
 ※アクターの特徴に自動戦闘が入ってると、自動行動アクターになる
◆スクリプト:this.addActor(24, 5);//(イベントID, アクターID)
指定したイベントIDのユニットが戦闘不能かを
指定したスイッチIDに格納
 ※戦闘不能=on、戦闘不能でない=off
◆スクリプト:this.isUnitDead(15, 11);//(スイッチID, イベントID)
指定したイベントと全てのアクターの中で
最も近いアクターの距離を変数に格納
◆スクリプト:this.fromActorMinimumDistance(11, 52);//(変数ID, イベントID)

2つのイベント間の距離を指定した変数に格納
◆スクリプト:this.EventDistance(11, 11, 52);//(変数ID, イベント1ID, イベント2ID)

アクターとアクターの距離を変数に格納
◆スクリプト:this.ActorDistance(11, 1, 2);//(距離を代入する変数ID, アクター1のID, アクター2のID)
指定したイベントの戦闘モードを変更
 ※'normal'     「通常」に設定します(設定しない場合、自動で「通常」になります)。
  'stand'      「相手が近づくまで待機」に設定します。
  'regionUp'   「相手が近づくまでより大きなリージョンIDに向かう」に設定します。
  'regionDown' 「相手が近づくまでより小さなリージョンIDに向かう」に設定します。
◆スクリプト:this.setBattleMode(48, 'normal');//(イベントID, モード)

Ver.1.02 (2017/11/23)のプロジェクトから読み取れたコマンドは以上です。
他にも色々あると思いますので、情報お待ちしています。

<拡張・併用可能プラグイン>
SRPGコンバータMVのWebサイトでも
いつくつか紹介されていますが、私が作ったものは以下の通り。

移動後も装備変更可能
 (ただし、移動力を変更する装備があると若干問題があるので注意)
スイッチでキャンプメニューを変更
 (拠点と戦闘中でEscメニューを変更したい時に)

拍手[2回]

RPGツクールMVのイベントコマンドで使える便利なスクリプトの備忘録です。

プラグインを使わずにちょこちょこっとイベントを拡張できるので
とっても便利です。

教えてくださった皆様、ありがとうございます。

各種メニュー画面の呼び出し(参考/ツクマテ投稿記事

 セーブ画面呼び出し SceneManager.push(Scene_Save);
 ロード画面呼び出し SceneManager.push(Scene_Load);
 ステータス画面呼び出し SceneManager.push(Scene_Status);
 スキル画面呼び出し SceneManager.push(Scene_Skill);
 アイテム画面呼び出し SceneManager.push(Scene_Item);
 装備画面呼び出し SceneManager.push(Scene_Equip);
 オプション画面呼び出し SceneManager.push(Scene_Options);

 アクターを指定してステータス画面呼び出し(参考/ツクマテ投稿記事
// アクターID2番のステータス画面を開く
var actor = $gameActors.actor(2);
$gameParty.setMenuActor(actor);
SceneManager.push(Scene_Status);
アイテムの大事なもののページを開く(参考/ツクマテ投稿記事
SceneManager.push(Scene_Item);
SceneManager.update();
SceneManager._scene._categoryWindow.select(3);
SceneManager._scene.onCategoryOk();
SceneManager._scene._categoryWindow.deactivate();

オートイベントでメッセージをスキップしても移動が終わるまで待つ(参考/シロップ様)

 this.setWaitMode('route')
 会話直後に記述。

イベントの位置をリセット(参考/ツクマテ投稿記事

 $gamePlayer.requestMapReload();

画面のフェードイン・アウトを黒以外で(参考/ツクマテ投稿記事

 SceneManager._scene._spriteset._fadeSprite.setColor(255, 255, 255);
 フェードイン・アウトの直前に記述。
 255, 255, 255はRGB値で、数字を変更することで色を変えることができ
 変更した色は、メニューを開いたり、マップ移動したり
 戦闘に入ったりするなど、シーンが変わるまで維持される。

乗り物の「向き」を変更(参考/ツクマテ投稿記事

 小型船 $gameMap.boat().setDirection(2);
 大型船 $gameMap.ship().setDirection(2);
 飛行船 $gameMap.airship().setDirection(2);
 下に向けるなら2、上なら8、左なら4、右なら6

・「このイベント」に当たるイベントを途中で別イベントに差し替え(参考/卑弥呼テクニック

 this._eventId = 別イベントのID

移動ルートの設定でアニメーション再生(参考/卑弥呼テクニック
 this.requestAnimation(アニメーションID);

移動ルートの設定で指定したIDのイベントに近づく(参考:くらむぼん様)

 1番のイベントに一歩近づく this.moveTowardCharacter($gameMap.event(1))
 1番のイベントから一歩遠ざかる this.moveAwayFromCharacter($gameMap.event(1))
 1番のイベントの方を向く this.turnTowardCharacter($gameMap.event(1))
 1番のイベントの逆を向く this.turnAwayFromCharacter($gameMap.event(1))
 座標(変数1番,変数2番)に向かって歩く
  this.moveTowardCharacter({x: $gameVariables.value(1), y: $gameVariables.value(2)})

移動ルートの設定で最短ルートで指定の場所へ移動する(参考/ツクマテ投稿記事

 this.moveStraight(this.findDirectionTo(x,y))

移動ルートの設定で、指定した座標にジャンプ(参考/ツクマテ投稿記事

 this.jump(10 - this.x, 20 - this.y)

移動ルートの設定で、歩行グラのアニメパターンを指定(参考/公式フォーラム
  (this._direction の値は 2の時は↓、4の時は←、6の時は→、8の時は↑)

 this._direction = 6; this._pattern = 1;

移動ルートの設定から画像インデックスのみの指定(参考/ツクマテ投稿記事

 this._characterIndex = 1;
スクリプトでSEの音量を調節(参考/ツクマテ投稿記事
◆変数の操作:#0001 SE音量 = AudioManager.seVolume(変更前の音量を取得)
◆スクリプト:ConfigManager['seVolume'] = 100;//音量を変更
◆SEの演奏:Absorb2 (90, 100, 0)
◆スクリプト:ConfigManager['seVolume'] = $gameVariables.value(1);//音量を戻す

プレイヤーが直接入力することなく決定、キャンセルキーを入力(参考/ツクマテ投稿記事
  ◆キャンセルキーを押して離した
  スクリプト「Input._currentState['escape'] = true;」
  イベントコマンド「ウェイト(1)」
  スクリプト「Input._currentState['escape'] = false;」

 イベント例
 プレイヤーの左にこの作成したイベントがいたとして、決定ボタンを押すと
 プレイヤーは下を向き正面にいるイベントに話しかける。
 ◆移動ルートの設定:プレイヤー (ウェイト)
 :        :◇下を向く
 ◆スクリプト:Input._currentState['ok'] = true;
 ◆ウェイト:1フレーム
 ◆スクリプト:Input._currentState['ok'] = false;

 使用できるキーは、rpg_core.jsにある
 2996行目キーボードと3030行目ゲームパッドの定義

指定したSEだけ停止する(参考/ツクマテ投稿記事

例「Applause1」のみ演奏停止したい場合
コード: 全て選択
var seName = 'Applause1';
AudioManager._seBuffers.forEach(function(buffer) {
    if(buffer._url.match('/' + seName + '.')) {
        buffer.stop();
    }
});
AudioManager._seBuffers = AudioManager._seBuffers.filter(function(audio) {
    return audio.isPlaying();
});
スマホを振動させる(参考/ツクマテ投稿記事

 navigator.vibrate(2000);
 ※単位はミリ秒

マップ名の変更(参考/ツクマテ投稿記事

 変更 $dataMap.displayName = 'マップ名'
 表示 SceneManager._scene._mapNameWindow.open();
 ※情報はセーブされない、マップを移動する度リセットされる。

ダッシュの許可と禁止(参考/ツクマテ投稿記事

 許可 $dataMap.disableDashing = true;
 禁止 $dataMap.disableDashing = false;
 ※情報はセーブされない、マップを移動する度リセットされる。

戦闘イベント中にステータスウインドウを更新(参考/ツクマテ投稿記事

 SceneManager._scene.refreshStatus

フォロワーにアニメ表示(参考/ツクマテ投稿記事

 $gamePlayer.followers().follower(index).requestAnimation(id);
 indexには「フォロワーのindex」を、idにはアニメーションIDを記入

フォロワーに噴出し表示(参考/ツクマテ投稿記事
 $gamePlayer.followers().follower(n).requestBalloon(m);
 n:フォロワー番号(パーティの2番目が0、3番目が1...)、m:バルーンID

連続する変数に連番をランダムに代入(参考/ツクマテ投稿記事

var i1 = 1;     // 変数番号の最初
var i2 = 10;    // 変数番号の最後
var v1 = 1;     // 連番の開始値
var v2 = 10;    // 連番の終了値
var value = Array.apply(null,Array(v2-v1+1)).map(function(v,i){return i+v1});
for(var i=i1;i<=i2;i++){
  var v = value.splice(Math.randomInt(value.length),1)[0];
  $gameVariables.setValue(i,v);
}

プラグインで作成されたウインドウも含め画面を真っ暗に(参考/ツクマテ投稿記事

SceneManager._scene.alpha = 0;





イベントコマンド「条件分岐」で使える条件スクリプト


 決定キーが押された瞬間 Input.isTriggered('ok')
 (okの部分をcancel,up, down, left, right, pageup, pagedownなどに置き換え可)
マウス入力の判定(参考/ツクマテ投稿記事

 左クリック TouchInput.isTriggered();
 右クリック TouchInput.isCancelled();

今戦闘中かどうか(尾島様)

 $gameParty.inBattle()

逃走/敗北可能か(参考/ツクマテ投稿記事

 BattleManager.canEscape()
 //逃走可能
 BattleManager.canLose()
 //敗北可能

スキルが使える状態にあるか(参考/ツクマテ投稿記事

 $gameParty.members()[X].canUse($dataSkills[index])
 //indexはスキルID

他のイベントが起動中か(参考/ツクマテ投稿記事

 $gameMap.isEventRunning()
 
プレイヤーとイベントの当たり判定(参考/ツクマテ投稿記事

 this.character(0).x == this.character(-1).x && this.character(0).y == this.character(-1).y

キャラクターが移動中かどうかを判定(参考/ツクマテ投稿記事

 this.character(id).isMoving()

 移動中ならtrue、停止中ならfalse。
 idに-1でプレイヤー、0でイベント自身、1以上で対応するイベントID。
 停止中かどうかを判定する場合は、以下。

 this.character(id).isStopping()

イベントのメモ欄の文章を判定(参考/ツクマテ投稿記事

 ■イベント3番のメモ欄に あいうえお と書かれてあるかどうかを判定
 $gameMap.event(3).event().note === 'あいうえお'

 ■イベント3番のメモ欄に書かれている文章の中に あいうえお が含まれているかどうかを判定
 $gameMap.event(3).event().note.match(/あいうえお/)

 ■イベント3番のメモ欄に <ABCD> と書かれているかどうかを判定
 $gameMap.event(3).event().meta['ABCD']

 ■イベント3番のメモ欄に <ABCD:1> と書かれているかどうかを判定
 $gameMap.event(3).event().meta['ABCD'] === '1'

複数の変数を比べる(参考/ツクマテ投稿記事

◆変数#0001~#0004のいずれかが0より大きかったらOK
[1,2,3,4].some(function(id){return $gameVariables.value(id) > 0});

◆変数#0001~#0004のすべてが0より大きかったらOK
[1,2,3,4].every(function(id){return $gameVariables.value(id) > 0});

◆スイッチ#0001~#0004の全てがONならOK
[1,2,3,4].every(function(id){return $gameSwitches.value(id) > 0});

変数1が3から44の間の値のとき(参考/ツクマテ投稿記事

 3 <=$game_variables[1] &&  $game_variables[1] <=44

・メッセージが表示中か(参考/ツクマテ投稿記事

$gameMessage.isBusy()

セーブデータがあるか(参考/ツクマテ投稿記事

 DataManager.isAnySavefileExists();

セーブデータ1があるか(参考/ツクマテ投稿記事

 DataManager.isThisGameFile(1);

今いるマップのメモ欄に○○という言葉が含まれているならば(参考/ツクマテ投稿記事
 !!$dataMap.note.match('○○')

今話しかけている(起動中の)イベントのメモ欄に○○という言葉が含まれているならば(参考/ツクマテ投稿記事
 !!this.character(0).event().note.match('○○')


変数1の中に特定のワードAAAが入っているか(参考/ツクマテ投稿記事

$gameVariables.value(1).indexOf('AAA') >= 0




イベントコマンド「変数の操作」で使える情報取得スクリプト

日時の取得(尾島様)

 年   new Date().getFullYear()
 月  new Date().getMonth() + 1
 日   new Date().getDate()
 曜日   new Date().getDay()
 時   new Date().getHours()
 分   new Date().getMinutes()
 秒   new Date().getSeconds()

 曜日も数値で取得されるので、数字から文字列に変更して下さい。
 0なら日、1なら月、3なら火・・・

マウスの位置を取得(ニナと鍵守の勇者ミニゲームより)

 画面X座標 TouchInput.x
 画面Y座標 TouchInput.y
 指定位置の情報を取得するために
 マス目を割り出すには、取得した数値を48で除算。

パーティのアクターIDの取得(参考/ツクマテ投稿記事

 $gameParty.members()[i].actorId();

 「i」並び順(0~)
 エネミーのIDを取得する場合は、以下。

 $gameTroop.members()[i]._enemyId

敵グループに勝利した時の合計金額(参考/ツクマテ投稿記事

 $gameTroop.goldTotal();
 敵グループに勝利した後イベントで代入

パーティ先頭キャラの武器タイプ1にセットされている装備名を取得(参考/ツクマテ投稿記事

 $gameParty.members()[0].equips()[0].name

パーティ先頭キャラの1番目のステート名を取得(参考/ツクマテ投稿記事

 $gameParty.members()[0].states()[0].name

パーティ先頭キャラの職業を取得(参考/フォーラム投稿記事

 $gameParty.members()[0].currentClass().name

BGMを取得(参考/ツクマテ投稿記事

 AudioManager.saveBgm();

 保存したBGMを再生(コマンド「スクリプト」)
 AudioManager.replayBgm($gameVariables.value(n));
 n:保存した変数番号

装備品のIDを取得(参考/ツクマテ投稿記事

 $gameActors.actor(n)._equips[n2-1]._itemId
 nをアクターのID、n2を装備スロットの上から数えた順番

パーティ内戦闘不能人数取得(参考/ツクマテ投稿記事

 $gameParty.deadMembers().length

アクター名の文字数取得(参考/ツクマテ投稿記事

 $gameActors.actor(1) ? $gameActors.actor(1).name().length : 0

移動速度を取得(参考/ツクマテ投稿記事

 $gameVariables.setValue(1,$gamePlayer.realMoveSpeed());



ダメージ計算式基礎知識

最低でも1のダメージを与える(参考/初心者講座

 Math.max(m,1)

 mにダメージ計算式を入れる

1から a.atk * 4 までの間でランダムにダメージを与える(参考/初心者講座
 (a.atk * 4) * Math.random() + 1

動ける仲間の数を基本ダメージに(参考/初心者講座

 100 * $gameParty.movableMembers().length

残りHPが20%以下になると、威力が2倍になる(参考/ツクマテ投稿記事

 a.atk * 4 *(a.hp <= a.mhp / 5 ? 2 : 1) - b.def * 2

防御している敵には通常の2倍のダメージを与え、それ以外は通常のダメージを与える
 (参考/ツクマテ投稿記事

 a.atk * (b.isGuard() ? 4 * b.grd : 1)

敵が12番(眠り)ステートの場合ダメージが100、それ以外は1(参考/ツクマテ投稿記事

 b.isStateAffected(12) ? 100 : 1

敵が3番目のステートにかかってたら威力が2倍に、それ以外は通常の威力(参考/ツクマテ投稿記事

 a.mat * (b.isStateAffected(3) ? 2 : 1)

毒、暗闇、沈黙の場合ダメージが10000加算(参考/ツクマテ投稿記事

 a.atk * 4 - b.def * 2 + (b.isStateAffected(4) || b.isStateAffected(5) || b.isStateAffected(6) ? 10000 : 0)

毒、暗闇、沈黙の場合ダメージが2倍(参考/ツクマテ投稿記事

 (a.atk * 4 - b.def * 2) * (b.isStateAffected(4) || b.isStateAffected(5) || b.isStateAffected(6) ? 2 : 1)

敵が4番(毒)のステートでなければ毒を付加、それ以外は14番(猛毒)のステートに変更(参考/ツクマテ投稿記事

 b.isStateAffected(4) ? b.removeState(4)||b.addState(14)||0 : b.addState(4)||0

敵を決して倒すことが出来ない「みねうち」(参考/ツクマテ投稿記事

 Math.min(元々の計算式 , b.hp - 1)

相手のHPを1にする(参考/ツクマテ投稿記事

 b.hp - 1

攻撃系スキル使用時、使用者にステートを付与(参考/RPGツクールMVwiki

 a.addState(ステート番号);攻撃系スキルの計算式

 例)防御しながら通常攻撃 a.addState(2);a.atk * 4 - b.def * 2

指定IDのアクターがいれば対象に40ダメージ(参考/ツクマテ投稿記事

 $gameParty.members().contains($gameActors.actor(id)) ? 40 : 10

敵HPの下一桁が0か偶数か奇数かによってダメージをそれぞれ、0、100、5000に(参考/ツクマテ投稿記事

 if(a.hp % 10 == 0){0} else if(a.hp % 2 == 0){100} else {5000}

indexの大きいバトラーほどダメージが大きい(参考/ツクマテ投稿記事

 10 * (b.index() + 1)

クリティカル時のダメージを変更する(参考/ツクマテ投稿記事

 b.result().critical ? クリティカル時の計算式 : 通常の計算式

 ※クリティカル時の3倍ダメージ効果は適用されてしまうので、それを考えた上で式を作る

素手のダメージ(参考/ツクマテ投稿記事

 a.paramBase(2)*a.paramRate(2) * a.paramBuffRate(2)

スキルの使用者が敵か味方かで効果を分ける(参考/ツクマテ投稿記事

 BattleManager._action._subjectActorId != 0 ? (味方の場合の計算式) :(敵の場合の計算式)

攻撃と同時にmpを回復する(参考/ツクマテ投稿記事

 a.gainMp(回復値); a.atk * 4 - b.def * 2

小技
プレイヤーとイベントの距離判定(参考/ツクマテ投稿記事

var interpreter = this;
isInRange = function( chara1Id, chara2Id, range ) {
    var chara1X = interpreter.character( chara1Id ).x;
    var chara1Y = interpreter.character( chara1Id ).y;
    var chara2X = interpreter.character( chara2Id ).x;
    var chara2Y = interpreter.character( chara2Id ).y;
    return ( chara2X - range <= chara1X ) 
        && ( chara2X + range >= chara1X ) 
        && ( chara2Y - range <= chara1Y ) 
        && ( chara2Y + range >= chara1Y );
};
条件分岐にてisInRangeに下記引数を指定して実行します。
引数1:チェック対象1のイベントID
引数2:チェック対象2のイベントID
引数3:チェック範囲距離(3×3の場合は3、5×5の場合は5を指定する。)
※チェック対象にプレイヤーを指定する場合は、チェック対象1のイベントIDに-1を指定してください。

拍手[3回]

RPGツクールMV プラグイン備忘録・ツクマテ編2

目次123ツクマテ1ツクマテ2フォーラムチョイ技/講座


システム
アイテムを捨てる
変数やアイテムで売買できる
売却専門ショップ
滑り止め選択ウィンドウ
ダッシュのスピード制御
まばたき
解像度変更
立ち絵表示簡略 v1.01
シンボルエンカウント
アイテム入手の規格化
探偵モード(イベントをタップで直接実行)
長押しを、メニュー&キャンセルにする
タイトルBGM維持
タイマーをミリ秒まで表示
補助ウインドウを使ったSS付セーブ画面 
タイトルとメッセージウィンドウの一部の変更可能 
スキルツリー(Ver1.3以降には未対応)
スターオーシャンⅣのようなメニュー画面
アイテムのカテゴリーを増やす
難易度選択追加機能
オリジナルタイマー
(カウントアップ、1/100秒表示、非表示のまま稼動、表示形式カスタマイズ)
宝箱の中身を乱数で決定
ダメージ床のダメージ数値変更
ショップウィンドウ改変(装備するアイテムの全パラメータの変化を表示)
右or左クリックでの条件分岐
レベルによる入手経験値の増減
不要なステータス項目やバトルコマンドを削除
サブ武器カテゴリー追加
文字列を扱う変数を導入
移動ルートの設定で画像変更した場合にマップを移動しても元に戻さない
アニメーションをピクチャ上に表示1
ピクチャ上にアニメーションを表示2
簡易ダッシュモーション
アイテム交換ショップ
イベントの移動範囲のリージョンによる制御
アイテム名、通貨単位等で制御文字を使える
敵の出現をスイッチでコントロール
中央寄せ隊列調整
SVバトル中にアクターの立ち絵表示
敵の出現数をランダムに
フィールドでレベルが上がった時に任意のスイッチをON
戦闘アニメーションの表示切替
アニメーションで一枚絵を使用可能に 
目の前を通るプレイヤーに反応するイベント
アイテム・武器・防具の合成機能
標準のショップを地味に拡張する
ウインドウスキン切り替え
文章内の特定位置で効果音を演奏
イベントでアクターに特徴を追加
文章の表示中ウインドウ外のクリックではメッセージを送らない
ゲームオーバー画面の後、復活
制御文字拡張
MMO風アイテムウィンドウ
アイコンをマップイベントとして使う
BGM自動演奏・BGS自動演奏制御
指定したアイテムのみ買い取ってくれるショップ
キーボードでテキストフォーム入力修正版
追加ステータス最大二つのゲージを表示
アクターごとにMPの名称を変える
戦闘終了時にMEではなくBGMを演奏
セーブできる最大数を変更
控えメンバーの獲得経験値を調整
多人数パーティ向けメニューステータス
スイッチや変数をリアルタイムに表示・操作
収支の合計額を取得する
音楽ファイルにループタグがついているかチェック
キー長押しでメニューを開く
乗降タイミングでコモンイベント実行
特定の位置から音を鳴らす
スキルタイプ選択をなくす
ゲージ改変(ゲージの色、ゲージの枠の色を自由に変更)
並び替え機能拡張
ショプでの売買レート変更
指定アイテム専用かつ売却専用のショップ
マップタイルのコピー 
ナウローディングをアニメーション 
すべてのアイテムを強制売却
遠景をアニメーション
音楽ファイルにループタグがついているかチェック
職業の変更で能力値を半分
文章の表示の顔をサイズの大きい立ち絵に
ゲーム内の数値を任意の文字列に置き換える
パラメータテキストカラー変更
アクティブなウィンドウの背景色を変更
振り返る直前のそのイベントの向きを代入
ショップで特定のアイテムを購入したら変数に加算
顔グラフィック表示位置変更
買う数量を制限できるショップ
ショップの設定拡張
アイテム欄の分類を増やす
ピクチャをウインドウよりも手前に表示する
天候の「雪」の降る方向を指定
天候カスタマイズ
イベント中操作禁止
タイトル画面に雪を降らせる
会話表示中にLive2dでキャラクターを表示
アイテム画面改造
メニューにロードを追加
マップ上のイベントにゲージを表示
スキル強化システム 
ショップの商品を後から追加できる
天候を一番手前(ピクチャの上)に表示
アイテム欄の分類をなくす
ピクチャーのフェード
ステータスにサイドビューグラ表示
メニュー画面に満腹度、水分、睡眠ゲージを追加
メニューコマンドに枠をつける
フィールドでもマップを戦闘背景に
アクターの簡易ステータス表示を変更
ステータス画面全員表示
制御文字で画像を表示
オプションのBGMなどの区切りを10%ごとに
メニューステータスの可視行の変更
複数のメッセージウインドウを同時に表示
天候効果を時間停止効果
テンキー風数値入力
メニューのカーソル位置を記憶
ウェイトをプラグインコマンドでスキップ
アイテム合成(レシピなし)
メニューを介さず特定アイテムを使用
イベント接触判定制御
「購入のみ」のショップから「売る」コマンドを消す
乗り物から降りた時、マップに指定したBGMを演奏
タイトルコマンドの色を変更
ピクチャを右寄せ、左寄せなどで表示
イベントからミュート
十字キーでメッセージ送り
装備の組み合わせによるセット効果
会話イベント中でもプレイヤー動かせる
毒ステータスでパーティ離脱後もHP減少
アイテム選択で選択できないアイテムをリストに表示
名前入力でカナか英語を指定できる
ゲーム変数に空の文字列を代入
文字枠調節&文字半透明化制御文字追加
星タイル優先度調整
メッセージの2行同時表示
3Dダンジョンのようなキー操作 ・サイコロ
物理エンジン
歩行とジャンプをツクール2000風に
床ダメージを先頭のキャラのみに
マップ上にアイテムスロット表示
セーブ画面でキャラを非表示
スイッチで通行設定を変更
ウインドウの開閉動作を無くす
マップ名を常に表示
アイコンを隙間なく連続で表示する制御文字を追加
まんたんコマンド
ピクチャーの衝突判定
ピクチャやイベントの移動時に残像表示
常に移動するプレイヤー
敵グラフィックをピクチャで表示
コモンイベントを名前で呼出
難易度の設定
メッセージの途中で立ち絵を変更する制御文字
歩行キャラに影を表示
アイテムの所持数を重量制に
集合中の隊列メンバーを透明化
ショップで、キーボード操作でもマウス用の補助ボタンを出す
アイテム選択のカテゴリを拡張
先頭のキャラのみジャンプ
ゲーム終了時に確認
4つまでの変数を画面上に表示
Live2dでキャラクターを表示
メッセージテキストの表示位置変更
コストが追加された自作ショップ
システムサウンドを変数によって変更
簡易的なダッシュモーション改変
顔グラサイズ変更
装備スロット変更
敵がランダムで出現
ウインドウ開閉アニメを省略
・ ショップのヘルプウィンドウの初期値をアイコン及びメッセージに
レイアウトの異なるアイテム画面
メニューに閉じるを追加
レベルアップ時、HPとMPが回復
エンカウント率調整
毒沼ダメージ調整
パーティ編成
すり抜けカスタマイズ
タイトル表示前演出
立ち絵表示(試作版)
マップ上で変数を表示
隊列人数変更(バトル人数はデフォ)
画面の色調変更を記憶
全ミュート
アイテム入手時に変数を操作
最強装備を値段の高い順に
クエストシステム+エディタ
選択肢のカラム(列)数変更
ウィンドウを自作デザインに
変数の入替え
メニューに情報ウィンドウ追加
マップ上でステートアイコンを表示
英語/日本語モードオプションで切り替え可能
並び替えシーン NEW!
アイテム選択表示位置変更  NEW!
先頭アクターごとに歩行速度を変更 NEW!
総取得ゴールド算出 NEW!
画面にノイズを NEW!
ダッシュ速度変更 NEW!
スキル習得時にメッセージ  NEW!
イベントの発射&当たり判定 NEW!
メニューに画像を表示する NEW!
ダメージ床を通ったキャラのみ被ダメ NEW!
「タイトルへ」と「やめる」の文字表示位置を中央揃え NEW!
任意の場所にワープする NEW!


その他
セーブファイル記載情報変更
タッチパッド/スティック入力・非タイル移動
定型文カラー置き換え
スマホ向けUI
決定キーで実行するイベントが無い場合にコモンイベントを呼ぶ
マップ画面拡大縮
VX規格マップチップ用ユーティリティー
イベントのスクリプトコマンド拡張
影ペンの不透明度を変更
コモンイベントを呼ぶアイテムでメニューが勝手に閉じるのを対策する
自動連打機能の設定変更
デフォルト値設定
768×432(16:9)固定デフォルト風UI
アクターのメモ欄動的設定
画面の中心点をずらす
オンライン通信で他のプレイヤーを表示する
オプションでBGM等を0%に設定すると読み込み自体を行わなくする
騒音チェッカー「さざなみ(漣)くん」
MadeWithMv.jsのバグを修正と機能の追加
Yanflyさんのゲームパッド・キーボードコンフィグの日本語化
サンシロさんの「自動生成マップv1.15」に機能を追加
外部ページへのリンクを表示
プラグインコマンドの簡易字句解析
ver1.3.2のバグ周知と対策
サーバーへデータを送信したり受信したりできる
Google Analytics を利用したアクセス解析
滝アニメなどの速度変更
一時的にウェイトを止める
$gameVariables, $gameSwitchesを名前参照できるようにする
IRPPプラグイン32個(モンスター図鑑など)
ソースコードの暗号化
独自セーブ
茂みフラグを改造
キー操作を完全に禁止
FPS表示をカスタマイズ
職業欄をアイコンに
マップのリフレッシュ回数を調べる
職業ごとの基本能力値と最大値を変更
マップ画面のゲーム速度を改善
ピクチャの色相変更
茂み判定拡張
ピクチャの使用状況をチェック
プレイヤーの座標のタイル情報をコンソールに出力
セーブ画面で歩行グラが表示されないバグの修正
演出高速化・快適化・微調整 NEW!
アクティブでない時、ゲームを一時停止 
NEW!
メッセージボックス入力補助
 NEW!
メッセージ組み込み開発支援 
NEW!
マップ画面のゲームの速度を改善
 NEW!
「文章の表示」の文字のアウトラインを変更
  NEW!
数値入力のキャンセル 
NEW!
現在のマップ内のリージョンを数える
 NEW!
現在のマップ内の地形タグを数える 
NEW!
アイテムのランダム消去 
 NEW!

拍手[2回]

RPGツクールMV ミニゲーム作成講座
「タイミングよく決定キーを押す」の時間です。

簡易的なゲージの作り方になります。
上下または左右に往復し、特定の範囲にある時決定キーを押すと入力成功!
という簡単なゲームが作れます。

例えば
・釣りゲーム
・ゴルフゲーム
・野球ゲーム
えとせとら

サンプルプロジェクトには「だるまおとし」っぽいのが入ってます。

サンプルプロジェクトのダウンロード

細かいことは、プロジェクトファイルを見てもらうことにして
ここでは、考え方を書いてきます。

だるま落としゲームの仕様書を作ります。

--------------------------------
・決定キーを押すと、ハロルドがコマを蹴飛ばしだるまを落とします。
・決定キーを押すタイミングによって、成功と失敗に分かれます。
・タイミングは上下に動くバー(飛行船)の位置によって取得されます。
--------------------------------

終わり。
仕様書ができました。

どこから作っていくかを考えます。

--------------------------------
①上下に動くバーを作る
②決定キーを押すとバーの位置を取得するイベントを作る
③ハロルドを動かし、コマを動かし、だるまを落とすイベントを作る
--------------------------------

この順番で作ることにします。

バーの見た目は、好きなように彩るとよろしいでしょう。
ここでは、飛行船の画像と、マップチップの適当なもので作りました。
バーを動かすイベントは、飛行船の自立移動の項目で制御します。
するとあら不思議! ほっといても勝手に上下に動いてくれます!
状況に応じてとめたい場合は、スイッチでイベントページを切り替えます。

というわけでバーができました。
次に、決定キーを押すと、バーの位置を取得するイベントを作ります。

決定キーの入力を取得する方法は、大きく分けて二つ考えられます。
一つは、プレイヤーを動かして、スイッチになるイベントを調べさせること。
もう一つは、並列処理イベントを使って、プレイヤーの入力を監視する方法です。

サンプルのプロジェクトには、それぞれのやり方が書いてあるので
参考にしてください。

さて次の問題は、どうやってバーの位置を取得するかです。

まず、イベントの現在位置を取得します。
今回のように、1マスだけの判定なら
取得した位置をそのまま、判定に使ってもいいのですが
範囲が広い場合は、条件分岐が複雑になるので
リージョンの力を借りることにします。

リージョンは、マップパレットの「R」タブから選択して
マップに描画できるチップです。
通常、マップの設定からランダムエンカウント用の出現範囲に使用されます。
これを活用して、イベントがある位置のリージョン番号が
特定の番号なら、OKとします。

判定ができたら、後は「移動ルートの設定」コマンドを使って
それぞれのイベントにそれぞれの行動を入力するだけ!
簡単ですね!

詳しいやり方は、サンプルプロジェクトを見てください。

この技法は覚えておくと色んなところで活用できると思います。
今回はタイミングよくキーを押すためのバーでしたが
応用すれば、タイマーイベントなんかも作れますね。
(ワンコが画面を一周してくる間に何かを集めるとか)

ワンボタンでちょこっと遊べるミニゲーム。
あなたも作ってみませんか?

拍手[5回]

オススメGAME
広告枠
アクセス解析

ATOM  
ATOM 
RSS  
RSS 


Flash Game 館

ソフトウェア制作講座






Copyright ©   YUWAKA'S SOFT   All Rights Reserved
Design by MMIT / TemplateB3  Powered by NINJA TOOLS
忍者ブログ [PR]