RPGツクールMVのゲーム内イベントでアクター(キャラクター)の「歩行キャラ」「顔グラフィック」「戦闘キャラグラフィック」などの画像を変更する方法です。何に使うんだ!?と思われるかもしれませんが、意外と使いどころのある手法です。
考えられる使い道
パッと思いつくだけでも下記のようなケースでの使用が考えられます。
- アクターの姿形が変えられてしまうイベント
- アクターがパワーアップするイベント(スーパーサイヤ人的な)
- アクターが変形・合体するようなイベント(ロボットものですね)
- アクターの指先など体の一部分のみを歩行グラフィックとしたいイベント(ピアノを弾くイベントなど)
- アクターの身体が入れ替わるイベント、元に戻すイベント(ギニュー隊長のボディ・チェンジ的な)
ゲーム内容によっては画像変更と言わずアクターごと入れ替えてしまえば済む場合もありますが、あくまでキャラクターの姿が変わるだけで現在のHPやレベル、ステータスなどはそのまま使いたい、という場合に便利です。
画像の変更方法
ゲーム内イベントでアクターの画像を変更するにはイベント作成画面でイベントコマンド『スクリプト』を使用します。
//歩行キャラ $gameActors.actor(アクターID).setCharacterImage("画像名", 画像番号); //顔 $gameActors.actor(アクターID).setFaceImage("画像名", 画像番号); //[SV]戦闘キャラ $gameActors.actor(アクターID).setBattlerImage("画像名"); //変更を反映 $gamePlayer.refresh();
変更したい部分に合わせて上記に基いて記述しましょう。
RPGツクールでは1枚の画像に8つまでグラフィックを記載することができます。『画像番号』というのはその画像内のどのグラフィックかを指定しています。
番号が0~7となっていますので注意しましょう。
使用例
//歩行キャラ $gameActors.actor(1).setCharacterImage("Actor1", 2); //顔 $gameActors.actor(1).setFaceImage("Actor1", 2); //[SV]戦闘キャラ $gameActors.actor(1).setBattlerImage("Actor1_3"); //変更を反映 $gamePlayer.refresh();
上記の例ではアクターIDが1のアクターの
顔をActor1,2番
歩行キャラをActor1,2番
戦闘キャラをActor1_3
の画像に変更しています。
最後に『変更を反映』を忘れずに記述しましょう。
嘆きの七英雄 KIRUKO様
お問い合わせよりご助言ありがとうございます。
試してみたのですが、最後のセミコロンがあってもなくてもエラーは発生せず、正常に実行されました。(ツクールMVのバージョンは1.6.3です)
ただ本記事のコードをコピーしたところエラーが発生し、調べたところ記事中のダブルクォーテーションが全角になってしまっていたことが原因でした。(Uncaught SyntaxError: Invalid or unexpected token)
セミコロンの方はどうしようか迷ったのですが、KIRUKO様がおっしゃられたメソッドの呼び出し時にセミコロンを付ける方がJavaScriptの書き方として正しいようでしたので修正させて頂きました。
ご助言ありがとうございます。