RPGツクールVXAce & MV & MZスクリプトwikiとプラグイン

ツクールMZスクリプトリファレンスwiki

トップページ > ツクールMZスクリプトリファレンスwikiトップページ

トップページ / ツクールMZスクリプトリファレンスwiki

・頻繁にこのwikiを参照される場合はこのページをブックマークしていただくと便利です。

・MVと変わらないコードが多いです。

・イベントスクリプトに書き込むことを前提として考えられています。

・各イベント名のリンクはその項目の詳細ページに繋がっています。

・項目はデフォルトのイベントコマンド順になっております。

・その項目について詳しく知りたい場合はイベントタイトルをクリックしてください。

皆様のゲーム製作のお役に立つことが出来れば幸いです。


*wikiの説明には専門用語が出てきます。

この目次最後に簡単な説明を付けておきますので必要であれば参照してください。



------以下イベントコマンド(イベントコマンド順)------


文章の表示

$gameMessage.setFaceImage("画像ファイル名", 0~7位置番号);
$gameMessage.setBackground(0~2の背景番号);
//背景番号 0:ウィンドウ 1:暗くする 2:透明
$gameMessage.setPositionType(0~2の位置番号);
//位置番号 0:上 1:中 2:下
$gameMessage.setSpeakerName("名前");
$gameMessage.add("表示するメッセージ");

選択肢の表示

const choices = ["選択肢1","選択肢2","選択肢3","選択肢4","選択肢5"]
$gameMessage.setChoices(choices, 最初に選択されている番号, キャンセルされた際の番号);
$gameMessage.setChoiceBackground(0~2の背景番号);
//背景番号 0:ウィンドウ 1:暗くする 2:透明
$gameMessage.setChoicePositionType(0~2の位置番号);
//位置番号 0:左 1:中 2:右
$gameMessage.setChoiceCallback(n => {
 this._branch[this._indent] = n;
});
this.setWaitMode("message");
//ここでスクリプトを切って下さい。
switch (this._branch[this._indent]) {
	case 0: $gameMessage.add("選択肢1を選択"); break;
	case 1: $gameMessage.add("選択肢2を選択"); break;
	case 2: $gameMessage.add("選択肢3を選択"); break;
	case 3: $gameMessage.add("選択肢4を選択"); break;
	case 4: $gameMessage.add("選択肢5を選択"); break;
	default: $gameMessage.add("キャンセルを選択"); break;
}

数値入力の処理

$gameMessage.setNumberInput(代入する変数,桁数)

アイテム選択の処理

$gameMessage.setItemChoice(代入する変数,アイテムタイプ)

文章のスクロール表示

$gameMessage.setScroll(スクロールスピード, 早送り有無)
//早送り有無 有:false 無:true
$gameMessage.add("スクロールする文章1")
$gameMessage.add("スクロールする文章2")
$gameMessage.add("スクロールする文章3")
this.setWaitMode("message");

スイッチの操作

$gameSwitches.setValue(スイッチID,true or false)

変数の操作

$gameVariables.setValue(変数ID,変数の値)

セルフスイッチの操作

const key = [マップID, イベントID, "スイッチA,B,C,D"]
$gameSelfSwitches.setValue(key, true or false)

タイマーの操作

//タイマーをスタート
$gameTimer.start(フレーム数(1/60秒))
//タイマーをストップ
$gameTimer.stop()

条件分岐

個別ページにて説明


ループ・ループの中断

MVと同様のため省略


イベント処理の中断

this._index = this._list.length

コモンイベント

$gameTemp.reserveCommonEvent(コモンイベントID)

ラベル・ラベルジャンプ

//ラベルの設定
this._list[this._index].parameters[0] = "ラベルの名前"
//ラベルジャンプ
for (var i = 0; i < this._list.length; i++) {
	command = this._list[i];
	if (command.parameters[0] === "ラベルの名前") {this.jumpTo(i)}
}
//単純に指定の行に飛びたい場合
this.jumpTo(行数)

注釈

//一行の場合ここにコメント
/*
複数行の場合ここにコメント
複数行の場合ここにコメント
複数行の場合ここにコメント
*/

所持金の増減

$gameParty.gainGold(値)
$gameParty.loseGold(値)

アイテムの増減

//アイテムを増やす
$gameParty.gainItem($dataItems[アイテムID], 個数)
//アイテムを減らす
$gameParty.loseItem($dataItems[アイテムID], 個数)
//ひとつだけ減らす
$gameParty.consumeItem($dataItems[アイテムID])

武器の増減

//武器を増やす
$gameParty.gainItem($dataWeapons[武器ID], 個数, 装備も含めるか)
//武器を減らす
$gameParty.loseItem($dataWeapons[武器ID], 個数, 装備も含めるか)
//装備も含めるか 含める:true 含めない:false

防具の増減

//防具を増やす
$gameParty.gainItem($dataArmors[防具ID], 個数, 装備も含めるか)
//防具を減らす
$gameParty.loseItem($dataArmors[防具ID], 個数, 装備も含めるか)
//装備も含めるか 含める:true 含めない:false

メンバーの入れ替え

//アクターを追加
$gameParty.addActor(アクターID)
//アクターを除名
$gameParty.removeActor(アクターID)
//初期化
$gameActors.actor(アクターID).setup(アクターID)

HPの増減

this.changeHp($gameActors.actor(アクターのID), 変化量, 戦闘不能を許可するか)
//戦闘不能を許可するか 許可:true 許可しない:false

MPの増減

$gameActors.actor(アクターID).gainMp(変化量)

TPの増減

$gameActors.actor(アクターID).gainTp(変化量)

ステートの変更

//ステートの付加
$gameActors.actor(アクターID).addState(ステートID)
//ステートの解除
$gameActors.actor(アクターID).removeState(ステートID)

全回復

$gameActors.actor(アクターID).recoverAll()

経験値の増減

$gameActors.actor(アクターID).changeExp(変化量, レベルアップを表示するか)
//レベルアップを表示するか 表示:true 非表示:false

レベルの増減

$gameActors.actor(アクターID).changeLevel(変化量, レベルアップを表示するか)
//レベルアップを表示するか 表示:true 非表示:false

能力値の増減

$gameActors.actor(アクターID).addParam(能力値ID, 変化量)

スキルの増減

//スキルを覚えさせる
$gameActors.actor(アクターID).learnSkill(スキルID)
//スキルを忘れさせる
$gameActors.actor(アクターID).forgetSkill(スキルID)

装備の変更

$gameActors.actor(アクターID).changeEquipById(装備タイプ, 装備品)

名前の変更

$gameActors.actor(アクターID).setName("変更する名前")

職業の変更

$gameActors.actor(アクターID).changeClass(職業ID)

二つ名の変更

$gameActors.actor(アクターID).setNickname("変更する二つ名")

プロフィールの変更

$gameActors.actor(アクターID).setProfile("変更後のプロフィール")

場所移動

$gamePlayer.reserveTransfer(マップID, x座標, y座標, 向き, フェード)
//向き 2:下 4:左 6:右 8:上
//フェード 0:黒 1:白 2:なし

乗り物の位置設定

$gameMap.vehicle(乗り物ID).setLocation(マップID, x座標, y座標)

イベントの位置設定

character = this.character(キャラクターID)
character.locate(X座標, Y座標)
character.setDirection(方向)

マップのスクロール

$gameMap.startScroll(方向,距離,速度)

移動ルートの設定

this.character(キャラクターID).forceMoveRoute({
	"list":[{"code":コードID,"parameters":パラメータ}
	{"code":コードID,"parameters":パラメータ}],
	//ルート入力終了 *必須
	{"code":0}],
	//動作を繰り返す
	"repeat":true か false,
	//移動できない場合は飛ばす
	"skippable":true か false,
	//完了までウェイト
	"wait":true か false
})

乗り物の乗降

$gamePlayer.getOnOffVehicle()

透明状態の変更

$gamePlayer.setTransparent(透明化するか)
//透明化するか 透明にする:true 不透明にする:false

隊列歩行の変更

//隊列歩行をONにする
$gamePlayer.showFollowers()
$gamePlayer.refresh()
//隊列歩行をOFFにする
$gamePlayer.hideFollowers()
$gamePlayer.refresh()

隊列メンバーの集合

$gamePlayer.gatherFollowers()

アニメーションの表示

//マップ上の場合
const character = this.character(イベントID);
$gameTemp.requestAnimation([character], params[1])

//戦闘中の場合
let targets = [];
const param = 敵番号(-1で敵全体)
this.iterateEnemyIndex(param, enemy => {
 if (enemy.isAlive()) {
  targets.push(enemy);
 }
});
$gameTemp.requestAnimation(targets, 12);

フキダシアイコンの表示

$gameTemp.requestBalloon(this.character(キャラクターID), フキダシアイコンID);
//キャラクターID -1:プレイヤー 0:このイベント 1~:イベントID
this.setWaitMode("balloon"); //ウェイトを入れる場合はこのコードを追加

イベントの一時消去

$gameMap.eraseEvent(イベントID)

ピクチャの表示

$gameScreen.showPicture(番号,"画像の名前",原点,x座標,y座標,幅の拡大率,高さの拡大率,不透明度,合成方法)

ピクチャの移動

$gameScreen.movePicture(番号,原点,x座標,y座標,幅の拡大率,高さの拡大率,不透明度,合成方法,移動時間)
//ピクチャの移動中ウェイトをかけるなら以下のコードを追加
this.wait(ウェイトフレーム数)

ピクチャの回転

$gameScreen.rotatePicture(ピクチャ番号, 回転速度)

ピクチャの色調変更

$gameScreen.tintPicture(番号, [赤,緑,青,グレー], 変化時間)
//色調変化中ウェイトをかけるなら以下のコードを追加
this.wait(ウェイトフレーム数);

ピクチャの消去

$gameScreen.erasePicture(番号)

ウェイト

this.wait(ウェイトフレーム数)

画面のフェードアウト・画面のフェードイン

//画面のフェードアウト
$gameScreen.startFadeOut(フェード時間)
//フェード時ウェイトをかけるなら以下のコードを追加
this.wait(ウェイトフレーム数)
//画面のフェードイン
$gameScreen.startFadeIn(フェード時間)
//フェード時ウェイトをかけるなら以下のコードを追加
this.wait(ウェイトフレーム数)

画面の色調変更

$gameScreen.startTint([赤,緑,青,グレー], 変化時間)
//色調変更中にウェイトするなら以下のコードを追加
this.wait(ウェイトフレーム数)

画面のフラッシュ

$gameScreen.startFlash([赤,緑,青,強さ], 時間)
//フラッシュ中にウェイトをかけるなら以下のコードを追加
this.wait(ウェイトフレーム数)

画面のシェイク

$gameScreen.startShake(強さ, 速さ, 時間)

天候の設定

$gameScreen.changeWeather("天候名",強さ,移行時間)

BGMの演奏

AudioManager.playBgm({"name":"BGM名","volume":音量,"pitch":ピッチ,"pan":位相})

BGMのフェードアウト

AudioManager.fadeOutBgm(フェードアウト時間(秒数))

BGMの保存・BGMの再開

//BGMの保存
$gameSystem.saveBgm()
//BGMの再開
$gameSystem.replayBgm()

BGSの演奏

AudioManager.playBgs({"name":"BGSの名前","volume":音量,"pitch":ピッチ,"pan":位相})

BGSのフェードアウト

AudioManager.fadeOutBgs(フェードアウト時間(秒数))

MEの演奏

AudioManager.playMe({"name":"ME名","volume":音量,"pitch":ピッチ,"pan":位相})

SEの演奏・SEの停止

//SEの演奏
AudioManager.playSe({"name":"SE名","volume":音量,"pitch":ピッチ,"pan":位相})
//SEの停止
AudioManager.stopSe()

ムービーの再生

Video.play("movies/拡張子付きフォルダ名");
//動画再生中ゲームを止めるなら以下を追加
this.setWaitMode("video");

戦闘の処理

BattleManager.setup(敵グループID,逃走可否,敗北可否)
BattleManager.setEventCallback(n => $gameVariables.setValue(変数ID, n))
$gamePlayer.makeEncounterCount()
SceneManager.push(Scene_Battle)

//逃走可否 可:true 否:false
//敗北可否 可:true 否:false
//ここでスクリプトを切ってください。
//戦闘結果は指定した「変数ID」で条件分岐
//0:勝利, 1:逃走, 2:敗北
//が結果として格納されます。
}
//戦闘結果のスクリプトは1例となります。

ショップの処理

goods = [
[アイテムの種類,アイテムのID,価格を指定するか,値段],
[アイテムの種類,アイテムのID,価格を指定するか,値段],
… //コピペするの際はこの行は消してください。
[アイテムの種類,アイテムのID,価格を指定するか,値段]
]
//価格を指定するか 指定:true 指定せず:false
//価格を指定しない場合「価格を指定するか,値段」の2項目は省略可
SceneManager.push(Scene_Shop)
SceneManager.prepareNextScene(goods, 購入のみか)
//購入のみか 購入のみ:true 売却も含める:false

名前入力の処理

SceneManager.push(Scene_Name)
SceneManager.prepareNextScene(アクターID, 最大文字数)

メニュー画面を開く

SceneManager.push(Scene_Menu)
Window_MenuCommand.initCommandPosition()

セーブ画面を開く

SceneManager.push(Scene_Save)

ゲームオーバー

SceneManager.goto(Scene_Gameover)

タイトル画面に戻す

SceneManager.goto(Scene_Title)

戦闘BGMの変更

$gameSystem.setBattleBgm({"name":"BGM名","volume":音量,"pitch":ピッチ,"pan":位相})

勝利MEの変更・敗北MEの変更

//勝利MEの変更
$gameSystem.setVictoryMe({"name":"BGM名","volume":音量,"pitch":ピッチ,"pan":位相})
//敗北MEの変更
$gameSystem.setDefeatMe({"name":"BGM名","volume":音量,"pitch":ピッチ,"pan":位相})

乗り物BGMの変更

const vehicle = $gameMap.vehicle(乗り物ID);
vehicle.setBgm({"name":"BGM名","volume":音量,"pitch":ピッチ,"pan":位相})

セーブ禁止の変更

//セーブを許可
$gameSystem.enableSave()
//セーブを禁止
$gameSystem.disableSave()

メニュー禁止の変更

//メニューを許可
$gameSystem.enableMenu()
//メニューを禁止
$gameSystem.disableMenu()

エンカウント禁止の変更

//エンカウントを許可
$gameSystem.enableEncounter()
//エンカウントを禁止
$gameSystem.disableEncounter()
//エンカウンターカウントのリセット
$gamePlayer.makeEncounterCount();

並び替え禁止の変更

//並び替えを許可
$gameSystem.enableFormation()
//並び替えを禁止
$gameSystem.disableFormation()

ウィンドウカラーの変更

$gameSystem.setWindowTone([赤,緑,青])

アクターの画像変更

const actor = $gameActors.actor(アクターID)
//歩行キャラ
actor.setCharacterImage("画像名", 画像番号)
//顔
actor.setFaceImage("画像名", 画像番号)
//[SV]戦闘キャラ
actor.setBattlerImage("画像名")
//変更を反映
$gamePlayer.refresh()

乗り物の画像変更

$gameMap.vehicle(乗り物ID).setImage("画像名", 画像番号)

マップ名表示の変更

//マップ名を表示
$gameMap.enableNameDisplay()
//マップ名を表示しない
$gameMap.disableNameDisplay()

戦闘背景の変更

$gameMap.changeBattleback("地面の画像名", "壁の画像名")

遠景の変更

$gameMap.changeParallax("遠景に設定する画像名",横方向にループするか,縦方向にループするか,横スクロール速度,縦スクロール速度)

指定位置の情報取得

//地形タグの取得
$gameMap.terrainTag(x座標, y座標)
//イベントIDの取得
$gameMap.eventIdXy(x座標, y座標)
//タイルIDの取得
$gameMap.tileId(x座標, y座標, レイヤー数)
//レイヤー数:0~3
//リージョンIDの取得
$gameMap.regionId(x座標, y座標)
//変数に設定
$gameVariables.setValue(変数ID, 上記の情報タイプ)

敵キャラのHP増減

const value = this.operateValue(増減, 定数か変数か, 値);
this.iterateEnemyIndex(敵番号, enemy => {
	this.changeHp(enemy, value, 戦闘不能を許可するか);
});
//増減 0:増 0以外:減
//定数か変数か 0:値 0以外:変数(ID)
//戦闘不能を許可するか 許可:true 禁止:false
//敵番号 -1以下:敵全体 0~:敵番号

敵キャラのMP増減

var value = this.operateValue(増減, 定数か変数か, 値);
this.iterateEnemyIndex(敵番号, enemy => {
	enemy.gainMp(value);
});
//増減 0:増 0以外:減
//定数か変数か 0:値 0以外:変数(ID)
//敵番号 -1以下:敵全体 0~:敵番号

敵キャラのTP増減

var value = this.operateValue(増減, 定数か変数か, 値);
this.iterateEnemyIndex(敵番号, enemy => {
	enemy.gainTp(value)
});
//増減 0:増 0以外:減
//定数か変数か 0:値 0以外:変数(ID)
//敵番号 -1以下:敵全体 0~:敵番号

敵キャラのステート変更

this.iterateEnemyIndex(敵番号, enemy => {
    const alreadyDead = enemy.isDead();
	enemy.addState(ステートID)
	//以下状態"戦闘不能"になった際に処理
	//戦闘不能になりえない時は省略可
	if (enemy.isDead() && !alreadyDead) {
		enemy.performCollapse()
	}
	enemy.clearResult()
});

敵キャラの全回復

this.iterateEnemyIndex(敵番号, enemy => {
	enemy.recoverAll()
});

敵キャラの出現

this.iterateEnemyIndex(敵番号, enemy => {
	enemy.appear()
	$gameTroop.makeUniqueNames()
});

敵キャラの変身

this.iterateEnemyIndex(変身させる敵ID, enemy => {
	enemy.transform(変身後の敵キャラID)
	$gameTroop.makeUniqueNames()
});

戦闘アニメーションの表示

let targets = [];
this.iterateEnemyIndex(敵ID, enemy => {
	if (enemy.isAlive()) {
		targets.push(enemy);
	}
});
$gameTemp.requestAnimation(targets, アニメーションID);

戦闘行動の強制

this.iterateBattler(敵キャラかアクターか, 対象ID, battler => {
	if (!battler.isDeathStateAffected()) {
		battler.forceAction(スキルID, スキル対象);
		BattleManager.forceAction(battler);
		this.setWaitMode("action");
	}
});
//敵キャラかアクターか 0:敵キャラ 1:アクター
//対象ID -1以下:全体 0~:ID
//スキル対象 -2:最後にターゲットした対象 -1:ランダム 0~:相手パーティー番号

バトルの中断

BattleManager.abort()
		


用語説明

ここではあくまで初心者が意味を掴みやすいように説明していますので、正確な意味を知りたい場合は他サイト・参考書をご覧ください。

if文

条件分岐を表します。javascriptではif(条件){処理内容}という形を取ります。

true、false

if文において条件に合えばtrue、合わなければfalseを返します。

返す

if文などで何らかの処理をした結果を出すことを「返す」と言います。

メソッド

処理の塊の事です。

関数、クラス、function

それぞれに違いはありますが、ここではメソッドの塊、つまり処理の塊がさらに塊を作ったものと考えてください。

パラメータ

メソッド名の後の丸括弧()に入っているもののことです。複数ある場合はカンマ,で区切られ左から第1パラメータ、第2パラメータ…と名付けられます。引数(ひきすう)とも呼ばれます。

配列

$gameSwitches[1]など文字の後ろについていないもので、[]で表される値のことです。例えば[1,4,3]、[1,10]、[1]というのはいずれも配列です

スタックする

データを"積み上げる"という意味で、ここでは配列に要素を追加することを指します。

popする

スタックしたデータを取り出すことです。

グローバル変数

ゲーム中どこからでも参照できる変数の事です。javascriptでは変数名を宣言するときに"var"がつけられていない変数のことです。"$gameMessage"等もグローバル変数です。



表示変更

任意の色に変えるときはテキストボックスをクリックしてカラーピッカーで決め、変更ボタンを押してください



文字色変更





コード色変更





コード背景色変更





背景色変更



ツクールMZスクリプトwikiページ内リンク