ラベル ツクールMVプラグイン の投稿を表示しています。 すべての投稿を表示
ラベル ツクールMVプラグイン の投稿を表示しています。 すべての投稿を表示

2020年3月21日土曜日

カスタムメニュー作成プラグイン

RPGツクールMVで使用可能な自作プラグイン「カスタムメニュー作成プラグイン」の紹介です。

プラグインの説明

 プラグインパラメータからウィンドウ情報を定義して独自のメニュー画面を作れます。初期状態で動作するサンプルや豊富なスクリプトのプリセットが用意されていてすぐに動作を確認できます。

 また、コモンイベントが使えるので細かい要件にも対応できます。

スクリーンショット

 以下のような独自のウィンドウ、独自のレイアウトのメニュー画面を手軽に作成できます。

 プラグインパラメータからウィンドウ情報を定義して使います。プリセットの設定をいくつか用意しているので参考にしてください。
スクリーンショット

チュートリアル

 カスタムメニュー画面の作り方を簡単に解説します。

シーンを作成する

 まずはカスタムメニュ用のシーンの識別子を決めます。識別子とはシーンを一意に区別するための文字列で、他のシーンと被らない文字列を設定してください。

 『ヘルプウィンドウ使用』を有効にすると、画面上部にヘルプウィンドウが表示されます。
ss01

ウィンドウを作成する

 次にウィンドウを作成します。シーンと同じく識別を設定して、座標や幅、高さなども設定します。追加でフォントサイズやウィンドウスキンの設定も可能です。

 相対座標ウィンドウを設定すると、座標がそのウィンドウからの相対位置になるので、別のウィンドウの右や下にくっつけて配置できます。
ss02

ウィンドウの中身を作成する

直接指定の場合

 ウィンドウの中身は、項目を直接入力する方法とデータベースやアクターデータ等から取得する方法とがあります。直接入力する場合は、コマンドリストにコマンド名を直接入力します。

 必要に応じて表示可否スイッチや選択可否スイッチも指定できます。
ss03

動的指定の場合(一覧取得)

 データベース等から動的に項目を取得する場合は、スクリプトを使ってウィンドウに表示する一覧データを取得します。
ss04

 スクリプトには豊富なプリセットが用意されていて、選択したプリセットを改変することもできるのでJavaScriptに慣れていなくても利用可能です。
ss05

動的指定の場合(項目の描画)

 一覧の各項目を描画する場合もスクリプトで指定します。こちらもプリセットが用意されています。また、記述を省略すると内容を自働で判断して描画してくれます。
ss06

 描画される座標をずらしたい場合は、以下のように指定値を加算、減算します。この場合、もとの座標より30pixel右に描画されます。
ss07

ウィンドウ同士の遷移関係を定義する

 ウィンドウで項目の決定やキャンセルが行われたとき、次にフォーカスするウィンドウを指定したり、スクリプトを実行したりできます。この機能によりウィンドウ同士の遷移関係を定義します。
ss08

コモンイベントを実行する

 スキルの習得や能力値の変化など、カスタムメニュー画面を使って実際にやりたいことは主にコモンイベントを使って実現します。

 コモンイベントはピクチャの表示などの演出にも使えます。ただし、画面の色調変更など一部のコマンドは機能しません。
ss09

カスタムメニュー画面の呼び出し

 作成したカスタムメニュー画面は、以下のスクリプトから呼び出せます。引数にはシーン識別子を指定します。メインメニューに項目を追加するプラグインと併用する場合もこのスクリプトを使ってください。

SceneManager.callCustomMenu('Scene_ActorList');

注意点

  • このプラグインはRPGツクールMV1.6.0以降でのみ動作します。バージョンが古い場合はバージョンアップをご検討ください。
  • このプラグインにはメインメニューに項目を追加する機能は実装していません。当該機能を持つ他プラグインと連携してご利用ください。

例:メニュー画面のサブコマンドプラグイン https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/MenuSubCommand.js

ダウンロード

以下のURLからダウンロードできます。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/SceneCustomMenu.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。

2018年5月20日日曜日

データベース変換プラグイン

RPGツクールMVで使用可能な自作プラグイン「データベース変換プラグイン」の紹介です。

プラグインの説明

 ツクールMVのデータベースおよびイベント内容をExcelやCSVなどのシートデータ(以下シートファイル)に書き出し、読み込みします。以下のような目的に利用できます。本プラグインは上級者向けのプラグインです。注意してお使いください。

  • データベース全体を俯瞰したパラメータ調整
  • 計算式や書式、マクロを利用した効率的で自由度の高いデータベース、イベント編集
  • 他プロジェクトへのデータやイベント移植

スクリーンショット

 データベースの出力例です。グラフはExcelの機能で出力しています。 スクリーンショット

使い方

 イベントテスト(イベントエディタ上で右クリック→テスト)から所定のプラグインコマンド(後述)を実行すると書き出しおよび読み込みができます。

書き出し手順

  1. 本プラグインを管理画面からONにする。
  2. 「プロジェクトの保存」を実行する。(初回実行時のみ)
  3. イベントテストから所定のプラグインコマンドを実行する。
  4. 所定のフォルダにシートファイルが出力される。

読み込み手順

  1. 「プロジェクトの保存」を実行する。
  2. Dataフォルダをバックアップしておく。※重要
  3. イベントテストから所定のプラグインコマンドを実行する。
  4. 「プロジェクトを開く」を実行して、プロジェクトを開き直す。開き直すとき、プロジェクトの保存はしないでください。

※プラグインコマンドは1つずつ実行してください。一度に複数のコマンドを実行することはできません。

オリジナルデータベース作成手順(上級者向け)

  1. パラメータ「オリジナルデータ読み込み」をOFFにする。
  2. パラメータ「対象データベース」にオリジナルデータを追加
  3. データベースをエクスポート
  4. オリジナルデータのシートが追加されるので自由に編集
  5. データベースをインポート
  6. パラメータ「オリジナルデータ読み込み」をONにする。
  7. スクリプトからオリジナルデータの内容を参照できる。

出力対象データ

データベース

既存のデータベースを入出力します。ファイル名は「Database」です。出力フォーマットに合わせた拡張子が付与されます。(以降も同様) タイルセットおよびコモンイベントは対象外です。さらに独自に定義したデータ(スクリプトから参照)も入出力可能です。

コモンイベント

コモンイベントの実行内容を入出力します。ファイル名は「CommonEvents」です。パラメータの詳細は以下のスプレッドシートが参考になります。 https://docs.google.com/spreadsheets/d/1rOIzDuhLC6IqJPEFciYOmXWL_O7X9-hMValMs7DpWCk/edit#gid=1266374350

マップイベント

マップイベントの実行内容を入出力します。ファイル名は「MapXXX」です。シート名に「イベントID」および「イベントページ」が出力されます。

イベントテスト

イベントテストで選択した実行内容を出力します。ファイル名は「Test_Event」です。出力のみに対応しています。

出力対象フォーマット

Excelファイル以外にもCSVやOpenDocument Spreadsheetなど 以下のフォーマットに対応しています。プラグインパラメータから変更可能です。

  • xlsx Excel2007以降の一般的な形式です。
  • xlsm Excel2007以降のマクロ付き形式です。
  • xlsb Excel2007以降のバイナリ形式です。容量や速度面で優れています。
  • ods 特定のベンダに依存しないオープンなファイル形式です。
  • fods 特定のベンダに依存しないオープンなXMLテキストファイル形式です。
  • csv カンマ区切りのテキストファイル形式です。
  • txt タブ区切りのテキストファイル形式です。

出力ファイル詳細

  1. 出力時に同名のファイルが存在した場合は上書きされます。(※1)
  2. シート名にはデータ種別が出力されるので編集しないでください。
  3. 出力ファイルの1行目には入出力に必須な情報(プロパティ名)が出力されます。ここも編集しないでください。
  4. 2行目には項目の日本語名が出力されます。読み込み時は無視されます。
  5. 配列項目(特徴など)は一部除きjson文字列で出力されます。編集は非推奨です。
  6. 数値や文字列は編集できますが、整合性のない値の入力には注意してください。
  7. Excel計算式は計算結果がデータベースの値として読み込まれます。
  8. 書式設定や行列の設定、マクロの追加などは自由です。
  9. データベースは読み込み時にID列でソートされます。重複はエラーになります。

※1 同名ファイルを開いているとエラーになるのでファイルを閉じてください。

注意事項

バックアップについて

当プラグインの機能を使用する前にプロジェクト以下の「data」フォルダのバックアップを 「必ず」 取得してください。

「data」フォルダの内容を自動でバックアップするプラグインも配布しています。こちらのご利用もご検討ください。 https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/BackUpDatabase.js

いかなる場合も破損したプロジェクトの復元には応じられませんのでご注意ください。

Excelのエラーメッセージについて

エクスポートしたExcelファイルを開いたときに何らかのエラーメッセージが表示された場合は、そのまま編集およびインポートしないでください。

プラグインの有効範囲

本プラグインの機能は「イベントテスト」から実行した場合のみ有効です。通常のテストプレーおよび製品版には影響を与えません。 (独自データの読み込み機能は例外)

プラグインコマンド

イベントコマンド「プラグインコマンド」から実行。(パラメータの間は半角スペースで区切る)

EXPORT_DATABASE

データベースの内容を指定したフォーマットで出力します。

IMPORT_DATABASE

シートファイルを読み込んでデータベースファイルを書き換えます。 エディタに反映させるためには、プロジェクトを開き直す必要があります。

EXPORT_COMMON_EVENT 2

ID[2]のコモンイベントの実行内容を出力します。IDは複数指定可能です。 IDを指定しなかった場合は全てのコモンイベントを出力します。

IMPORT_COMMON_EVENT 3

シートファイルを読み込んでID[3]のコモンイベントを書き換えます。 IDを指定しなかった場合は全てのコモンイベントを書き換えます。

EXPORT_MAP_EVENT 6 20

ID[6]のマップにあるID[20]のイベントの実行内容を出力します。 イベントIDは複数指定可能で省略した場合、全イベントを出力します。 マップIDは省略できません。

IMPORT_MAP_EVENT 6 20

シートファイルを読み込んでID[6]のマップにあるID[20]のイベントの実行内容を書き換えます。 イベントIDは複数指定可能で省略した場合、全イベントを書き換えます。 マップIDは省略できません。

ダウンロード

以下のURLからダウンロードできます。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/DatabaseConverter.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

使用ライブラリ

Excelデータの解析にはSheetJSのCommunity Editionを使用しています。 http://sheetjs.com/

Copyright (C) 2012-present SheetJS LLC
Licensed under the Apache License, Version 2.0

SheetJSはCDNを通じて提供されるため、プラグイン利用者は別途ライブラリを導入する必要はありませんが、オフラインで作業する場合やダウンロードできない場合は、以下の手順に従ってダウンロードしプラグインとして適用してください。

  1. 以下のサイトのdist/xlsx.full.min.jsをダウンロードする。 https://github.com/sheetjs/js-xlsx
  2. ファイル名を任意の英字に変更する。 (ファイル名に「.」が含まれているとプラグインとして取り込めないため)
  3. プラグイン管理画面から有効にする。

ExcelはMicrosoftの登録商標です。

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。

2017年11月19日日曜日

ウィンドウ背景画像指定プラグイン

RPGツクールMVで使用可能な自作プラグイン「ウィンドウ背景画像指定プラグイン」の紹介です。

プラグインの説明

 ウィンドウの背景を任意の画像に置き換えます。元のウィンドウフレームは非表示になります。

スクリーンショット

詳しい使い方

 背景画像はウィンドウのサイズにかかわらず、中央を原点に表示されます。倍率と座標を補正することは可能ですが、サイズが可変、不定のウィンドウに対して背景画像を指定することは推奨しません。

 プラグインで追加されたウィンドウについても差し替え可能です。ただし、こちらで提供しているプラグイン以外はウィンドウのクラス名を把握しておく必要があります。また正常に動作するとは限りません。 スクリーンショット

選択可能ウィンドウ一覧

 プルダウンで選択可能なウィンドウの一覧です。これ以外のプラグインで追加されたウィンドウはクラス名を直接指定する必要があります。

Window_Help : [ゲーム全般]で使用されるヘルプを表示するウィンドウです。
Window_Gold : [ゲーム全般]で使用されるお金を表示するウィンドウです。
Window_MenuCommand : [メインメニュー]で使用されるメインコマンドを表示するウィンドウです。
Window_MenuActor : [メインメニュー]で使用されるアクターステータスを表示するウィンドウです。
Window_ItemCategory : [アイテム画面]で使用されるアイテムカテゴリを表示するウィンドウです。
Window_ItemList : [アイテム画面]で使用されるアイテムリストを表示するウィンドウです。
Window_SkillType : [スキル画面]で使用されるスキルタイプを表示するウィンドウです。
Window_SkillStatus : [スキル画面]で使用されるステータスを表示するウィンドウです。
Window_SkillList : [スキル画面]で使用されるスキルリストを表示するウィンドウです。
Window_EquipStatus : [装備画面]で使用されるステータスを表示するウィンドウです。
Window_EquipCommand : [装備画面]で使用される装備コマンドを表示するウィンドウです。
Window_EquipSlot : [装備画面]で使用される装備スロットを表示するウィンドウです。
Window_EquipItem : [装備画面]で使用される装備リストを表示するウィンドウです。
Window_Status : [ステータス画面]で使用されるステータスを表示するウィンドウです。
Window_Options : [オプション画面]で使用されるオプションを表示するウィンドウです。
Window_SavefileList : [セーブ、ロード画面]で使用されるファイルリストを表示するウィンドウです。
Window_ShopCommand : [ショップ画面]で使用されるショップコマンドを表示するウィンドウです。
Window_ShopBuy : [ショップ画面]で使用される購入アイテムを表示するウィンドウです。
Window_ShopSell : [ショップ画面]で使用される売却アイテムを表示するウィンドウです。
Window_ShopNumber : [ショップ画面]で使用される数値入力を表示するウィンドウです。
Window_ShopStatus : [ショップ画面]で使用されるステータスを表示するウィンドウです。
Window_NameEdit : [名前入力画面]で使用される名前を表示するウィンドウです。
Window_NameInput : [名前入力画面]で使用される名前入力を表示するウィンドウです。
Window_ChoiceList : [マップ画面]で使用される選択肢を表示するウィンドウです。
Window_NumberInput : [マップ画面]で使用される数値入力を表示するウィンドウです。
Window_EventItem : [マップ画面]で使用されるアイテム選択を表示するウィンドウです。
Window_Message : [マップ画面]で使用されるメッセージを表示するウィンドウです。
Window_ScrollText : [マップ画面]で使用されるスクロールメッセージを表示するウィンドウです。
Window_MapName : [マップ画面]で使用されるマップ名を表示するウィンドウです。
Window_BattleLog : [戦闘画面]で使用されるバトルログを表示するウィンドウです。
Window_PartyCommand : [戦闘画面]で使用されるパーティコマンドを表示するウィンドウです。
Window_ActorCommand : [戦闘画面]で使用されるアクターコマンドを表示するウィンドウです。
Window_BattleActor : [戦闘画面]で使用されるアクター一覧を表示するウィンドウです。
Window_BattleEnemy : [戦闘画面]で使用される敵キャラ一覧を表示するウィンドウです。
Window_BattleSkill : [戦闘画面]で使用されるスキル一覧を表示するウィンドウです。
Window_BattleItem : [戦闘画面]で使用されるアイテム一覧を表示するウィンドウです。
Window_TitleCommand : [タイトル画面]で使用されるタイトルを表示するウィンドウです。
Window_GameEnd : [ゲーム終了画面]で使用される終了確認を表示するウィンドウです。
Window_DebugRange : [デバッグ画面]で使用される変数選択を表示するウィンドウです。
Window_DebugEdit : [デバッグ画面]で使用される変数設定を表示するウィンドウです。
Window_Destination : [行動目標ウィンドウプラグイン]で使用される行動目標を表示するウィンドウです。
Window_Chronus : [ゲーム内時間の導入プラグイン]で使用される時間を表示するウィンドウです。
Window_Gacha : [公式ガチャプラグイン]で使用されるガチャ表示を表示するウィンドウです。
Window_GachaCommand : [公式ガチャプラグイン]で使用されるコマンドを表示するウィンドウです。
Window_GachaGetCommand : [公式ガチャプラグイン]で使用される入手確認を表示するウィンドウです。
Window_GachaGet : [公式ガチャプラグイン]で使用される入手情報を表示するウィンドウです。
Window_Cost : [公式ガチャプラグイン]で使用されるコストを表示するウィンドウです。
Window_NovelChoiceList : [ノベルゲーム総合プラグイン]で使用されるノベル選択肢を表示するウィンドウです。
Window_NovelMessage : [ノベルゲーム総合プラグイン]で使用されるノベルメッセージを表示するウィンドウです。
Window_NovelTitleCommand : [ノベルゲーム総合プラグイン]で使用されるノベルタイトルコマンドを表示するウィンドウです。
Window_NovelNumberInput : [ノベルゲーム総合プラグイン]で使用されるノベル数値入力を表示するウィンドウです。
Window_PauseMenu : [ノベルゲーム総合プラグイン]で使用されるポーズメニューを表示するウィンドウです。
Window_PasswordInput : [クロスセーブプラグイン]で使用されるパスワード入力を表示するウィンドウです。
Window_PasswordEdit : [クロスセーブプラグイン]で使用されるパスワードを表示するウィンドウです。
Window_GlossaryCategory : [用語辞典プラグイン]で使用される用語カテゴリを表示するウィンドウです。
Window_GlossaryList : [用語辞典プラグイン]で使用される用語リストを表示するウィンドウです。
Window_GlossaryConfirm : [用語辞典プラグイン]で使用される使用確認を表示するウィンドウです。
Window_GlossaryComplete : [用語辞典プラグイン]で使用される収集率を表示するウィンドウです。
Window_Glossary : [用語辞典プラグイン]で使用される用語を表示するウィンドウです。
Window_AudioCategory : [サウンドテストプラグイン]で使用されるオーディオカテゴリを表示するウィンドウです。
Window_AudioList : [サウンドテストプラグイン]で使用されるオーディオリストを表示するウィンドウです。
Window_AudioSetting : [サウンドテストプラグイン]で使用されるオーディオ設定を表示するウィンドウです。
Window_NumberInput : [数値入力画面プラグイン]で使用される数値入力を表示するウィンドウです。
Window_NumberEdit : [数値入力画面プラグイン]で使用される数値を表示するウィンドウです。

ダウンロード

以下のURLからダウンロードできます。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/WindowBackImage.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。

2017年11月5日日曜日

メニュー内コモンイベントプラグイン

RPGツクールMVで使用可能な自作プラグイン「メニュー内コモンイベントプラグイン」の紹介です。

プラグインの説明

 メニュー画面やプラグインで追加した画面(※1)でコモンイベントを並列実行できます。メッセージやピクチャ、変数の操作などが各イベントコマンド(※2)が実行可能です。コモンイベントは各画面につきひとつ実行できます。

  1. メニュー系の画面であれば利用できます。サウンドテストプラグインや用語辞典プラグインとの連携は確認済みです。
  2. 移動ルートの設定などキャラクターを対象にする一部コマンドは動作しません。また、プラグインによって追加されたスクリプトやコマンドは正しく動作しない可能性があります。

スクリーンショット

  • イベントで指定したメッセージやピクチャが表示できます。 スクリーンショット

詳しい使い方

 通常のイベントコマンドはもちろん、スクリプトによってウィンドウオブジェクトを取得すれば、様々な高度な処理がイベントで実現できます。

プラグインコマンド

ウィンドウ操作禁止      # メニュー画面のウィンドウ操作を禁止します。
DISABLE_WINDOW_CONTROL  # 同上
ウィンドウ操作許可      # 禁止したメニュー画面のウィンドウ操作を許可します。
ENABLE_WINDOW_CONTROL   # 同上

スクリプト

// ウィンドウオブジェクトを取得
this.getSceneWindow(windowName);
指定した名前のウィンドウオブジェクトを返します。
プロパティの取得や設定が可能です。上級者向け機能です。
 
// ウィンドウアクティブ判定
this.isWindowActive(windowName);
指定した名前のウィンドウがアクティブなときにtrueを返します。
 
// ウィンドウインデックス取得
this.getSceneWindowIndex();
現在アクティブなウィンドウのインデックスを取得します。先頭は0です。
 
// 選択中のアクターオブジェクト取得
$gameParty.menuActor();
装備画面やステータス画面で選択中のアクターの情報を取得します。
上級者向けスクリプトです。(※1)
 
// 選択中のアクターID取得
$gameParty.menuActor().actorId();
装備画面やステータス画面で選択中のアクターIDを取得します。
 
※1 既存のコアスクリプトですが、有用に使えるため記載しています。
 
// 用語辞典の表示内容更新
this.refreshGlossary();
用語辞典プラグインにおいて用語の表示内容を最新にします。
同プラグインと連携した場合に使用します。

ウィンドウ名称一覧

・メインメニュー
commandWindow   コマンドウィンドウ
statusWindow    ステータスウィンドウ
goldWindow      お金ウィンドウ
 
・アイテム画面
categoryWindow  アイテムカテゴリウィンドウ
itemWindow      アイテムウィンドウ
actorWindow     アクター選択ウィンドウ
 
・スキル画面
skillTypeWindow スキルタイプウィンドウ
statusWindow    ステータスウィンドウ
itemWindow      スキルウィンドウ
actorWindow     アクター選択ウィンドウ
 
・装備画面
helpWindow      ヘルプウィンドウ
commandWindow   コマンドウィンドウ
slotWindow      スロットウィンドウ
statusWindow    ステータスウィンドウ
itemWindow      装備品ウィンドウ

他プラグインとの連携

  • ピクチャのボタン化プラグイン(PictureCallCommon.js)と併用する場合コマンドは「P_CALL_CE」ではなく「P_CALL_SWITCH」を使ってください。

ダウンロード

以下のURLからダウンロードできます。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/MenuCommonEvent.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。

2017年9月20日水曜日

多層レイヤー一枚絵マッププラグイン

RPGツクールMVで使用可能な自作プラグイン「多層レイヤー一枚絵マッププラグイン」の紹介です。

プラグインの説明

 複数のレイヤーを使った多層一枚絵マップを作成可能にします。イベントでレイヤーを作成するので、レイヤー数は実質無制限です。マップサイズと同じサイズの一枚絵を用意してください。

 イベントを作成してメモ欄を以下の通り記述すると、指定した画像がマップに表示され、かつイベント位置とは無関係に画像の左上がマップの左上に合わせられます。

完成例

  • 通常のパララックスマッピングに対して光や影の表現を重ねることができます。 スクリーンショット

詳しい使い方

メモ欄の記述

<PLM:file>        # 「img/parallaxes/file」を一枚絵として表示します。
<PLM_Blend:1>     # 合成方法の初期値を「加算」にします。
<PLM合成:1>       # 同上
<PLM_Opacity:128> # 不透明度の初期値を「128」にします。
<PLM不透明度:128> # 同上

スクリプト

this.shiftPosition(10, 20); # 表示位置をX[10] Y[20]ずらします。

 イベント内の「画像」「オプション」項目は無視されますが、その他の項目は通常のイベントと同じように機能します。

キャラクターグラフィック表示拡張プラグインとの組み合わせ

 合成方法や不透明度などを後から変更したい場合は、自律移動で指定するか「キャラクターグラフィック表示拡張プラグイン」と併用してください。

制約事項

 当プラグインはマップのループには対応していません。

サンプル素材

 当プラグインで使用できるサンプルマップをどらぴか(@dorapikanisan)様よりご提供いただきました。この場を借りて御礼申し上げます。上の「完成例」のマップを作成することができます。

 専用のダウンロードページから「Download」ボタンでダウンロードできます。 クレジット表記なしでご自由にお使い頂けるご許可を頂いています。

サンプル素材の使い方

  • サンプル素材には通行可否設定を簡単に行える専用タイルも付属しています。
    使い方1

  • 専用タイルの使用例です。
    使い方2

ダウンロード

以下のURLからダウンロードできます。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/ParallaxLayerMap.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。

2017年8月20日日曜日

MP3を使ったゲームをRPGアツマールに投稿してみました

数ヶ月前、以下のような記事が目に留まりました。

 mp3(MP3コーデック)の特許が切れたという話です。これによりアプリやゲーム開発者はライセンスの問題を気にすることなくmp3を使うことができるようになります。

 というわけで早速、検証も兼ねてmp3を音声素材として使ったゲームをひとつ作成してRPGアツマールに投稿してみることにしました! ちなみにmp3を再生すること自体が可能かどうかという点については、プラグインが必須ですが可能です。プラグインについてはブログの最後で説明します。

投稿した作品の紹介

 先日RPGアツマールに公開したツクールMV製の掌編アドベンチャー「その名は深く青ざめて」です。プレー時間2分ほどの気軽にプレーできるゲームとなります。

「その名は深く青ざめて」(音が出ます)

https://game.nicovideo.jp/atsumaru/games/gm4093

タイトル画面

スクリーンショット

ゲーム画面

スクリーンショット

 なお、本作はやれやれ氏主催の「2分ゲーコンテスト」に参加しています。

mp3を使用するメリット

ほぼ全ての環境で再生できる

 現在、ツクールMVでゲームを作ってWeb(RPGアツマール等)にアップロードする場合、ogg(主にVorbisコーデック)とm4a(AACコーデック)の二つを用意することになっています。PCブラウザやモバイルブラウザ等、様々な動作環境に対応するためですが、変換やループタグの設定、確認が面倒だったり、何より容量を圧迫するという問題があります。

 これをmp3に切り替えることで一本化できる可能性があります。

 mp3は普及率が高く、ゆえに様々な環境でも安定して再生可能です。下記に対応状況が記載されています。

 上の一覧表だと一部「?」がありますが、「その名は深く青ざめて」については、公開後に運営さまから頂いた動作確認結果でも問題はなく、プレイヤーからも今のところ「再生できない」という声は聞いていません。(もしうまく再生できなければご一報ください)

 mp3はoggやm4aと比べて圧縮効率が悪く、単体ではむしろ容量が大きくなってしまう傾向がありますが、それでも二つ用意するよりは(同一ビットレートであれば)マシだと思います。

デスクトップ実行(Game.exe)でどうするか

 ツクールのGame.exe(NW.js)では、ライセンスの問題がありもともとmp3は再生できませんでした。ですがNW.jsは2017/05/03のリリースでmp3のデコーダをffmpeg.dllに含めるようになりました。もちろん特許の問題が解決されたためですが、なかなか迅速な対応だと思います。当然ですがm4aは依然として再生できません。

 つまり、NW.jsを最新にすればデスクトップアプリとして実行したときもmp3を演奏させることができます。NW.jsを最新に差し替える方法についてはセアロソンク氏の以下のブログが参考になると思います。

 本件とは関係なく、NW.jsを最新にすることでパフォーマンスの大きな改善が見込めるので、ぜひ一度お試しください。もちろんデプロイ後だけでなく制作中のプロジェクトにも適用できます。

対応素材が多い

 mp3は普及率が高いだけあって、フリー素材も同形式で配布されているというケースが多いです。変換ツールを使えばもちろん変換できますが、ダウンロードした素材がそのまま使用できるのは嬉しいです。

mp3を使用するデメリット

音質が悪い

 古いフォーマットなので、oggなどの後発のそれと比べて音質が若干劣る(と言われています)。さすがにもともとogg等で配布されているものをmp3に変換するのは少し抵抗がありますね。

ツクールMVのエディタで選択できない

 これがかなり致命的でした。ツクールMVでBGMやBGSを選択するときは、oggファイルしか選択対象に表示されません。拡張子のみoggに変えると選択対象に表示されますが、今度はRPGアツマールにアップロードするときに不正なファイルとして弾かれてしまいます。

 よって現状ではファイルとして選択するときだけoggファイルを(中身はなんでもいいので)作成して、エディタ上で選択後、当該ファイルを削除するというなんともバカバカしい手順を踏む必要がありました。

結論

 ツクールMVの音声ファイルにmp3を使用することはわりと面倒ではありますが、特に容量的な意味で一定の効果が見込めました。そこで一部の素材(例えば素材サイトでmp3形式で配信されている素材)のみmp3を使用し、基本はogg/m4aを使うのがいいのかな、と考えプラグインを作成しました。よろしければお試しください。

 RPGツクールMVで使用可能な自作プラグイン「MP3オーディオ管理プラグイン」の紹介です。

プラグインの説明

 ツクールMVでmp3ファイルを使用可能にします。特定のファイル(末尾にmp3と付いたファイル)のみmp3で再生することも可能です。デスクトップ環境(Game.exe)でmp3ファイルを再生させるにはNW.jsを最新にする 必要があります。

 さらに、プラグイン側で独自にループタグを設定することが可能です。ループタグは曲ごとに設定できます。この設定はファイルにあらかじめ設定されていたループタグより優先されます。

スクリーンショット

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/Mp3AudioManager.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2017年8月6日日曜日

動画のピクチャ表示プラグイン

RPGツクールMVで使用可能な自作プラグイン「動画のピクチャ表示プラグイン」の紹介です。

プラグインの説明

 ピクチャの表示枠を使って動画を再生します。ピクチャの移動や回転による処理の対象になるほか、複数の動画の並行再生が 可能になります。また、動画がウィンドウの下に表示されるようになります。ただし「ピクチャの色調変更」には対応していません。

プラグインコマンド「MP_SET_MOVIE」で動画ファイルを準備してからイベントコマンド「ピクチャの表示」をファイル指定を空で実行してください。

スクリーンショット1

ピクチャを扱うのと同じ感覚で動画をゲーム中に表示できます。 スクリーンショット

スクリーンショット2

回転や合成方法の変更も可能です。また、動画がメッセージなどのウィンドウの下に表示されます。 スクリーンショット

プラグインコマンド

MP_SET_MOVIE file  # 動画ファイル[file]を準備します。
MP_動画設定 file   # 同上
MP_SET_LOOP 1 on   # ピクチャ番号[1]の動画がループ再生されます。
MP_ループ設定 1 on # 同上(offでループ再生を解除します)
MP_SET_PAUSE 1 on  # ピクチャ番号[1]の動画が一時停止します。
MP_ポーズ設定 1 on # 同上(offで再生を再開します)
MP_SET_WAIT 1      # ピクチャ番号[1]の動画が再生するまでイベントを待機します。
MP_ウェイト設定 1  # 同上
MP_SET_VOLUME 1 50 # ピクチャ番号[1]の動画の音量を50%に設定します。
MP_音量設定 1 50   # 同上

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/MoviePicture.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2017年5月21日日曜日

連携攻撃プラグイン

RPGツクールMVで使用可能な自作プラグイン「連携攻撃プラグイン」の紹介です。

プラグインの説明

 戦闘中、味方の攻撃が連続したときにダメージ倍率が上昇します。チェインの継続中に相手側のチェインがスタートしたら解除されます。さらにパラメータで以下の追加の解除条件を指定できます。

  1. 他のターゲットに攻撃
  2. 攻撃をミス
  3. 攻撃以外の行動(回復など)
  4. 相手側の何らかの行動

スクリーンショット

 戦闘中、現在の連携数が表示されます。表示位置や表示方法、サイズはカスタマイズ可能です。 スクリーンショット

スキルに指定可能なメモ欄

 スキルのメモ欄で以下の機能を追加できます。数値には制御文字\v[n]が使用できます。

<AC_倍率:200> # チェインダメージ倍率をさらに200%にします。
<AC_Rate:200> # 同上
<AC_終了>     # そのスキルで連携を強制終了します。
<AC_End>      # 同上
<AC_条件:5>   # 5連携に満たない状態で使用すると必ず失敗します。
<AC_Cond:5>   # 同上

実行可能なスクリプト

 イベントコマンド「スクリプト」から以下が実行可能です。

$gameParty.getChainCount();    # 現在のパーティ連携数取得
$gameParty.getMaxChainCount(); # パーティの最大連携数を取得

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/AttackChain.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2017年4月9日日曜日

メニュー画面のサブコマンドプラグイン

RPGツクールMVで使用可能な自作プラグイン「メニュー画面のサブコマンドプラグイン」の紹介です。

プラグインの説明

 メインメニュー画面に任意の名前のコマンドおよびツリー表示されるサブコマンドを追加できます。サブコマンドを実行(決定)すると、任意のスクリプトが実行されるか、もしくは指定したマップに移動します。(両方も可能)

 指定したマップへの移動は主にイベントによる自作メニューを組み込むために使用します。通常メニューから専用マップに移動するとイベントやフォロワーの位置やマップ名表示、BGM再生やメインメニューコマンドの選択位置など考慮すべき点が多いのですが、当プラグインを使えば全てプラグイン側でカバーしてくれます。

 また、通常の縦レイアウトとメニュー画面はもちろん、プラグインによる横レイアウトのメニュー画面にも対応しています。

スクリーンショット1

縦画面(通常)用のレイアウトです。 スクリーンショット

スクリーンショット2

横画面(AltMenuScreen.js等)用のレイアウトです。 スクリーンショット

パラメータ指定方法

プラグインパラメータを以下の通りカンマ区切りで指定してください。

指定例

アイテム,親コマンド1,100,200,this.commandItem(),0,OFF

  1. 名称      :サブコマンドに表示される任意のコマンド名称
  2. 親名称     :メインコマンドに表示される親となる任意のコマンド名称
  3. 非表示スイッチID:ONのときコマンドが非表示になるスイッチID
  4. 禁止スイッチID :ONのときコマンドが使用禁止になるスイッチID
  5. 実行スクリプト :コマンドを決定したときに実行されるスクリプト
  6. 移動先マップID :コマンドを決定したときに移動するマップID
  7. メンバー選択有無:コマンド実行前に対象メンバーを選択します(ON/OFF)

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/MenuSubCommand.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2017年3月5日日曜日

戦闘中フキダシ表示プラグイン

RPGツクールMVで使用可能な自作プラグイン「戦闘中フキダシ表示プラグイン」の紹介です。

プラグインの説明

 戦闘中に様々なタイミングでフキダシ(バルーン)を表示できます。さらにフキダシの速度や待機時間を調整できます。表示対象はアクターおよび敵キャラです。主に以下のタイミングで表示できます。

バトルイベント中にプラグインコマンドを実行

 アクター、敵キャラ、スキル使用者を対象にできます。スキル使用者を対象にする場合は、スキル実行後のコモンイベント等で表示させてください。フキダシ表示が完了するまでウェイトすることもできます。

反撃や回避を行った際に自動発動

 パラメータで指定しておけば反撃、回避、魔法反射、身代わりの瞬間に指定したIDのバルーンを自動表示します。

スキル実行時に自動発動

 スキルもしくはアイテム使用時に自動発動します。メモ欄に以下の通り記述してください。

<BB_決定時フキダシ:5> # スキル決定時にフキダシ[5]を表示(敵キャラのみ)(※1)
<BB_BalloonInput:5>   # 同上
<BB_使用時フキダシ:6> # スキル使用時にフキダシ[6]を表示
<BB_BalloonUsing:6>   # 同上

※1 正確には敵キャラAIがスキルを決定したタイミングになります。

スクリーンショット

スクリーンショット

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/BattleBalloon.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2017年2月9日木曜日

戦闘システム拡張系のプラグインを5種類一挙紹介

 RPGツクールMVで使用可能な自作プラグインのうち、戦闘システム拡張系のプラグインを5種類一気に紹介します。
それぞれ目的別に特化しているので、必要と思ったものだけを導入することが可能です。

  1. 反撃拡張プラグイン
  2. 混乱拡張プラグイン
  3. 吸収拡張プラグイン
  4. 身代わり拡張プラグイン
  5. 効果範囲拡張プラグイン

特徴を有するデータベースのメモ欄について

 いくつかのプラグインでは「特徴を有するデータベースのメモ欄」に記述できるので、より自由度の高い格調が可能です。 なお「特徴を有するデータベースのメモ欄」とは以下のことです。

  • アクター
  • 敵キャラ
  • 職業
  • 武器
  • 防具
  • ステート

 よって特定の味方や敵に対してのみ拡張したり、特定の武器や防具を装備しているとき、あるいは特定のステートが有効なときのみ拡張を適用することが可能です。

反撃拡張プラグイン

 反撃の仕様を拡張します。魔法に対する反撃や、特定のスキルを使った反撃、特定の条件下でのみ発動する反撃などが作成できます。 拡張機能は以下の通りです。

機能リスト

  1. 魔法攻撃を受けた場合もカウンターが発動するようになります。
  2. 反撃時のスキルを個別に設定することができます。
  3. 反撃条件にJavaScript計算式の評価結果を利用できます。
  4. 複数の反撃スキルおよび反撃条件を設定できます
  5. 反撃実行時に専用のアニメーションを再生します。

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/CounterExtend.js

混乱拡張プラグイン

 混乱系(行動制約のプルダウンの選択値が「1」~「3」)ステートの指定内容を拡張し、通常攻撃ではなく特定のスキルを強制使用させることができます。

機能リスト

  1. 混乱時に使用するスキルIDを指定できます。複数指定可能で、複数の場合はランダムでどれかを使用します。
  2. コストが足りない等の理由でスキルを使用できない場合に使用する専用スキルを別途指定できます。
  3. スキルのターゲットを強制的に指定することができます。
  4. 混乱の上位概念として「裏切り」状態を提供します。全体攻撃の対象範囲が逆になるほか、全滅条件にも関わらなくなります。

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/ConfusionExtend.js

吸収拡張プラグイン

 ダメージタイプの「HP吸収」および「MP吸収」の仕様を拡張します。

機能リスト

  1. 吸収率を指定して、回復量を与えたダメージの割合で指定可能
  2. HPダメージに対してMPやTPを追加で回復することが可能
  3. MPダメージに対してHPやTPを追加で回復することが可能
  4. 通常ダメージ時のメッセージと効果音に変更可能
  5. HP吸収の上限が相手の残HPになる吸収の仕様を撤廃可能

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/DrainExtend.js

身代わり拡張プラグイン

 身代わりの仕様を拡張します。

機能リスト

  1. デフォルトの身代わり条件(瀕死かつ必中以外)を無効化できます。
  2. 身代わりの詳細な発動条件をHPやJS計算式等で細かく指定できます。
  3. 身代わりの対象者を限定できます。
  4. 身代わり発動時に、指定したIDのスキル効果を身代わり実行者に適用できます。

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/SubstituteExtend.js

効果範囲拡張プラグイン

 スキルの効果範囲を拡張できます。

機能リスト

  1. 効果範囲が敵味方に指定できます。
  2. 元々の選択範囲に対して(敵味方かかわらず)使用者を追加 or 除外できます。
  3. 指定した敵単体と同じIDの敵キャラ(DQでいう敵グループの概念)を指定できます。
  4. 元々の選択範囲に対してランダムで一人のみを指定できます。
  5. 敵N体ランダムの範囲に対して、もともとの設定上限(4回)を超える回数を指定できます。

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/ScopeExtend.js

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2017年1月22日日曜日

イベントデバッグプラグイン

 RPGツクールMVで使用可能な自作プラグイン「イベントデバッグプラグイン」の紹介です。

プラグインの説明

 任意の箇所でイベントの実行を一時停止して、1行ずつ実行(ステップ実行)ができるようになります。開始方法は以下の3通りです。マップ画面、戦闘画面のどちらでも利用可能です。

  1. 指定されたキー(デフォルトF7)を押下する。(※1)
  2. プラグインコマンド[BREAK_POINT]を実行する。(条件が指定可能です)
  3. イベントテストを実行する。

※1 並列イベントが複数実行されている場合、どこで止まるかは不確定です。

 止めている間は以下の操作が可能です。

  1. ステップ実行(イベントを1コマンドずつ実行)
  2. 実行中のイベントリスト確認
  3. 実行したイベントのパラメータ確認
  4. デバッグ画面(F9)を開いてスイッチや変数の操作(※2)
  5. デベロッパツールから任意のJavaScriptを実行

※2 マップ画面でのみ有効です。

ステップ実行中の画面

 ステップ実行中は、画面左上にイベント情報が出力されます。変数やスクリプトの評価結果を監視することもできます。(後述) スクリーンショット

 ステップ実行には以下の種類があり、対応するファンクションキーを指定できます。

  • ステップイン:1行実行する。コモンイベントの呼び出し先もステップ実行する。
  • ステップオーバー:1行実行する。コモンイベントの呼び出しは一括実行する。
  • 再開:ステップ実行を終了し、通常のイベント実行に戻る。

デベロッパツールの画面

 ステップ実行が開始されると、操作方法および実行したイベントの履歴がパラメータつきで出力されます。 スクリーンショット

 各イベントコマンドの実行にどのくらい時間が掛かったかも出力します。

デバッグ画面

 ステップ実行中にF9キーを押下すると、デフォルトのデバッグ画面が表示され変数の値を編集できます。(マップ画面のみ) スクリーンショット

変数監視機能

 さらに、変数やスクリプトの評価結果を常時監視することができます。この機能はステップ実行中以外でも常に有効です。監視対象が登録されている場合、右上にウィンドウが表示されます。数値を指定した場合は変数値が、文字列を指定した場合はスクリプトの評価結果が表示されます。

 所定のファンクションキーを押下するか、以下のスクリプトをデベロッパツールから実行すると監視対象を登録できます。

DebugManager.watchVariable(5); # 変数[5]の値を常に監視します。

 このプラグインはテストモードでのみ動作し製品版にはなんら影響を与えません。

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/EventDebugger.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2016年11月27日日曜日

ファイルダウンロードプラグイン

RPGツクールMVで使用可能な自作プラグイン「ファイルダウンロードプラグイン」の紹介です。

プラグインの説明

ゲーム中にインターネット上からファイルをダウンロードしてプロジェクト配下の任意の場所に配置できます。同名ファイルは上書きされます。
配置したファイルはゲーム中で動的に参照することができます。

スクリーンショット

スクリーンショット

利用用途

開発時のプラグインの自動アップデート

ゲーム起動時に自動で配布元の最新プラグインを適用できます。わざわざ確認しなくても機能追加やバグ修正が行われた最新のファイルを利用できます。
ただし、すでに適用済みのプラグインを更新した場合、変更を反映させるにはゲームをリロードする必要があります。

※パラメータ「配布サイトURL」をデフォルトのままで以下のプラグインコマンドを実行すると、本プラグインを最新化できます。

  • FD_MY_PLUGIN FileDownloader.js

小規模なアップデートファイル配信

あらかじめ準備しておけば、プレイヤーにゲーム全体を再ダウンロードさせずに一部ファイルのみ差し替えさせることができます。

インターネット上の画像をピクチャ表示

ネット上の画像ファイルなどを取り込んでゲーム内で使用することができます。著作権等には十分ご注意ください。

おまけ機能

おまけ機能で「指定したURLを既定のブラウザで開く」プラグインコマンドが使えます。

プラグインコマンド

FD_FILE http://~.png test/     # 指定したURLのファイルをtest/に配置
FD_ファイル http://~.png test/ # 同上
FD_MY_FILE ~.json data/        # 指定したパスのファイルをdata/に配置
FD_マイファイル ~.json data/   # 同上
FD_PLUGIN http://~.js          # 指定したURLのjsをjs/plugins/に配置
FD_プラグイン http://~.js      # 同上
FD_MY_PLUGIN ~.js              # 指定したパスのjsをjs/plugins/に配置
FD_マイプラグイン ~.js         # 同上
FD_PICTURE http://~.png        # 指定したURLのpngをimg/pictures/に配置
FD_ピクチャ http://~.png       # 同上
FD_MY_PICTURE ~.png            # 指定したパスのpngをimg/pictures/に配置
FD_マイピクチャ ~.png          # 同上
FD_START_SITE http://~.jp      # 規定のブラウザで指定したURLを開く
FD_サイト起動 http://~.jp      # 同上

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/FileDownloader.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

このプラグインを適用すれば、以後は以下のコマンドでOKです。

FD_MY_PLUGIN FileDownloader.js

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2016年11月20日日曜日

反撃拡張プラグイン

RPGツクールMVで使用可能な自作プラグイン「反撃拡張プラグイン」の紹介です。

プラグインの説明

反撃の仕様を拡張します。
魔法に対する反撃や、特定のスキルを使った反撃、特定の条件下でのみ発動する反撃などが作成できます。

特定のアイテムを装備時のみ特殊な反撃技を指定したり、特定の攻撃に対してボスが強力な反撃を繰り出したりする設定が可能です。

具体的な機能詳細は以下の通りです。

機能詳細

  1. 魔法攻撃を受けた場合もカウンターが発動するようになります。
    専用の発動率を指定可能で、指定しない場合は、物理攻撃と同様の反撃率が適用されます。

  2. 反撃時のスキルを個別に設定することができます。
    MPなどのコストが不足している場合の挙動はカスタマイズできます。

  3. 反撃条件をJavaScript計算式の評価結果を使って詳細指定できます。反撃条件を満たさない場合は反撃は実行されません。
    特定のスキルや属性に対してのみ反撃したり、特定の条件下でのみ反撃したりできます。
    ヘルプにいくつかのサンプルが用意されています。

  4. 反撃実行時に専用のアニメーションIDを再生できます。

スクリーンショット

スクリーンショット

メモ欄指定方法

特徴を有するデータベースのスキルのメモ欄に以下の通り指定してください。

<CE_魔法反撃:50>      # 魔法攻撃を受けた場合に50%の確率で反撃します。
<CE_MagicCounter:50>  # 同上
<CE_魔法反撃>     # 魔法攻撃を受けた場合にもともとの反撃率で反撃します。
<CE_MagicCounter> # 同上
<CE_反撃スキルID:\v[1]>    # 反撃時に変数[1]のIDのスキルを使用します。
<CE_CounterSkillId:\v[1]>  # 同上
<CE_魔法反撃スキルID:3>    # 魔法反撃時にID[3]のスキルを使用します。
<CE_MagicCounterSkillId:3> # 同上
<CE_反撃条件:v(1) &lt; 100>    # 変数[1]が100より小さければ反撃します。
<CE_CounterCond:v(1) &lt; 100> # 同上(※2)
<CE_魔法反撃条件:s(1)>         # スイッチ[1]がONなら魔法反撃します。
<CE_MagicCounterCond:s(1)>     # 同上
<CE_反撃条件:skill.id === 10>              # スキルIDが[10]なら反撃します。
<CE_反撃条件:skill.damage.elementId === 3> # スキル属性が[3]なら反撃します。
<CE_反撃条件:this.hpRate() &lt; 0.5> # 自分のHPが50%を下回ると反撃します。
<CE_反撃アニメID:20>       # 反撃実行前にアニメーション[20]を再生します。
<CE_CounterAnimationId:20> # 同上
 
※ 文章、スクリプト中で不等号を使いたい場合、以下のように記述してください。
< → &lt;
> → &gt;

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/CounterExtend.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2016年11月15日火曜日

BGS並行演奏プラグイン

RPGツクールMVで使用可能な自作プラグイン「BGS並行演奏プラグイン」の紹介です。

プラグインの説明

複数のBGSを並行して演奏できます。プラグインコマンドからBGSの演奏ラインを変更すると元のBGSを演奏したまま、新しくBGSを演奏することができます。
並行演奏しているBGSはそれぞれ個別に、音量やピッチ、左右バランスを調節できます。
演奏ラインのデフォルトは[1]です。

追加機能

追加機能として、BGS演奏中にSEを演奏すると自動でBGSを一時フェードアウトするプラグインコマンドを提供します。SEがより明瞭に聴き取れるようになります。
フェードアウト時間やSEの演奏タイミングを設定することもできます。

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/ParallelBgs.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2016年11月1日火曜日

動的変数プラグイン

RPGツクールMVで使用可能な自作プラグイン「動的変数プラグイン」の紹介です。

プラグインの説明

指定範囲内の変数、スイッチを参照しようとした際に、「変数名称」及び「スイッチ名称」をJavaScriptとして実行した結果を返すよう変更します。

プラグインの使い道

イベントページの出現条件に設定

イベントエディタにおける「出現条件」に対象変数もしくはスイッチを指定することで、イベントページにより複雑な条件を設定することができます。
下記の例では、スイッチ欄が「変数[1]が[0]より大きい、またはスイッチ[1]がON」という条件になります。

スクリーンショット

戦闘行動に設定

条件にスイッチを指定することで敵キャラの行動をより奥深く管理できます。
スクリーンショット

定数値として使用

スイッチに「true」、変数に「'AAA'」などと記述すると常に同一の値を返す定数値として使用できます。
スクリーンショット

その他の変数・スイッチを参照する例

  1. 条件分岐
  2. イベントコマンドの各種オペランド
  3. 文章の表示の制御文字
  4. スキルやアイテムの計算式(ただしv[1]で参照した場合は除く)
  5. その他プラグインによる参照

スイッチ、変数名称の設定方法

JavaScriptを利用して記述するため難しいイメージがありますが、スキルやアイテムの計算式と同様の感覚で設定すればOKです。また、式の簡略化のために以下のローカル変数が利用できます。

v(n)      # [n]番の変数の値
s(n)      # [n]番のスイッチの値
max       # Math.maxに変換されます。(例 : max(1, 2) -> 2)
min       # Math.minに変換されます。(例 : min(1, 2) -> 1)
gPlayer   # $gamePlayerに変換されます。(例 : gPlayer.x -> プレイヤーX座標)
dSystem   # $dataSystemsに変換されます。(例:dSystem.startX -> 開始位置X座標)

Math.max以外にも一般的なMathモジュールのメソッドが使用可能です。また、他のゲームオブジェクト、データオブジェクトも同じ記法で参照できます。
いずれも利用には、多少のJavaScriptの知識が必要になります。

また、スクリプト中でさらに動的変数およびスイッチを参照することもできますが 同じ番号の変数 or スイッチを参照しようとすると循環参照となりエラーが発生します。

  • 設定例1 イベントページの「スイッチ」に「名称」が以下のものを設定する。

    v(1) > 0 || s(1) # 変数[1]が[0]より大きい、もしくはスイッチ[1]がON

    以上の条件を満たした場合に対象ページが表示される。

  • 設定例2 イベントページの「スイッチ」に「名称」が以下のものを設定する。

    v(1) < v(2) && !s(2) # 変数[1]が変数[2]より小さい、かつスイッチ[2]がOFF

    以上の条件を満たした場合に対象ページが表示される。

  • 設定例3 イベントページの「スイッチ」に「名称」が以下のものを設定する。

    gPlayer.x % 2 === 0 # プレイヤーのX座標が偶数

    以上の条件を満たした場合に対象ページが表示される。

使用上の注意

通常、イベントのページを決定する処理は、いずれかのスイッチもしくは変数が変更されたときにのみ実行されます。本プラグインでは、パフォーマンス上の理由からその仕様を維持します。もし、指定している条件がスイッチおよび変数と完全に無関係な場合(設定例3のケース等)イベントのメモ欄に以下の通り入力すると、そのイベントのみ常にページの条件チェックを行うように変更できます。

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/DynamicVariables.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2016年10月2日日曜日

コアスクリプトのver1.3.1ではウィンドウカラーを変更すべきでないという話

ver1.3.1ではウィンドウカラーを変更すべきでないという話

 RPGツクールMVのver1.3.1が公開されてからしばらく経ちました。描画エンジンのバージョンアップに伴い、パフォーマンスやメモリ問題について改善された部分はたくさんありますが、一方で新たな問題も散見されていて、私の元にもパフォーマンスについてご質問、ご相談を寄せられる機会が増えてきています。

 正直に言うと、私のプラグインが1.3.1に最適化されていない部分も多々ありまして、それも含めて対応可能な箇所は対応を進めているところです。

 その調査過程で見付けたのが、「ウィンドウカラーを変更すること」によるリスクです。ウィンドウカラーはデータベースの「システム」もしくはイベントコマンドで変更できます。しかし、結論から言うと少なくともver1.3.1ではカラーは0,0,0から変更しない方が無難と言わざるを得ないのです。

ウィンドウカラー変更

 まずは、以下の測定結果をご覧ください。

測定結果

 パフォーマンス調査にあたり、様々なタイミングやフレーム更新に掛かる時間を測定するプラグインを作成(ブログの最後で紹介しています)して、それを利用して測定しています。ゲームを起動して、以下の手順で操作を実行しました。

  1. ゲーム起動
  2. ニューゲームを選択
  3. メニュー画面を開く
  4. スキル画面を開く
  5. 3.と4.を繰り返す

 これらの動作を条件を変更して合計三回、実施したのが以下の表になります。すべてWebGLモードで計測プラグイン以外は適用していません。

  1. v1.3.1でウィンドウカラーをデータベースから変更している。
  2. v1.3.1でウィンドウカラーをデータベースから変更していない。
  3. v1.2.0でウィンドウカラーをデータベースから変更している。

ウィンドウカラー変更の有無による処理時間の違い

v1.3.1(変更あり) v1.3.1(変更なし) v1.2.0(変更あり) 計測対象
12.8MS 17.8MS 12.2MS シーン遷移 to Scene_Boot
46.7MS 59.9MS 44.3MS シーン遷移 to Scene_Title
214.8MS 210.2MS 185.9MS 背景キャプチャ作成
216.1MS 211.4MS 187.1MS シーン遷移 to Scene_Map
111.4MS 65.6MS 111.5MS マップ表示オブジェクト作成
69.2MS 68.4MS 38.1MS 背景キャプチャ作成
130.8MS 103.1MS 115.2MS シーン遷移 to Scene_Menu
129.7MS 78.6MS 108.1MS シーン遷移 to Scene_Skill
60.9MS 22MS 71.3MS シーン遷移 to Scene_Menu
127MS 69.2MS 142.3MS シーン遷移 to Scene_Skill
59.4MS 22.3MS 42.7MS シーン遷移 to Scene_Menu
107.3MS 62.1MS 158.2MS シーン遷移 to Scene_Skill
62.9MS 21MS 94.7MS シーン遷移 to Scene_Menu
100.8MS 32.3MS 135.8MS シーン遷移 to Scene_Skill
49.4MS 19.5MS 54.9MS シーン遷移 to Scene_Menu
114.2MS 31.1MS 103.7MS シーン遷移 to Scene_Skill

 ウィンドウカラーの変更が存在する場合、メニュー画面からスキル画面への遷移がおよそ60ミリ秒ほど遅延しているのが分かると思います。60ミリ秒とは0.06秒なので大きな影響はないように思えますが、実際に動かしてみると(スペック次第ですが)体感できるほどのカクツキを感じられるはずです。
 とはいえ、ウィンドウカラーの変更で時間が掛かっているのはv1.2.0も同じ。問題はここからです。

処理時間の違い(遷移を繰り返した場合)

v1.3.1(変更あり) v1.3.1(変更なし) v1.2.0(変更あり) 計測対象
287MS 31.7MS 130.1MS シーン遷移 to Scene_Skill
117.2MS 41.6MS 56.4MS シーン遷移 to Scene_Menu
174MS 35.4MS 151.1MS シーン遷移 to Scene_Skill
123.8MS 36.7MS 86.9MS シーン遷移 to Scene_Menu
221.2MS 31.8MS 133MS シーン遷移 to Scene_Skill
123.9MS 45.1MS 90.1MS シーン遷移 to Scene_Menu
264.5MS 78.3MS 115.1MS シーン遷移 to Scene_Skill

 何度も画面遷移を続けていくと差が広がっていき、酷いときでは200ミリ秒を上回る差異となっています。こうなるとカクツキは深刻です。長時間プレーしていると何度もメニューを開いたり閉じたりするので、イヤでも体感することになると思います。(ただし、メモリ上はおかしな点は見当たらないので根本原因については不明です)

考察と対策

 ウィンドウカラーを変更した場合、ウィンドウを作成するたびに「Bitmap.prototype.adjustTone」という処理が呼ばれますが、どうやらこれが元凶のようです。カラーを変更しない場合はもちろん呼ばれません。前述のとおりウィンドウは、画面遷移するたびに作り直されるので、戦闘→マップ→メニューと遷移を繰り返していけば処理の低下は避けられません。

 当然のことながら、プラグインによってメニュー画面に立ち絵や独自のウィンドウ等を追加すると、それに応じてさらにパフォーマンスが低下します。私が実際に確認したケースでは400ミリ秒を超えるケースもありました。

 すでに述べたとおり、対策は 「長編作品ではウィンドウカラーを変更しないこと」 です。もちろん今後の本体バージョンアップにより状況が改善されることは期待できますが、それでもカラーを変更することによって余分な処理が実行されることは避けようがありません。カラーの変更は手軽で便利ですが、ペイントソフトを使えば比較的簡単に色調を静的に変更できます。

 ただでさえ、パフォーマンスについて懸念点の多い現状ですから、できるところから対策していきたいですね!

プラグインの配布

 今回、パフォーマンス測定のために作成したプラグイン「パフォーマンス計測プラグイン」をMITライセンスで配布します。自作品のパフォーマンス改善の手掛かりにご利用頂ければと思います。詳細は以下の通りです。

処理に掛かる時間を計測してログに出力します。
正確な結果を計測するため、このプラグインは一番下に配置してください。
(このプラグインより下に配置されたプラグインの処理内容が計測時間から漏れる可能性があります)
ログが出力されるタイミングは主に2通りです。
 
1.フレーム更新ログ
1フレームに掛かる時間を計測します。出力内容は指定された間隔ごとの平均値です。
また、ゲーム更新と描画の時間を分けて出力することも可能です。
平均値が指定された閾値を超える場合、警告ログになります。
頻繁に警告ログが出力されなければ、概ね快適なプレーであるといえます。
 
2.その他ログ
同期実行され、かつ時間の掛かる以下の処理の時間を計測します。
・シーン遷移時
・マップオブジェクト作成時
・キャプチャ取得時
・セーブ実行時
 
結果が指定された閾値を超える場合、警告ログになります。
頻繁に警告ログが出力されなければ、概ね快適なプレーであるといえます。
 
パフォーマンス改善の手掛かりにしてください。
テストプレー時以外も動作しますが、製品版には付属しないことを推奨します。
 
このプラグインにはプラグインコマンドはありません。

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/PerformanceRefine.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php