トップページ / ツクール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.setScroll(スクロールスピード, 早送り有無)
//早送り有無 有:false 無:true
$gameMessage.add("スクロールする文章1")
$gameMessage.add("スクロールする文章2")
$gameMessage.add("スクロールする文章3")
this.setWaitMode("message");
ラベル・ラベルジャンプ
//ラベルの設定
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.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)
ステートの変更
//ステートの付加
$gameActors.actor(アクターID).addState(ステートID)
//ステートの解除
$gameActors.actor(アクターID).removeState(ステートID)
スキルの増減
//スキルを覚えさせる
$gameActors.actor(アクターID).learnSkill(スキルID)
//スキルを忘れさせる
$gameActors.actor(アクターID).forgetSkill(スキルID)
移動ルートの設定
this.character(キャラクターID).forceMoveRoute({
"list":[{"code":コードID,"parameters":パラメータ}
{"code":コードID,"parameters":パラメータ}],
//ルート入力終了 *必須
{"code":0}],
//動作を繰り返す
"repeat":true か false,
//移動できない場合は飛ばす
"skippable":true か false,
//完了までウェイト
"wait":true か false
})
隊列歩行の変更
//隊列歩行をONにする
$gamePlayer.showFollowers()
$gamePlayer.refresh()
//隊列歩行をOFFにする
$gamePlayer.hideFollowers()
$gamePlayer.refresh()
アニメーションの表示
//マップ上の場合
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"); //ウェイトを入れる場合はこのコードを追加
ピクチャの移動
$gameScreen.movePicture(番号,原点,x座標,y座標,幅の拡大率,高さの拡大率,不透明度,合成方法,移動時間)
//ピクチャの移動中ウェイトをかけるなら以下のコードを追加
this.wait(ウェイトフレーム数)
ピクチャの色調変更
$gameScreen.tintPicture(番号, [赤,緑,青,グレー], 変化時間)
//色調変化中ウェイトをかけるなら以下のコードを追加
this.wait(ウェイトフレーム数);
画面のフェードアウト・画面のフェードイン
//画面のフェードアウト
$gameScreen.startFadeOut(フェード時間)
//フェード時ウェイトをかけるなら以下のコードを追加
this.wait(ウェイトフレーム数)
//画面のフェードイン
$gameScreen.startFadeIn(フェード時間)
//フェード時ウェイトをかけるなら以下のコードを追加
this.wait(ウェイトフレーム数)
SEの演奏・SEの停止
//SEの演奏
AudioManager.playSe({"name":"SE名","volume":音量,"pitch":ピッチ,"pan":位相})
//SEの停止
AudioManager.stopSe()
戦闘の処理
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
勝利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.enableEncounter()
//エンカウントを禁止
$gameSystem.disableEncounter()
//エンカウンターカウントのリセット
$gamePlayer.makeEncounterCount();
アクターの画像変更
const actor = $gameActors.actor(アクターID)
//歩行キャラ
actor.setCharacterImage("画像名", 画像番号)
//顔
actor.setFaceImage("画像名", 画像番号)
//[SV]戦闘キャラ
actor.setBattlerImage("画像名")
//変更を反映
$gamePlayer.refresh()
指定位置の情報取得
//地形タグの取得
$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(変身させる敵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~:相手パーティー番号
用語説明
ここではあくまで初心者が意味を掴みやすいように説明していますので、正確な意味を知りたい場合は他サイト・参考書をご覧ください。
if文
条件分岐を表します。javascriptではif(条件){処理内容}という形を取ります。
true、false
if文において条件に合えばtrue、合わなければfalseを返します。
返す
if文などで何らかの処理をした結果を出すことを「返す」と言います。
メソッド
処理の塊の事です。
関数、クラス、function
それぞれに違いはありますが、ここではメソッドの塊、つまり処理の塊がさらに塊を作ったものと考えてください。
パラメータ
メソッド名の後の丸括弧()に入っているもののことです。複数ある場合はカンマ,で区切られ左から第1パラメータ、第2パラメータ…と名付けられます。引数(ひきすう)とも呼ばれます。
配列
$gameSwitches[1]など文字の後ろについていないもので、[]で表される値のことです。例えば[1,4,3]、[1,10]、[1]というのはいずれも配列です
スタックする
データを"積み上げる"という意味で、ここでは配列に要素を追加することを指します。
popする
スタックしたデータを取り出すことです。
グローバル変数
ゲーム中どこからでも参照できる変数の事です。javascriptでは変数名を宣言するときに"var"がつけられていない変数のことです。"$gameMessage"等もグローバル変数です。