【解決済み】フトコロ様プラグイン「FTKR_ExSvMotion.js」について

返信する
なっぱ
記事: 80
登録日時: 2015年11月19日(木) 20:19

【解決済み】フトコロ様プラグイン「FTKR_ExSvMotion.js」について

投稿記事 by なっぱ »

フロントビューバトルで、アクター側を顔グラ表示し、特定のステート時に顔グラを変える方法を探していますが、うまくいきません。

【現状】
フトコロ様の作成した下記の5つのプラグインを、下記の順に導入
FTKR_CustomSimpleActorStatus.js v3.5.3
FTKR_CSS_BattleStatus v2.2.0
FTKR_ExSvMotion.js v1.4.0
FTKR_FVActorAnimation.js v1.1.2
FTKR_FacialImageDifference2.js v2.0.1

①特定のステータス時に顔グラを変えたい
・プラグイン「FTKR_ExSvMotion.js v1.4.0」のパラメータで、状態モーション7に『name:〇〇』『condition:state4』を入力
・特定のステートのメモ欄に<ESM MOTION:4>を入力

説明を読むと上記の手順だと思うのですが、独自に設定するステートの場合のname欄には何を入力すればよいのか分かりません。

②上記の代替案として「状態異常時に顔グラを変える」を使う
・特定のステートのみを状態異常に設定(ステートの[SV]モーションを『状態異常』にする)
・無事FTKR_FVActorAnimation.jsで設定した番号の顔グラに変更される。
・そのままだと他の行動や状態時に元の顔グラに戻ってしまうので、FTKR_ExSvMotion.jsの機能で「特定のステートのメモ欄に<ESM FIXED_MOTION>を入力」で、特定のステートの間は顔グラが固定されるように設定

上記のやり方だと、メモ欄が空白なら顔グラが変更されていたのですが、メモ欄に<ESM FIXED_MOTION>をいれるとそもそも顔グラが変更されなくなってしまいました。


以上2点につきまして、解決方法が分からず困っています。もし分かる方がいましたら、教えていただきたいです。よろしくお願いします。
最後に編集したユーザー なっぱ [ 2024年10月27日(日) 23:45 ], 累計 1 回
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: フトコロ様プラグイン「FTKR_ExSvMotion.js」について

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
なっぱ さんが書きました:フロントビューバトルで、アクター側を顔グラ表示し、特定のステート時に顔グラを変える方法を探していますが、うまくいきません。

【現状】
フトコロ様の作成した下記の5つのプラグインを、下記の順に導入
FTKR_CustomSimpleActorStatus.js v3.5.3
FTKR_CSS_BattleStatus v2.2.0
FTKR_ExSvMotion.js v1.4.0
FTKR_FVActorAnimation.js v1.1.2
FTKR_FacialImageDifference2.js v2.0.1

①特定のステータス時に顔グラを変えたい
・プラグイン「FTKR_ExSvMotion.js v1.4.0」のパラメータで、状態モーション7に『name:〇〇』『condition:state4』を入力
・特定のステートのメモ欄に<ESM MOTION:4>を入力

説明を読むと上記の手順だと思うのですが、独自に設定するステートの場合のname欄には何を入力すればよいのか分かりません。

②上記の代替案として「状態異常時に顔グラを変える」を使う
・特定のステートのみを状態異常に設定(ステートの[SV]モーションを『状態異常』にする)
・無事FTKR_FVActorAnimation.jsで設定した番号の顔グラに変更される。
・そのままだと他の行動や状態時に元の顔グラに戻ってしまうので、FTKR_ExSvMotion.jsの機能で「特定のステートのメモ欄に<ESM FIXED_MOTION>を入力」で、特定のステートの間は顔グラが固定されるように設定

上記のやり方だと、メモ欄が空白なら顔グラが変更されていたのですが、メモ欄に<ESM FIXED_MOTION>をいれるとそもそも顔グラが変更されなくなってしまいました。


以上2点につきまして、解決方法が分からず困っています。もし分かる方がいましたら、教えていただきたいです。よろしくお願いします。
ちょっと、長くなってしまいますが、ご容赦ください。

まず <ESM FIXED_MOTION> タグに関して、
プラグインヘルプ中の説明に足りていない部分があり、
誤った認識をしてしまっているようです。
GitHub の説明書では、
また、以下のタグを記入すると、ステート付与直前のモーションの状態で固定し、それ以降のモーション更新を無効にします。

<ESM モーション無効>
<ESM FIXED_MOTION>

例えば、防御モーション中にこのステートが付与されると、防御モーションで固定され、以降このステートが解除されるまで何があっても防御モーションをとり続けます。
とあります。
この、ステート付与直前のモーションの状態で固定という部分が重要なのですが、
プラグインのヘルプでは抜けてしまっています。
要するに、付与されたステート(この場合は状態異常)のモーションで固定されるのではないわけです。

話を変えて、
特定のステートに対して、特定の顔のインデックスを設定する方法ですが、
FTKR_ExFaceDifference2 のプラグインパラメータ、
CustomX Face Index (X は 1~8の数字)
の項目を使用して設定するのが標準的なやり方かと思います。

まず、
ステートのメモ欄に、
<ESM MOTION: X> (X は任意の正の整数)のタグを記入して、
ステートが付与されたときの [SV] モーション を4 以上に設定します。
これは、既に記入できているはずです。

次に、
FTKR_ExSvMotion のパラメータ、
状態モーションX 設定 で、
Motion X name を customY、
Motion X Condition を stateZ
に設定してください。
X は 1~16、 Y は 1 ~8、Z は <ESM MOTION> で設定したモーション番号に変換してください。

次に、
同じく、FTKR_ExSvMotion のパラメータ、
カスタムモーション X 設定 (X は Motion X name で設定した customY の Yの番号) で、
モーションの設定を行います。
状態異常のステートだと思いますので、
Custom X Loop に abnormal と入力しておけばいいかなと思います。

ちょっと話題がそれます。

FTKR_ExSvMotion のヘルプにも書いてありますが、
状態モーションの表示には、優先順位があり、
数字の大きいもの(より下で設定されるもの)の方が優先順位が高いです。
行動決定や、実際に行動する際のモーションは Condition が attack に設定されているモーションで、
これは、一番下の 状態モーション16 に設定されていて、何よりも優先順位が高い状態になっています。
ですので、この状態モーション16 の内容を、より若い番号に設定し直して、
それよりも、後ろの番号に、customX のモーションを再生する設定を書けば、
行動決定や、行動時に顔グラフィックが変更されないようになると思います。

話を戻します。

次に、
FTKR_ExFaceDifference2 で、
該当する CustomX Face Index に、顔画像のインデックスを設定してください。

これで、プラグインパラメータ等の設定はできたのですが、
Cusotm X Face Index で設定したインデックスに正しく切り替わらないという不具合があって、
プラグインの内容を修正する必要があります。

FTKR_ExFacialImageDifference2.js ファイルを、
JavaScript を編集できるソフトを使って開き、以下の変更を行ってください。
編集を行う前には、ファイルのバックアップを取っておくことを忘れないでください。
  1. 357 行目付近に Sprite_Actor.prototype.faceTypeIndex というメソッドがあるはずなので、
    以下の内容に変更する。

    コード: 全て選択

        Sprite_Actor.prototype.faceTypeIndex = function(motionType) {
            if (!motionType) return 0;
            if (Imported.FTKR_ESM && !this._motion) return 0;
            var faceType;
            if (motionType.match(/custom[1-8]/)) {
                faceType = motionType;
            } else {
                faceType = Imported.FTKR_ESM ?
                this.convertOtherMotion(this.motionName()) :
                motionType;
            }
            return FTKR.FID.faces[faceType];
        };
    
恐らく、以上の設定を(必要なだけ)行えば、
特定のステートで、顔画像を変更できるのではないかなと思います。

また、フトコロ様のプラグインの説明書を確認できるページへのリンクを貼っておきますので、
そこから、各説明書のページに飛んで、設定方法等をよく確認しておいてください。
(ものによっては、説明を呼んでもよくわからないものもあるかもしれませんが…)
https://github.com/futokoro/RPGMaker/bl ... /README.md

以上、ご確認お願いします。
最後に編集したユーザー ecf5DTTzl6h6lJj02 [ 2024年10月22日(火) 03:44 ], 累計 2 回
なっぱ
記事: 80
登録日時: 2015年11月19日(木) 20:19

Re: フトコロ様プラグイン「FTKR_ExSvMotion.js」について

投稿記事 by なっぱ »

ecf5DTTzl6h6lJj02様、ご教授ありがとうございます。
ご説明の通り試してみたところ最初は上手くいかなかったのですが、ご説明にあったステートメモに記述する<EMS MOTION: X>が「EMS」ではなく正しくは「ESM」であることに気づき直したところ、イメージしていた感じに動きました。大変ありがとうございます。

カスタムモーションの設定で「abnormal」と記述しましたが、ステートによる顔画像変更なら何でも同じように「abnormal」で設定できるのでしょうか?
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: フトコロ様プラグイン「FTKR_ExSvMotion.js」について

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
なっぱ さんが書きました:ecf5DTTzl6h6lJj02様、ご教授ありがとうございます。
ご説明の通り試してみたところ最初は上手くいかなかったのですが、ご説明にあったステートメモに記述する<EMS MOTION: X>が「EMS」ではなく正しくは「ESM」であることに気づき直したところ、イメージしていた感じに動きました。大変ありがとうございます。
全然気づいていませんでした。
しかも、1か所間違っているとかではなくて、全部 EMS と記述してしまってますし…。
更には、EMS_FIXED_MOTION などと EMS の後ろに余計な _ が入っているのもありますし。
前の記事の方は、修正をかけました。
大変失礼いたしました。
なっぱ さんが書きました: カスタムモーションの設定で「abnormal」と記述しましたが、ステートによる顔画像変更なら何でも同じように「abnormal」で設定できるのでしょうか?
カスタムモーションの設定の部分には、
再生するSVのモーションのコードを ,(カンマ) 区切りで、必要な分だけ記入するようになっています。
記入した分だけ、順番に再生されます。
Non Loop、Loop と2つあり、
Non Loop の方に記入すれば、ループ再生なし、Loop の方に記入すれば、ループ再生です。
今回、abnormal というコードを Loop の方に記入しました。
abnormal は 状態異常のモーションを再生するコードなので、
SVのモーションとして、状態異常のモーションをループ再生する設定になります。
フロントビュー戦闘で、SVの表示がないので、どのモーションを設定しても問題なさそうですが、
一応、状態異常のモーションを指定しています。

詳しくは、GitHub の説明書の項目を読んでください。

カスタムモーションの作成に関する説明
https://github.com/futokoro/RPGMaker/bl ... C%E6%88%90

また、どのコードでどのSVモーションが再生されるのかについては、
以下のリンクから確認してください。

モーション表
https://github.com/futokoro/RPGMaker/bl ... 7%E3%83%B3

以上、ご確認ください。
なっぱ
記事: 80
登録日時: 2015年11月19日(木) 20:19

Re: フトコロ様プラグイン「FTKR_ExSvMotion.js」について

投稿記事 by なっぱ »

ご連絡遅くなり申し訳ありません。

・カスタムモーションの件、了解しました。フロントビューでは関係ないということですね。

別件でお願いしたいのですが、よろしいでしょうか?

①現在状態モーションには、最低限で
1 action
2 custom1 state4
3 dead state3
4 victory victory
5 escape escape
が設定された状態なのですが、
「custom1 state4」で設定したステートとデフォルトで入っている「毒」ステートを重ね掛けするとデフォルトの顔画像に戻ってしまいます。色々試したところ、ステートID4の毒ステートを14番等後半の番号にコピペして重ね掛けすと特に顔グラに影響がありませんでした。最悪全ステートの番号を10ずつ繰り下げてしまえば解決するのかもしれませんが、もし解決方法がありましたら教えていただきたいです。

②これは「FTKR_CustomSimpleActorStatus.js」か「FTKR_CSS_BattleStatus.js」の問題かと思うので別トピックを立てた方がよければそうしますので、とりあえず問題点だけ。戦闘画面のアクターのステート表示を重なりなしで横に4つ並べたいのですが、なぜか最大3つまでしか設定できません。スペース的に4つだときまりよいのですが、幅などを変えてもうまくいきません。もし解決方法が分かればお願いします。

③最後に、よく見かけるトピックの「解決済み」というのは、どうやればよいのでしょうか?単純に編集で書き加えて上書きしているのでしょうか?

以上3点について、お時間あるときで構いませんのでよろしくお願いします。
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: フトコロ様プラグイン「FTKR_ExSvMotion.js」について

投稿記事 by ecf5DTTzl6h6lJj02 »

こんにちは。
なっぱ さんが書きました:ご連絡遅くなり申し訳ありません。

・カスタムモーションの件、了解しました。フロントビューでは関係ないということですね。

別件でお願いしたいのですが、よろしいでしょうか?

①現在状態モーションには、最低限で
1 action
2 custom1 state4
3 dead state3
4 victory victory
5 escape escape
が設定された状態なのですが、
「custom1 state4」で設定したステートとデフォルトで入っている「毒」ステートを重ね掛けするとデフォルトの顔画像に戻ってしまいます。色々試したところ、ステートID4の毒ステートを14番等後半の番号にコピペして重ね掛けすと特に顔グラに影響がありませんでした。最悪全ステートの番号を10ずつ繰り下げてしまえば解決するのかもしれませんが、もし解決方法がありましたら教えていただきたいです。

②これは「FTKR_CustomSimpleActorStatus.js」か「FTKR_CSS_BattleStatus.js」の問題かと思うので別トピックを立てた方がよければそうしますので、とりあえず問題点だけ。戦闘画面のアクターのステート表示を重なりなしで横に4つ並べたいのですが、なぜか最大3つまでしか設定できません。スペース的に4つだときまりよいのですが、幅などを変えてもうまくいきません。もし解決方法が分かればお願いします。

③最後に、よく見かけるトピックの「解決済み」というのは、どうやればよいのでしょうか?単純に編集で書き加えて上書きしているのでしょうか?

以上3点について、お時間あるときで構いませんのでよろしくお願いします。
  • ①について
    すっかり失念していましたが、ステート同士にも表示優先度があります。
    複数のステートがかかっている場合、最も優先度の数字が大きいもののSVモーションが再生されるようになっているのですが、
    Condition に記述する stateX というコードは、このSV モーションが X番になっていることを条件としてみているコードです。
    設定したステートの優先度より毒ステートの方が優先度が高かった場合、
    もしくは、毒ステートと設定したステートの優先度が同じで、毒ステートの方がIDが若い場合、
    毒ステートが優先され、
    毒ステートに設定されている 状態異常( state1 と同じコード内容) のSV モーションになるため、
    一致する状態モーションがありません。
    FTKR_FacialImageDifference2 に、
    状態異常時の顔画像のインデックスを設定する項目(Abnomal Face Index)がありますが、
    この項目を設定してない(0 になっている)のであれば、
    通常時の顔グラフィックが表示されるはずです。

    該当ステートの優先度を他のステートより高くしておくことで、この現象は、回避できるかと思います。
  • ②について
    アクターを4人並べて表示する場合、
    どうしても、アイコンを4つ並べるだけのスペースが足りないと判断されてしまうようです。
    どうしても、4つ並べたい場合は、プラグインを編集する必要がありますが、
    どうしますか?
  • ③について
    はい、その通りです。
    編集をして、タイトルに 解決済み と追加してください。
なっぱ
記事: 80
登録日時: 2015年11月19日(木) 20:19

Re: フトコロ様プラグイン「FTKR_ExSvMotion.js」について

投稿記事 by なっぱ »

ecf5DTTzl6h6lJj02様、いつもありがとうございます。

②の件について、もし可能でありましたら4つ並べたいです。(5つ以上は切替え表示で問題ありません)
よろしくお願いします。
ecf5DTTzl6h6lJj02
記事: 752
登録日時: 2018年12月23日(日) 13:55

Re: フトコロ様プラグイン「FTKR_ExSvMotion.js」について

投稿記事 by ecf5DTTzl6h6lJj02 »

なっぱ さんが書きました:ecf5DTTzl6h6lJj02様、いつもありがとうございます。

②の件について、もし可能でありましたら4つ並べたいです。(5つ以上は切替え表示で問題ありません)
よろしくお願いします。
FTKR_CustomSipmleActorStatus の ステート設定というセクションの設定項目に、
Enable Auto Scale というのがあって、
これを 1 に設定していると、表示幅に合わせてアイコンのサイズを調整する機能があるんですが、
アクター4人を表示する際の表示幅だと、サイズ調整してくれずに、結局アイコンが 3つまでしか表示できない状態になります。
ここをいじって、アイコンを4つ表示させられるようにサイズ調整するよう、
プラグインに編集をかけます。

JavaScript が編集できるソフトを使って、
FTKR_CustomSimpleActorStatus.js ファイルを開き、以下の編集を行ってください。
編集を行う前に、必ず、ファイルのバックアップをしてください。
  1. 3136 行目あたりから、Window_Base.prototype.iconScale というメソッドが始まっているので、
    その内容を以下に変更する。

    コード: 全て選択

        Window_Base.prototype.iconScale = function(width) {
            var iconPadding = FTKR.CSS.cssStatus.state.iconPadding;
            var iw = Window_Base._iconWidth;
            var len = Math.min(this.lineHeight(), width / 4);
            return Math.min(Math.max(len - iconPadding, 0) / iw);
        };
    
あとは、前述の通り、Enable Auto Scale の機能で、サイズを調整するので、
この項目を 1 に設定してください。

恐らく、これで、戦闘中のステータスウィンドウにステートのアイコを4つまで表示できると思います。

以上、ご確認お願いします。
なっぱ
記事: 80
登録日時: 2015年11月19日(木) 20:19

Re: フトコロ様プラグイン「FTKR_ExSvMotion.js」について

投稿記事 by なっぱ »

ecf5DTTzl6h6lJj02様、いつもありがとうございます。

ご連絡が遅くなってしまい申し訳ありませんでした。無事ステートが4つ表示できるようになりました。
大変助かりました。

以上でこちらのトピックは解決済みとさせていただきます。ありがとうございました。
返信する

“MV:質問”に戻る