#ツクルーム › フォーラム › RPGツクールMZ (RPG Maker MZ) › 複数のステート候補からランダムで1つのステートを付与する方法 › 返信先: 複数のステート候補からランダムで1つのステートを付与する方法
やりたいことが、もう一歩分かりません。
なにかのついでの時にでも一読いただけると、質問が伝えやすくなるかも知れません。
https://fungamemake.com/archives/8079
どういう設定をしているのか直感的に分かりません。
できるだけ箇条書きを使って、内容を分類いただけると伝わりやすいと思います。
質問を整理すると下記のような疑問点があります。
1. ステート付与時にアニメーションを表示したい
「アニメーション」が指しているもの
A.データベースに登録されているアニメーション
B.アクターのモーション(攻撃やアイテムを使用しているような動作・SV戦闘)
どちらか?それとも両方?
2. 毎ターンのコマンド入力前にステート付与を行いたい
A. 戦闘システムは何を使用していますか?
システム1>戦闘システム
・ターン制
・タイムプログレス(アクティブ)
・タイムプログレス(ウェイト)
毎ターンとのことで「ターン制」でしょうか?
3. 行動を1回分失ってしまう
強制行動の仕様なので、アクターのモーションを使用したい場合、「戦闘開始時(ターン0+0)とターン終了時」での設定は妥当だと思います。
別の解決策で思いつくのは例えば、下記のようなプラグインでターンを消費しないスキルに指定する方法が考えられます。
▼Torigoya ターン消費なしスキル(Ruたん様作) – TorigoyaMZ_QuickSkill.js
https://plugin-mz.fungamemake.com/archives/938
選択するとターンを消費せずに即発動するスキルを追加します。
4. アニメーションの表示方法の模索
4-1.コモンイベントにアニメーション表示を追加(モーションなし)
モーションが不要であれば、上記コモンイベントの中に下記のような「戦闘アニメーションの表示」を入れる方法でもアニメーションを表示できます。
◆戦闘アニメーションの表示:敵グループ全体, 光/全体2
4-1-2. アニメーションをアクター全体に表示するスクリプト(モーションなし)
・コモンイベント作成
◆条件分岐:リードがパーティにいる
◆スクリプト:$gameParty.members().forEach(actor => {
: : // 33の部分はアニメーションのID
: : $gameTemp.requestAnimation([actor], 33);
: :});
◆スクリプト:// ステートID 7,8,9,10 を候補とする配列を設定
: :const states = [7,8,9,10];
: :
: :const randomIndex = Math.floor(Math.random() * states.length);
: :const randomStateId = states[randomIndex];
: :$gameParty.members().forEach(member => {
: : member.addState(randomStateId);
: :});
◆
:分岐終了
・バトルイベント作成
・戦闘開始時(ターン0+0)
・ターン終了時
の2ページで上記コモンイベントを実行。
4-2.プラグイン
スキルを使用しないで、アニメーションをアクターに表示したい場合、下記のプラグインが利用できるかも知れません。
▼戦闘アニメーションの表示を拡張(あわやまたな様作) – BattleAnimationPlus.js
https://plugin-mz.fungamemake.com/archives/6424
「戦闘アニメーションの表示」を拡張します。
▼NUUN 戦闘中のアクターへのアニメーション実行(NUUN様作) – NUUN_BattleAnimationEX.js
https://plugin-mz.fungamemake.com/archives/5723
イベントコマンドの戦闘アニメーションの表示では敵グループにしか選択できません。このプラグインではアクターにも表示出来るようにします。また敵グループはデフォルトだと8番目までしか選択できませんが9番目以降でも指定できるようになります。指定の敵ID、アクターIDにアニメーションを表示することができます。
どれかが希望に当てはまると良いのですが。