RPGツクールVXAceスクリプトwiki/トップページ
頻繁にこのwikiを参照される場合はこのページをブックマークしていただくと便利です。
各イベント名のリンクはその項目の詳細ページに繋がっています。
項目はデフォルトのイベントコマンド順になっております。
その項目について詳しく知りたい場合はイベントタイトルをクリックしてください。
皆様のゲーム製作のお役に立つことが出来れば幸いです。
*wikiの説明には専門用語が出てきます。
この目次最後に簡単な説明を付けておきますので必要であれば参照してください。
------目次(イベントコマンド順)------
文章の表示
$game_message.add("文章")
数値入力の処理
$game_message.num_input_digits_max = 桁数
$game_message.num_input_variable_id = 受け取る変数ID
Fiber.yield until Input.trigger?(:C)
文章のスクロール表示
$game_message.add("表示する文章")
$game_message.scroll_mode = true
$game_message.scroll_speed = 2
$game_message.scroll_no_fast = false
wait_for_message
スキルの増減
$game_actors[アクターID].learn_skill(スキルID) #スキルを覚える
$game_actors[アクターID].forget_skill(スキルID) #スキルを忘れる
隊列歩行の変更
$game_player.followers.visible = trueかfalse #("ON"か"OFF"でもok)
$game_player.refresh #これが無いと変更が反映されない。
隊列メンバーの集合
$game_player.followers.gather
#メンバーが集合するまでウェイトするなら以下のコードを追加
Fiber.yield until $game_player.followers.gather?
アニメーションの表示
character = get_character(イベントのID)
character.animation_id = アニメーションのID
#表示終了までウェイトするなら以下のコードを追加
Fiber.yield while character.animation_id > 0
フキダシアイコンの表示
character = get_character(イベントID)
character.balloon_id = フキダシアイコンのID
#表示終了までウェイトをかけるときは以下のコードを追加
Fiber.yield while character.balloon_id > 0
画面のフェードアウト・画面のフェードイン
#フェードアウト
Fiber.yield while $game_message.visible
screen.start_fadeout(フェードアウトするまでの時間)
wait(フェードアウトに合わせてイベントを止める時間)
#フェードイン
Fiber.yield while $game_message.visible
screen.start_fadein(フェードインするまでの時間)
wait(フェードインに合わせてイベントを止める時間)
画面のフラッシュ
tn = Color.new(赤,緑,青,強度)
screen.start_flash(tn, 時間)
#フラッシュが終わるまでウェイトするなら以下のコードを追加
wait(ウェイト時間)
ピクチャの色調変更
$sp = screen.pictures[番号]
$tn = Tone.new(赤, 緑, 青 (,グレー))
$sp.start_tone_change($tn, 変化にかける時間)
バトルの処理
bm = BattleManager #バトル処理の下準備
bm.setup(敵グループID, 逃走可能か,負けた場合も継続か)
bm.event_proc = Proc.new{|n| @branch[1] = n}
#戦闘の結果を@branchに代入、nに選択肢の数値を代入
$game_player.make_encounter_count
SceneManager.call(Scene_Battle)
Fiber.yield #戦闘までウェイト
if @branch[1] == 0 #勝利した場合の処理
$game_message.add("勝利した場合の処理")
elsif @branch[1] == 1 #逃走した場合の処理
$game_message.add("逃げた場合の処理")
elsif @branch[1] == 2 #負けた場合の処理
$game_message.add("負けた場合の処理")
end
ショップの処理
g = [アイテムの種類,アイテムのID,価格を指定するか,値段]
#アイテムの種類 0:アイテム 1:武器 2:防具
#価格の指定 0:標準 1:指定
goods = [g]
SceneManager.call(Scene_Shop)
SceneManager.scene.prepare(goods, 購入のみか)
Fiber.yield
戦闘BGMの変更
game_system.battle_bgm.name = ファイルの名前
$game_system.battle_bgm.volume = 音量
$game_system.battle_bgm.pitch = ピッチ
戦闘終了MEの変更
$game_system.battle_end_me.name = 名前
$game_system.battle_end_me.volume = 音量
$game_system.battle_end_me.pitch = ピッチ
エンカウント禁止の変更
$game_system.encounter_disabled = trueかfalse
#trueでエンカウント禁止、falseでエンカウント許可
#("ON"か"OFF"でもok)
アクターのグラフィック変更
ga = $game_actors[アクターのID]
ga.set_graphic(歩行グラのファイル名前, 歩行グラのID, 顔グラのファイル名前, 顔グラのID)
$game_player.refresh #アクターのグラフィックの再設定
乗り物のグラフィック変更
ve = $game_map.vehicles[乗り物ID]
#乗り物ID 小型船:0 大型船:1 飛行船:2
ve.set_graphic("ファイル名", 何番目のチップか)
遠景の変更
fn = "ファイル名"
$game_map.change_parallax(fn, x方向にループさせるか, y方向にループさせるか, x方向へのスクロールの速度, y方向へのスクロールの速度)
指定位置の情報取得
$game_map.terrain_tag(x座標, y座標) #地形タグを取得
$game_map.event_id_xy(x座標, y座標) #イベントIDを取得
$game_map.tile_id(x座標, y座標, レイヤー) #タイルIDを取得
#L=0でLayer1、L=1でLayer2、L=2でLayer3
$game_map.region_id(x座標, y座標) #リージョンIDを取得
敵キャラのHP増減
value = operate_value(増減, 定数か変数か, 値)
#0:増やす 1:減らす/0:定数 1:変数
#変数を選択した際、値は変数のIDを示す
iterate_enemy_index(敵ID) do |enemy| #敵ID=-1以下で敵グループ全体
return if enemy.dead? #敵が戦闘不能で中断
enemy.change_hp(value, true)
if enemy.dead? #戦闘不能を許可するか
enemy.perform_collapse_effect
end
end
敵キャラのMP増減
value = operate_value
(増減, 定数か変数か, 値)
#0:増やす 1:減らす/0:定数 1:変数
#変数を選択した際、値は変数のIDを示す
iterate_enemy_index(敵ID) do |enemy|
#敵ID=-1以下で敵グループ全体
enemy.mp += value
end
敵キャラのステート変更を行う方法
iterate_enemy_index(敵ID) do |enemy|
#敵ID=-1以下で敵グループ全体
already_dead = enemy.dead?
enemy.add_state(ステートID)
#敵の戦闘不能を許可するなら以下のif文を追加
if enemy.dead?
enemy.perform_collapse_effect
end
end
敵キャラの出現
iterate_enemy_index(敵ID) do |enemy| #-1以下で敵全員
enemy.appear
$game_troop.make_unique_names
end
敵キャラの変身
iterate_enemy_index(敵ID) do |enemy| #-1以下で敵全員
enemy.transform(変身させる敵キャラID)
$game_troop.make_unique_names
end
戦闘行動の強制
iterate_battler(敵キャラかアクターか,キャラクターID) do |battler|
#0で敵キャラ、1でアクター指定
next if battler.death_state?
battler.force_action(スキルID, 行動対象ID(Index))
BattleManager.force_action(battler)
Fiber.yield whileBattleManager.action_forced?
end
用語説明
ここではあくまで初心者が意味を掴みやすいように説明していますので、正確な意味を知りたい場合は他サイト・参考書をご覧ください。
if文
条件分岐を表します。rubyではif条件 処理endという形を取ります。
true、false
if文において条件に合えばtrue、合わなければfalseを返します。
返す
if文などで何らかの処理をした結果を出すことを「返す」と言います。
メソッド
処理の塊の事です。
関数、クラス、function
それぞれに違いはありますが、ここではメソッドの塊、つまり処理の塊がさらに塊を作ったものと考えてください。
パラメータ
メソッド名の後の丸括弧()に入っているもののことです。複数ある場合はカンマ,で区切られ左から第1パラメータ、第2パラメータ…と名付けられます。引数(ひきすう)とも呼ばれます。
配列
$game_switches[1]など文字の後ろについていないもので、[]で表される値のことです。例えば[1,4,3]、[1,10]、[1]というのはいずれも配列です
スタックする
データを"積み上げる"という意味で、ここでは配列に要素を追加することを指します。
popする
スタックしたデータを取り出すことです。
グローバル変数
ゲーム中どこからでも参照できる変数の事です。rubyでは変数名の頭に"$"がついている変数のことです。"$game_message"等もグローバル変数です。