フォーラムへの返信
-
投稿者投稿
-
Evelyn
参加者結論として、RPGツクールMVのスクリプトから NBAD 現 FAB 銀行の口座残高を直接取得することは現実的ではありません。FAB は一般向けに利用できる公式 API を公開しておらず、ログインを伴わない形で残高情報を取得する手段は基本的に用意されていません。
MV の JavaScript から外部 Web API にアクセスする仕組み自体は可能ですが、銀行サイトの場合は多要素認証や CAPTCHA、厳しいセキュリティ制御があるため、ログイン自動化は規約違反やアカウント停止のリスクが高く、学習用途としてもおすすめできません。RPG 制作の一環として扱うのであれば、実際の銀行口座ではなくダミー API や自作の JSON サーバーを用意した方が安全で理解もしやすいです。
仕組みの理解という意味では、FAB の残高確認がどのような流れで行われているかを一般向けに説明している https://fbbalancecheck.ae/
のようなページを参考にすると、通信の考え方やセキュリティ前提を知る助けにはなりますが、これは RPG から直接使える API ではありません。
実案件や実口座に触れる部分は切り離し、RPGツクールMVでは外部連携の基礎や疑似的な残高管理を実装する形で学ぶのが無難だと思います。
Evelyn
参加者<p data-start=”0″ data-end=”58″>原因は、Classes や Class というプロパティが存在しないためです。職業IDはその名前では取得できません。</p>
<p data-start=”60″ data-end=”126″>MVでは、現在の職業IDはアクターが持つ currentClass() から取得できます。変数に入れる場合は、次の書き方が正解です。</p><div class=”contain-inline-size rounded-2xl corner-superellipse/1.1 relative bg-token-sidebar-surface-primary”>
<div class=”@w-xl/main:top-9 sticky top-[calc(–spacing(9)+var(–header-height))]”>
<div class=”absolute end-0 bottom-0 flex h-9 items-center pe-2″>
<div class=”bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs”></div>
</div>
</div>
<div class=”overflow-y-auto p-4″ dir=”ltr”><code class=”whitespace-pre! language-javascript”>$gameVariables.<span class=”hljs-title function_”>setValue</span>(<span class=”hljs-number”>8</span>, $gameActors.<span class=”hljs-title function_”>actor</span>(<span class=”hljs-number”>1</span>).<span class=”hljs-title function_”>currentClass</span>().<span class=”hljs-property”>id</span>);
</div>
</div>
<p data-start=”215″ data-end=”301″ data-is-last-node=”” data-is-only-node=””>内部変数の _classId を直接参照する方法もありますが、仕様変更の影響を受けにくいのは currentClass().id の方なので、こちらを使うのが望ましいです。</p>Evelyn
参加者<p data-start=”0″ data-end=”104″>初めて購入するのであれば、基本的にはRPGツクールMZがおすすめです。MZはMVの後継版で、操作性や標準機能が整理されており、最初からできることが多いため、余計な調整やプラグイン探しに時間を取られにくいです。</p>
<p data-start=”106″ data-end=”215″>一方で、MVは情報量や既存プラグインが非常に多く、価格も安めなので、コスト重視や特定のMV専用プラグインを使いたい場合には選択肢になります。ただし、これから学ぶ前提であれば、古い仕様を前提にする理由はあまりありません。</p>
<p data-start=”217″ data-end=”256″ data-is-last-node=”” data-is-only-node=””>特別な目的がなければ、今から始める人はMZを選んだほうが長く安心して使えます。</p>Evelyn
参加者結論として、MZ版で追加された機能をMV用にそのまま移植するのは簡単ではありません。MZとMVではエンジン構造や利用できるAPIが異なり、MZ専用の処理が含まれているためです。
対応するには、まずMV版とMZ版のコードを差分比較して、どの機能が追加されているかを把握する必要があります。そのうえで、MZ専用のクラスやメソッドをMVで動く形に書き換えるか、代替処理を実装します。移植後はMVプロジェクトで動作確認を行い、エラーを一つずつ修正します。
追加機能の内容によってはMVでは再現できない場合もあるため、その場合はMV版をそのまま使うか、仕様を理解したうえで自己改造するのが現実的です。
Evelyn
参加者指定のSceneCustomMenu.jsプラグインはTriacontane氏作で、初心者向けの詳しい解説はほとんどありません。基本的な使い方は、プラグインをjs/pluginsに置き、プラグインマネージャーで有効化した後、プラグイン内コメントのヘルプを確認することです。カスタムメニューの設定や項目追加にはJavaScriptの理解があると便利です。補助情報はTriacontane氏のGitHubやフォーラムで探すのが現実的です。
Evelyn
参加者RPGツクールMVで戦闘終了時にHPとMPを自動全回復させるには、標準機能だけではできません。プラグインなしで簡単にするなら、コモンイベントを作り「全回復:パーティ全体」を戦闘終了後に実行する方法があります。全戦闘に適用するなら、並列処理で戦闘回数を監視し、前回戦闘回数より増えていたら全回復する設定が便利です。より簡単かつ柔軟にするなら、AutoRecoverAfterBattle.jsのようなプラグインを有効化するだけで、戦闘終了時に自動で全員のHPとMPを回復できます。
Evelyn
参加者RPGツクールMZ用プラグインをMV用にするには、まずMZ版とMV版のコードを比較し、MZで追加された機能を特定する必要があります。その後、MVの仕様に合わせてクラスやメソッドを調整し、代替が必要な部分は書き換えます。移植後はMVプロジェクトで動作確認し、エラーがあれば修正するという手順です。JavaScript知識とMVプラグイン構造の理解、根気強いデバッグが必要で、具体的な追加機能が分かればさらに正確なアドバイスが可能です。
Evelyn
参加者スチル切り替え時の点滅は、画像の読み込みタイミングのずれが原因です。ピクチャをあらかじめ重ねて表示し、不要なものを透明度でフェードアウトさせるか、画面全体をフェードさせることで滑らかに切り替えられます。また、Wolf_FadePicture.jsやFixImageLoading.jsなどのプラグインを使うとさらに安定します。
Evelyn
参加者私はRPGツクールMVでHP/MPバーの増減を徐々に変化させるには、既存プラグインでは対応が難しいと思っています。解決するには自作プラグインで、フレームごとにバーの値を少しずつ変化させ、イージング関数(急→緩)を適用する方法が現実的です。戦闘進行は止めず、バーだけアニメーションさせる形にできます。
Evelyn
参加者試してみましたが、MP0でアクターだけ戦闘不能にするにはプラグインが便利です。ターン終了時に共通イベントで判定する方法でも可能ですが、リアルタイムにはならないので注意してください。
-
この返信は2ヶ月、 3週前に
Evelynが編集しました。
Evelyn
参加者サイドビュー戦闘でアクターの行動挙動を変更するには、NRPプラグイン(NRP_DynamicMotionMZ.js と NRP_DynamicAnimationMZ.js)を使い、スキルのメモ欄に <D-Setting:NoStep>(前進禁止)、<D-Motion:attack>(武器振りモーション)、<D-Animation>(アニメーション再生)を設定すると簡単にカスタマイズ可能です。
Evelyn
参加者勝利MEは仕様上ループしないため、BGMとして再生するのが正解です。
データベースで勝利MEを「なし」にし、結果画面用プラグイン側で勝利BGMを直接再生、リザルト遷移ウェイトを0にすれば、キー入力まで途切れず再生できます。
BGM素材がファンファーレとループ込みの一曲構成でも、この方法なら自然につながります。
Evelyn
参加者特定アクターがいる場合にランダムでステートを付与するには、コモンイベントで乱数を使い、配列からステートIDを選択してパーティ全員に付与し、戦闘開始時とターン終了時にバトルイベントで呼び出すのが簡単です。アニメーションは$gameTemp.requestAnimation([対象], アニメID)で表示可能。
-
この返信は2ヶ月、 3週前に
Evelynが編集しました。
-
この返信は2ヶ月、 3週前に
-
投稿者投稿