新規記事の投稿を行うことで、非表示にすることが可能です。
2018年09月07日
スコアボード機能の実装例
◆スコアボード機能の実装例
RPGアツマールでスコアボード機能が実装されたので試してみました。
・エディタ/コアスクリプトのバージョン:1.5.2
・スコアボード機能(公式)
https://atsumaru.github.io/api-references/scoreboard
以下、イベントの実装例です。
分かりやすいように変数番号、部屋番号を別の値にしています。
--------------------1.準備
◆注釈:ゲーム内ポイントを変数10に格納
: :変数10をアツマールのスコアボード1番に登録
◆変数の操作:#0010 スコアボード1番 = ゲーム内ポイント
◆プラグインコマンド:SetRecordToScoreboard 1 10
--------------------2.登録
◆注釈:プレイヤーがスコアボード1番のレコード情報をもっているかの
: :チェック結果を変数11に格納
: :・レコード有=1
: :・レコードなし=2
◆プラグインコマンド:FetchRecordsFromScoreboard 1
◆プラグインコマンド:GetDataFromScoreboardRecords myRecord 11
--------------------3.比較参照
◆注釈:レコード情報が存在する場合の条件分岐
: :・スコアボード1番のランキングを変数12に格納
: :・スコアを変数13に格納
: :・ハイスコアを更新した場合、変数14が1になる
◆条件分岐:レコード情報の有無(有=1) = 1 ←変数11番
◆プラグインコマンド:GetDataFromScoreboardRecords myRecord.rank 12
◆プラグインコマンド:GetDataFromScoreboardRecords myRecord.score 13
◆プラグインコマンド:GetDataFromScoreboardRecords myRecord.isNewRecord 14
◆注釈:ハイスコアの有無(有=1、or それ以外)で分岐 ←変数14番
◆条件分岐:ハイスコア更新 = 1
◆文章:なし, 暗くする, 中
: :記録更新!
◆選択肢の表示:ランキングを見る, ランキングを見ない (ウィンドウ, 右, #1, #2)
:ランキングを見るのとき
◆文章:なし, 透明, 中 ←テキスト表示
: :ランキング:\v[12]
: :スコア:\v[13]
◆プラグインコマンド:DisplayScoreboard 1 ←ポップアップで表示
◆
:ランキングを見ないのとき
◆
:分岐終了
◆
:それ以外のとき
◆選択肢の表示:ランキングを見る, ランキングを見ない (ウィンドウ, 右, #1, #2)
:ランキングを見るのとき
◆文章:なし, 透明, 中 ←テキスト表示
: :ランキング:\v[12]
: :スコア:\v[13]
◆プラグインコマンド:DisplayScoreboard 1 ←ポップアップで表示
◆文章:なし, 透明, 中
: :
◆
:ランキングを見ないのとき
◆
:分岐終了
◆
:分岐終了
◆
:分岐終了
■ポップアップ表示のイメージ
■注意点
・部屋番号(Scoreboard X)は1〜10の整数(0〜9ではない)
・クラウド連携が必要なので、テストプレイでは動作確認ができない
実装テストをするだけなら、次のイベントを組んで、RPGアツマールの限定公開機能で確認すると良いです
◆プラグインコマンド:SetRecordToScoreboard 1 <任意の変数>
◆プラグインコマンド:DisplayScoreboard 1
RPGアツマールでスコアボード機能が実装されたので試してみました。
・エディタ/コアスクリプトのバージョン:1.5.2
・スコアボード機能(公式)
https://atsumaru.github.io/api-references/scoreboard
以下、イベントの実装例です。
分かりやすいように変数番号、部屋番号を別の値にしています。
--------------------1.準備
◆注釈:ゲーム内ポイントを変数10に格納
: :変数10をアツマールのスコアボード1番に登録
◆変数の操作:#0010 スコアボード1番 = ゲーム内ポイント
◆プラグインコマンド:SetRecordToScoreboard 1 10
--------------------2.登録
◆注釈:プレイヤーがスコアボード1番のレコード情報をもっているかの
: :チェック結果を変数11に格納
: :・レコード有=1
: :・レコードなし=2
◆プラグインコマンド:FetchRecordsFromScoreboard 1
◆プラグインコマンド:GetDataFromScoreboardRecords myRecord 11
--------------------3.比較参照
◆注釈:レコード情報が存在する場合の条件分岐
: :・スコアボード1番のランキングを変数12に格納
: :・スコアを変数13に格納
: :・ハイスコアを更新した場合、変数14が1になる
◆条件分岐:レコード情報の有無(有=1) = 1 ←変数11番
◆プラグインコマンド:GetDataFromScoreboardRecords myRecord.rank 12
◆プラグインコマンド:GetDataFromScoreboardRecords myRecord.score 13
◆プラグインコマンド:GetDataFromScoreboardRecords myRecord.isNewRecord 14
◆注釈:ハイスコアの有無(有=1、or それ以外)で分岐 ←変数14番
◆条件分岐:ハイスコア更新 = 1
◆文章:なし, 暗くする, 中
: :記録更新!
◆選択肢の表示:ランキングを見る, ランキングを見ない (ウィンドウ, 右, #1, #2)
:ランキングを見るのとき
◆文章:なし, 透明, 中 ←テキスト表示
: :ランキング:\v[12]
: :スコア:\v[13]
◆プラグインコマンド:DisplayScoreboard 1 ←ポップアップで表示
◆
:ランキングを見ないのとき
◆
:分岐終了
◆
:それ以外のとき
◆選択肢の表示:ランキングを見る, ランキングを見ない (ウィンドウ, 右, #1, #2)
:ランキングを見るのとき
◆文章:なし, 透明, 中 ←テキスト表示
: :ランキング:\v[12]
: :スコア:\v[13]
◆プラグインコマンド:DisplayScoreboard 1 ←ポップアップで表示
◆文章:なし, 透明, 中
: :
◆
:ランキングを見ないのとき
◆
:分岐終了
◆
:分岐終了
◆
:分岐終了
■ポップアップ表示のイメージ
■注意点
・部屋番号(Scoreboard X)は1〜10の整数(0〜9ではない)
・クラウド連携が必要なので、テストプレイでは動作確認ができない
実装テストをするだけなら、次のイベントを組んで、RPGアツマールの限定公開機能で確認すると良いです
◆プラグインコマンド:SetRecordToScoreboard 1 <任意の変数>
◆プラグインコマンド:DisplayScoreboard 1
YEP_GabWindow.js(テキスト再生機能)の安定化
◆YEP_GabWindow.js(テキスト再生機能)の安定化
YEP_GabWindow.js
制作者:Yanfly様
説明/ダウンロード先:
http://yanfly.moe/2015/12/18/yep-46-gab-window/
YEP_GabWindow.jsはイベント中にテキストを再生してくれる機能
最初のメッセージ
二番目のメッセージ
■トラブル内容:
次の問題に悩まされていました。
・二回以上再生したときに、台詞が正しく再生されない
一回目:台詞@→台詞A→台詞B
二回目:台詞@→台詞B
三回目:台詞A→台詞B
■確認内容:
・エディタのバージョンは執筆現在の最新版(v1.6.1)
・プラグインのバージョンは執筆現在の最新版(v1.06)
・一回再生するだけのイベントなら問題ない
・問題の挙動はイベントをコピーしても同じ
■対策:
「プラグインコマンド:ClearGab」をGabコマンド開始時に実行する
この青囲み処理部分です。
Gabイベント処理をClear(初期化)して、毎回一回目の挙動を行うことで解決しました。
汎用宝箱を開閉する際、トラップ発動時のリアクションなど同じGabイベントを再利用する時に役立ちます。
以上、ご参考になれば幸いです。
YEP_GabWindow.js
制作者:Yanfly様
説明/ダウンロード先:
http://yanfly.moe/2015/12/18/yep-46-gab-window/
YEP_GabWindow.jsはイベント中にテキストを再生してくれる機能
最初のメッセージ
二番目のメッセージ
■トラブル内容:
次の問題に悩まされていました。
・二回以上再生したときに、台詞が正しく再生されない
一回目:台詞@→台詞A→台詞B
二回目:台詞@→台詞B
三回目:台詞A→台詞B
■確認内容:
・エディタのバージョンは執筆現在の最新版(v1.6.1)
・プラグインのバージョンは執筆現在の最新版(v1.06)
・一回再生するだけのイベントなら問題ない
・問題の挙動はイベントをコピーしても同じ
■対策:
「プラグインコマンド:ClearGab」をGabコマンド開始時に実行する
この青囲み処理部分です。
Gabイベント処理をClear(初期化)して、毎回一回目の挙動を行うことで解決しました。
汎用宝箱を開閉する際、トラップ発動時のリアクションなど同じGabイベントを再利用する時に役立ちます。
以上、ご参考になれば幸いです。
2018年09月05日
RPGツクールMV Steamワークショップ機能の使い方
◆RPGツクールMV Steamワークショップ機能の使い方
Steamワークショップとはユーザー作成コンテンツをSteamユーザー間で共有する機能のこと。
RPGツクールMVでは、この機能を活用することでプロジェクトや素材を入手することが可能です。
自分が登録する側になれば、作品の公開にも利用できそうです。
国内ではこの機能を利用している人は少ないので、活動を盛り上げたい方は活用してみるといいと思います。
1.Steamを起動、ライブラリ-RPG Maker MV-ワークショップページへ移動する
2.興味のあるコンテンツをサブスクライブする
3.RPGツクールMVを起動する
4.メニュー-ファイル-Steam管理と進み、希望のプロジェクトを選択して「プロジェクトをロード」する
5.閉じると4で選択したプロジェクトの画面になる
プロジェクトは以下に保存される
C:\Program Files (x86)\Steam\steamapps\workshop\
コンテンツによっては、容量食いなのが気になるところですね。
必要部分だけ抜き出すように工夫も必要だと思います。
以上、ご参考になれば幸いです。
Steamワークショップとはユーザー作成コンテンツをSteamユーザー間で共有する機能のこと。
RPGツクールMVでは、この機能を活用することでプロジェクトや素材を入手することが可能です。
自分が登録する側になれば、作品の公開にも利用できそうです。
国内ではこの機能を利用している人は少ないので、活動を盛り上げたい方は活用してみるといいと思います。
1.Steamを起動、ライブラリ-RPG Maker MV-ワークショップページへ移動する
2.興味のあるコンテンツをサブスクライブする
3.RPGツクールMVを起動する
4.メニュー-ファイル-Steam管理と進み、希望のプロジェクトを選択して「プロジェクトをロード」する
5.閉じると4で選択したプロジェクトの画面になる
プロジェクトは以下に保存される
C:\Program Files (x86)\Steam\steamapps\workshop\
コンテンツによっては、容量食いなのが気になるところですね。
必要部分だけ抜き出すように工夫も必要だと思います。
以上、ご参考になれば幸いです。
装備中限定のパッシブスキル
◆装備中限定のパッシブスキル
制作中の「地図の時間」から、プラグインの組み合わせによる実装を一つご紹介します。
■ステート自動付与プラグイン
AutomaticState.js
制作者:トリアコンタン様
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/AutomaticState.js
ステートのメモ欄に以下記述
<AS武器装備:(武器ID)>
<AS防具装備:(防具ID)>
この方法だと1つのステートにつき1種類の武器ID、防具IDのみ指定可能。
ブロードソードとブロードソード+1に「攻撃力アップ」ステートを付与する場合、「攻撃力アップ」ステートをブロードソードとブロードソード+1用に2つ用意する必要がある
■装備変更時の変数操作プラグイン
TriggerOnEquipAndState.js
制作者:トリアコンタン様
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/TriggerOnEquipAndState.js
追加導入したら、武器/防具のメモ欄に以下記述
<TOESスイッチ対象:(スイッチID)>
ステートのメモ欄は武器ID,防具IDの代わりに以下記述
<ASスイッチ:(スイッチID)>
この方法だとスイッチ単位で判定してくれるので「ブロードソード」「ブロードソード+1」「ブロードソード…」に対して共通のステートを割り当てることができる
ただ一人が装備すると全員に適用されてしまうため、装備可能者とステート対象をセットで制限する必要がある
・ステートの特徴を使えば、属性有効度、パラメーター増加、薬の知識(アイテム効果2倍)、限定スキル、経験値の変化などが設定可能
装備品装着時のパッシブスキルとして使えます
・YEP Item Coreのindependent items機能で生成したアイテム/武器/防具に対してもこの方法は有効
さらに反撃拡張プラグインを使えば、反撃率を発生確率に見立ててオートガード、オートポーションを実装可能
CounterExtend.js
制作者:トリアコンタン様
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/CounterExtend.js
身代わり拡張プラグインを組み合わせればFF9の「女の子をかばう」のようなスキルも設定可能
SubstituteExtend.js
制作者:トリアコンタン様
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/SubstituteExtend.js
アイディア次第で幅が広がると思います。
以上、制作のご参考になりましたら幸いです。
(なんだか、トリアコンタンさん特集になりましたね……)
制作中の「地図の時間」から、プラグインの組み合わせによる実装を一つご紹介します。
■ステート自動付与プラグイン
AutomaticState.js
制作者:トリアコンタン様
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/AutomaticState.js
ステートのメモ欄に以下記述
<AS武器装備:(武器ID)>
<AS防具装備:(防具ID)>
この方法だと1つのステートにつき1種類の武器ID、防具IDのみ指定可能。
ブロードソードとブロードソード+1に「攻撃力アップ」ステートを付与する場合、「攻撃力アップ」ステートをブロードソードとブロードソード+1用に2つ用意する必要がある
■装備変更時の変数操作プラグイン
TriggerOnEquipAndState.js
制作者:トリアコンタン様
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/TriggerOnEquipAndState.js
追加導入したら、武器/防具のメモ欄に以下記述
<TOESスイッチ対象:(スイッチID)>
ステートのメモ欄は武器ID,防具IDの代わりに以下記述
<ASスイッチ:(スイッチID)>
この方法だとスイッチ単位で判定してくれるので「ブロードソード」「ブロードソード+1」「ブロードソード…」に対して共通のステートを割り当てることができる
ただ一人が装備すると全員に適用されてしまうため、装備可能者とステート対象をセットで制限する必要がある
・ステートの特徴を使えば、属性有効度、パラメーター増加、薬の知識(アイテム効果2倍)、限定スキル、経験値の変化などが設定可能
装備品装着時のパッシブスキルとして使えます
・YEP Item Coreのindependent items機能で生成したアイテム/武器/防具に対してもこの方法は有効
さらに反撃拡張プラグインを使えば、反撃率を発生確率に見立ててオートガード、オートポーションを実装可能
CounterExtend.js
制作者:トリアコンタン様
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/CounterExtend.js
身代わり拡張プラグインを組み合わせればFF9の「女の子をかばう」のようなスキルも設定可能
SubstituteExtend.js
制作者:トリアコンタン様
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/SubstituteExtend.js
アイディア次第で幅が広がると思います。
以上、制作のご参考になりましたら幸いです。
(なんだか、トリアコンタンさん特集になりましたね……)
2018年08月31日
敵グループや敵HP残量によりバトルBGMを変更するプラグイン「YEP_BattleBgmControl.js」
◆敵グループや敵HP残量によりバトルBGMを変更するプラグイン「YEP_BattleBgmControl.js」
導入が楽な割に演出に使えそうなプラグインを見つけたのでご紹介。
制作者:Yanfly様
説明/ダウンロードページ:
YEP.132 - Battle BGM Control
http://yanfly.moe/2017/04/14/yep-132-battle-bgm-control-rpg-maker-mv/
■機能
@敵グループ単位で戦闘BGMを変更
・敵グループのバトルイベントに注釈で記述する
記述する際の書式は次の通り
<Battle BGM Volume: x>
<Battle BGM Pitch: x>
<Battle BGM Pan: +x>
<Battle BGM Pan: -x>
<Battle BGM Name: bgmファイル名>
・条件は「実行しない」のままで良い
・音量、ピッチ、位相も調節可能(曲の前に記述する必要がある)
実装例
A敵キャラの残HPを判定して戦闘BGMを変更
・敵キャラのメモ欄に記述する
敵キャラ
<Battle BGM 100%: Battle1, 90, 100, 0>
<Battle BGM 70%: Battle2, 90, 110, 0>
<Battle BGM 50%: Battle3, 90, 120, 0>
<Battle BGM 20%: Battle4, 90, 130, 0>
<Battle BGM 5%: Battle5, 90, 140, 0>
以下実験結果。
・@とAの条件が重なった場合、Aが優先されます。
・Aが複数体存在する場合、一番低いHPの条件が優先されます。
・Aが複数体存在する場合、低いHPの条件が適用された状態で1体を討伐するとBGMは固定されます
たとえば、エンカウントしたとおもったら、旅の商人が現われるとか。
あまりコロコロBGMが変わるのは気持ちが落ち着かないので、使いどころですけどね。
導入が楽な割に演出に使えそうなプラグインを見つけたのでご紹介。
制作者:Yanfly様
説明/ダウンロードページ:
YEP.132 - Battle BGM Control
http://yanfly.moe/2017/04/14/yep-132-battle-bgm-control-rpg-maker-mv/
■機能
@敵グループ単位で戦闘BGMを変更
・敵グループのバトルイベントに注釈で記述する
記述する際の書式は次の通り
<Battle BGM Volume: x>
<Battle BGM Pitch: x>
<Battle BGM Pan: +x>
<Battle BGM Pan: -x>
<Battle BGM Name: bgmファイル名>
・条件は「実行しない」のままで良い
・音量、ピッチ、位相も調節可能(曲の前に記述する必要がある)
実装例
A敵キャラの残HPを判定して戦闘BGMを変更
・敵キャラのメモ欄に記述する
敵キャラ
<Battle BGM 100%: Battle1, 90, 100, 0>
<Battle BGM 70%: Battle2, 90, 110, 0>
<Battle BGM 50%: Battle3, 90, 120, 0>
<Battle BGM 20%: Battle4, 90, 130, 0>
<Battle BGM 5%: Battle5, 90, 140, 0>
以下実験結果。
・@とAの条件が重なった場合、Aが優先されます。
・Aが複数体存在する場合、一番低いHPの条件が優先されます。
・Aが複数体存在する場合、低いHPの条件が適用された状態で1体を討伐するとBGMは固定されます
たとえば、エンカウントしたとおもったら、旅の商人が現われるとか。
あまりコロコロBGMが変わるのは気持ちが落ち着かないので、使いどころですけどね。