忍者ブログ
windowsやブラウザ のゲーム作ったりとか。
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メニューを変更したい時に)

拍手[3回]

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

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

ここにないものは、以下のサイトで調べると見つかるかもしれません。
ツクールMZスクリプトリファレンスwiki
ツクールMVスクリプトリファレンスwiki
RPGツクールMZ スクリプトリファレンス
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

・スクリプトで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;

ステータス表示を更新する(参考/ツクマテ投稿記事
SceneManager._scene._statusWindow.refresh();

同じマップの別のイベントの内容を実行(参考/公式tweet
this.character(イベントID).start();

タイマーを進める(参考/roshさんのブログ

var time = $gameTimer.seconds()*60 - 数値 ;

$gameTimer.start(time);


ピクチャーを全消し(参考/こまさん
$gameScreen.clearPictures();


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


 決定キーが押された瞬間 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

指定番号のピクチャの存在判定(参考/トリアコンタン様)

$gameScreen.picture(1)




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

日時の取得(尾島様)

 年   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());

<stone>とメモ欄に書いてあるアイテムの合計所持数を取得(参考/ツクマテ投稿記事

 $gameParty.items().reduce(function(a,c){return a+(c&&c.meta['stone']&&$gameParty.numItems(c)||0)},0)





ダメージ計算式基礎知識

最低でも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

敵からの攻撃がまずMPにダメージがいき、それが0になったら、HPの方へダメージがいく
 (参考/ツクマテ投稿記事

 if (300 > b.mp){ b.gainHp(b.mp - 300); 300;} else{300};

弱化ステート(例えば毒や麻痺など)の数に応じて威力が上昇するスキル
 (参考/ツクマテ投稿記事

 1. スキル専用の属性を一つ作成する
 2. スキルの計算式を a.atk * ((b.elementRate(x)) と設定
  →xは設定した属性IDを入れる(a.atkは例えなので、100のような固定値でもOK)。
 3. 弱化ステートの特徴に「属性x有効度〇%」を持たせる

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

 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.moveTowardCharacter({x: x座標, y: y座標})(参考/ツクール公式

プレイヤーを追いかけてくる(参考/ムノクラさん)

 this.moveStraight(this.findDirectionTo($gamePlayer.x,$gamePlayer.y));

指定した座標にジャンプ(参考/ツクマテ投稿記事

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

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

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

画像インデックスのみの指定(参考/ツクマテ投稿記事

 this._characterIndex = 1;

「このイベント」のセルフスイッチを操作(参考/kurauさん)

 $gameSelfSwitches.setValue([this._mapId, this._eventId , "A or B or C or D"], true or false);

「このイベント」の方向をむく(参考/砂川赳さん)

 this.turnTowardCharacter($gameMap.event($gameMap._interpreter._eventId))

表示位置をずらす(参考/あんばたー17号さん)

 this._x += 0.1

イベントが自分のIDより1つ若いイベントを追いかける(参考/ツクマテ投稿記事

const e = $gameMap.event(this._eventId - 1); if (!e.isMoving()) this.moveTowardCharacter(e)

※追尾させるイベントはすり抜けにチェックを入れる

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

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を指定してください。

戦闘中イベントで与えたダメージをポップアップ表示(参考/ツクマテ投稿記事

//味方にポップアップ表示

this.iterateActorIndex(-1, function(Actor) {

Actor.startDamagePopup();

}.bind(this));

//敵にポップアップ表示

this.iterateEnemyIndex(-1, function(enemy) {

enemy.startDamagePopup();

}.bind(this));

拍手[15回]

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が回復
エンカウント率調整
毒沼ダメージ調整
パーティ編成
すり抜けカスタマイズ
タイトル表示前演出
立ち絵表示(試作版)
マップ上で変数を表示
隊列人数変更(バトル人数はデフォ)
画面の色調変更を記憶
全ミュート
アイテム入手時に変数を操作
最強装備を値段の高い順に
クエストシステム+エディタ
選択肢のカラム(列)数変更
ウィンドウを自作デザインに
変数の入替え
メニューに情報ウィンドウ追加
マップ上でステートアイコンを表示
英語/日本語モードオプションで切り替え可能
並び替えシーン 
アイテム選択表示位置変更  
先頭アクターごとに歩行速度を変更 
総取得ゴールド算出 
画面にノイズを 
ダッシュ速度変更 
スキル習得時にメッセージ  
イベントの発射&当たり判定 
メニューに画像を表示する 
ダメージ床を通ったキャラのみ被ダメ 
「タイトルへ」と「やめる」の文字表示位置を中央揃え 
任意の場所にワープする 
キャラクターのScaleを一括で変更
先頭キャラ以外戦闘不能に
メニュー/スキル画面でのアクター情報の表示・非表示を変更
ショップ画面で個数を指定せずに売買
プレイヤーから離れても自立移動

マップ名を表示したままに
アイテムに単位を付ける
一歩ずつ移動
売却画面の「大事なもの」選択不可
アイテムの売値変更
飛行船の浮遊・着陸時の速度を変更
二刀流時は装備画面で簡単に持ち替え

アクターの歩行グラをコピー

謎解きマップシステム
 NEW!
手振れシェイク
 NEW!
メッセージ中でも顔グラ変更
 NEW!
自動武具ショップ
 NEW!
奥行きアニメ
 NEW!
アイテムを捨てる
 NEW!
ゲージ表示
 NEW!
アイテム個数表示変更
 NEW!
パーティ編成シーン
 NEW!
BGMクロスフェード
 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!
Googleアナリティクス NEW!
プラグイン軽量化&難読化 NEW!
カウンター越しの会話禁止 NEW!
画像を拡大してもぼやけない NEW!




拍手[3回]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

拍手[10回]

前回に引き続き、今度は屋根のオートタイルを作ります。

①四角4つのキャンバスを開き、屋根の4つの角を
 それぞれ配置していきます。


②「AUTOTILE(オートタイル)」と書かれたキャンバスを開き
 今作ったタイルを下4マスに配置します。
 (最初からオートタイルのキャンバスに配置していってもいいです)
 下4マスがメインのパーツです。
 正方形や長方形を描く場合は、このパーツだけで描けます。
 左上の1マスは、パレットにどんなパーツかを表示するダメのもので
 わかりやすければどんな絵を入れていても大丈夫です。
 右上の1マスは、正方形や長方形以外の形を描くときに使われる補助パーツです。
 まずは、この状態でタイルセットに保存してみましょう。

③はい、また問題が浮き彫りになりましたね。
 レンガの部分はまた、影が悪さをしているようなので
 影のない部分を貼り付けることにしましょう。

 そして四角以外の形にしたときの足りないパーツも
 なんとなくどういうものが必要か、ピンときたでしょうか?
④では、一番左上を埋めてみましょう。
 今回は、一番左端の1マス用キャンバンスを開いてください。
 パレットから一番右下のパーツを選択し
 一番左上のグリッドに合わせて配置します。


 これを、オートタイルに貼り付けて、どうなったか見てみましょう。


⑤はい、角が一つ埋まりました!
 こんなに簡単にできるなんて、今回はとてもラッキーです!

⑥若干色合いの違う線は、後でペンツールで調整するとして
 他の角も同じ要領で作っていきます。
  

⑦はい、ぴったり埋まりました!

 補助パーツの上2つ分の色の違う部分を
 ペンツールで調整すれば完成です!
 今回は、茶色い横線を1本引くだけで調整できました。
 非常にラッキーです。

というわけで、壁・天井共に完成です!
今回作ったオートタイルは、素材のページで配布中!


いきなりオリジナルのオートタイルを作るのは難しいけど
素材を改変することで、なんとなくやり方がわかってもらえたでしょうか?


他のサイトさんのオートタイル作成講座もご紹介しておきますね。

・RPGツクールMVのヘルプ内
 資料集→素材企画に、タイルセット詳細があるのでチェック!
 ほぼ同じ内容ですが、公式サイトの活用講座にも掲載されています。
BB ENTERTAINMENT BLOGさんの「オートタイル研究

拍手[0回]

広告枠
アクセス解析

ATOM  
ATOM 
RSS  
RSS 


ソフトウェア制作講座





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