CT_bolt Animation Extended や Coolie Individual Anim Dimension といったプラグインを使用しているのですが、攻撃アニメーションが 192x192 のまま変わりません。その結果、スプライトが切り捨てられてしまいます。使い方が分かる方がいたら教えてください。どのような手順を試しても全く反応しません。あるいは、もっと簡単に使えるプラグインがあれば教えていただきたいです。
フフフフフフ………
これがあなたの問題を解決するかどうかは確信が持てませんが、以前に大きなアニメーションセルを使用する必要がなかったためです。ただし、CTB Animation Extendedプラグインを確認しました。このプラグインはセルサイズの変更に対応しているようです。
例えば、アニメーションシートを「400!AnimationName.png」のようにリネームすると、デフォルトの192×192ではなく、セルサイズが400×400になるはずです。拡張版のファイルは、その後 img/animations/extended/ フォルダに配置してください。
ただし、私は実際に試したことがないので、あなたの特定の環境で機能するかどうかは100%確信が持てません。
これらのプラグインはどちらも同じ関数、Sprite_Animation.prototype.updateCellSpriteを上書きするため、両方を有効にしている場合、プラグインリストで下にある方のプラグインだけが実際に機能します。これが問題の全体ではないかと考えています。例えば、CT_Boltのファイル設定は正しいですが、Coolieがその下に配置されているため、Coolieがセルを描画し、アニメーション名に<iad>タグが含まれていないため、192を使用します。どちらかを無効にして、単一の方法に統一することをお勧めします。
CT_Boltを維持する場合、データベースでアニメーションが指すファイル名に!を含める必要があります。例えば400!YourAnimのようにします。まずimg/animations/extended/400!YourAnim.pngを探し、見つからない場合は通常のimg/animations/400!YourAnim.pngにフォールバックします。プレイテスト中にF8を押してコンソールを開くと、拡張ファイルが見つからない場合に「存在しません」という行が出力されるため、名前やフォルダに誤りがある場合にすぐにわかります。
Coolieを維持する場合、タグはファイル名ではなく、データベース内のアニメーション名に記述します。例えばFireiad:400,400,+0,+0のように、スペースは入れません。そのアニメーションの両方のシートは同じセルサイズである必要があり、エディタのプレビューには反映されないため、エディタでは正しく見えず、ゲーム内では正しく表示されます。
両方を使ったわけではありません。うまくいかなかった場合、一つずつ順番に試しました。それでも、どれも機能しませんでした。
現時点で最もうまくいったのは「YED_SideViewBattler」ですが、なぜかインデックスが機能しません?
私が何を変更しても、インデックス0(つまり待機状態)のまま変わりません。今となってはもうどうすればいいかわかりません…
<Sideview Battler Frames: 9>
<Sideview Battler Speed: 20>
<Sideview Battler Size: 646, 677>
<Scale Sprite: 50%>
Name: walk
Index: 1 (<- 何も機能しません???)
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>
そのノートタグについて、2点気になることがあります。
閉じタグ </Sideview Battler Motion> がありますが、Name 行の上に開きタグ <Sideview Battler Motion> がありません。ノートボックス内でこの状態だと、ブロックが全く読み込まれないため、Index が操作する対象を持ちません。各モーションには、開きと閉じのペアが必要です。
より大きな問題は、定義されているモーションが「歩行(walk)」だけに見える点です。戦闘中に待機しているアクターは「歩行」ではなく「待機(wait)」のアニメーションを再生しているため、待機ブロックがないとインデックス 0 にフォールバックします。これはあなたが観察している現象と非常に一致しています。つまり、インデックスに何を設定してもスプライトが 0 行目に留まるのは、「歩行」はアクターがターゲットに向かって歩いた時のみに再生されるからです。なので、まずは待機ブロックを追加することをお勧めします:
<Sideview Battler Motion>
Name: wait
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>
<Sideview Battler Motion>
Name: walk
Index: 1
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>
Index はシート上の行を示し、Size が 646、677 の場合、各行の高さは 677 です。つまり、シートは実際に 1 行目(インデックス 1)を持つのに十分な高さ、つまり 1354 以上である必要があります。もしそれが単一行の画像であれば、インデックス 1 は画像の下端を指しており、描画すべきものがありません。
また、モーションブロックが機能するためには、上部に <Sideview Battler: YourSheetName> が記載されていることも再確認する価値があります。
スプライトシートには複数の行があります。私が使用したのはこちらです
インデックス0を使えば、待機動作は正常に動作します
しかし、インデックス1を使って攻撃アニメーションを表示しようとすると、アニメーションが切り替わりません。どちらにしてもインデックス0の表示のままです…
あ、修正も試しましたよ。
<Sideview Battler: candy>
<Sideview Battler Frames: 9>
<Sideview Battler Speed: 20>
<Sideview Battler Size: 646, 677>
<Sideview Battler Weapon: false>
<Scale Sprite: 50%>
<Sideview Battler Motion>
Name: wait
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>
<Sideview Battler Motion>
Name: walk
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>
<Sideview Battler Motion>
Name: defend (アニメーションのテスト用)
Index: 1 (←それでも何も変わりません)
Loop
Frames: 9
Speed: 20
</Sideview Battler Motion>
ふむ、「Defend」という名前は、MVが求めるモーション名のリストに含まれていないので、そのブロックは再生されず、スプライトが待機状態のままになります。アクターが防御する際、MVは「guard」を要求するので、名前をそれに合わせて変更してください。完全なリストは以下の通りです:walk、wait、chant、guard、damage、evade、thrust、swing、missile、skill、spell、item、escape、victory、dying、abnormal、sleep、dead。通常の攻撃の場合、武器タイプの設定(システム → [SV] 攻撃モーション)に応じて「thrust」「swing」「missile」のいずれかになるので、攻撃用の行は「attack」ではなく、それらのいずれかという名前にする必要があります。
セルサイズについて。フォーラムではそのシートが1920×1341で表示されています。サイズを646、677、フレーム数を9に設定すると、1行の幅は5814必要になり、結果としてフレームの大半が右端を超えてしまいます。1920を9で割ると約213、1341を2行で割ると約670となります。したがって、シートが横9列×縦2行のレイアウトであると仮定するなら、サイズを213、670として設定し、フレームが揃うか試してみてください。
つまり…要するに、個々のスプライト全体を縮小するってこと?
2026-08-17 17-04-59.zip (2.4 MB) ゲーム内の実際の状況を録画しましたが、名前を修正しても機能しません… 絶望的でしょうか、チャットさん? ;-;
スケーリングはしていません。サイズは、シートの各セルの大きさをプラグインに伝えるもので、切り取る位置を把握するために使用されます。そして、ゲーム内での描画サイズを変更するのは「スケールスプライト」だけです。1920ピクセル幅のシートで幅646のセルを使用すると、1行に収まるセルは3つだけになります。つまり、4番目以降のフレームは画像の右側の空白領域を読み込んでしまいます。動画でスプライトが消えてしまうのは、これが原因ではないでしょうか?待機モーションは3フレームしか使用しないため、存在するシートの部分だけを描画しますが、攻撃モーションは9フレームあり、4フレーム目以降は描画すべきものがありません。これが2枚目のスクリーンショットに見える理由です。
そこで、フレーム数は9のまま変更せず、サイズを213×670に設定してみてください。そうすると、スプライトは実際のセルサイズで描画されます。もし描画サイズが思ったより小さくなった場合は、サイズには手をつけず、「スケールスプライト」の値を50%から上げて調整してください。
現在の攻撃モーションブロックを、新しい名前と一緒に貼り付けていただけますか?
<Sideview Battler: candy>
<Sideview Battler Frames: 9>
<Sideview Battler Speed: 20>
<Sideview Battler Size: 646, 677>
<Sideview Battler Weapon: false>
<Scale Sprite: 50%>
<Sideview Battler Motion>
Name: wait
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>
<Sideview Battler Motion>
Name: walk
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>
<Sideview Battler Motion>
Name: guard
Index: 1
Loop
Frames: 9
Speed: 20
</Sideview Battler Motion>
これが新しいものです。
あと、スプライトが消えたというわけではなさそうですか?今現在は、スプライトがインデックス1に切り替わらないという問題があります。
サイズに関する私の発言は無視してください。646、677のままにしておいてください。
インデックス1について、YEDプラグインを読み直したところ、今お困りの現象を説明するルールが見つかりました。MVは、定義されていないモーションのリクエストに対しては「other」という名前のモーションにフォールバックし、さらに「other」が存在しない場合は「walk」にフォールバックします。あなたの「walk」はインデックス0です。つまり、Guardを除くすべてのモーションは、どのような状況でも行0を描画し、Guardは戦闘コマンドメニューで実際にGuardを選択したときのみリクエストされます。もしテストでAttackを選択している場合、MVは武器に応じて「thrust」「swing」「missile」のいずれかを要求しますが、これらはあなたのノットタグに存在せず、結果として「walk」に落ち着きます。
行1に到達可能かどうかを素早く確認するには、他のタグの下に以下の行を追加してください:
<Sideview Battler Motion: other, 1>
これにより、定義されていないものは行0ではなく行1から描画されるようになります。したがって、Attackや被ダメージ、定義されていないすべてのアクションが行 visibly に切り替わるはずです。これで問題が解決するなら、あとは必要なモーション名ごとに正しい行を指定するブロックを追加するだけです。もし「other」を定義した後も行0のままなら、別の原因がある可能性が高いです。その場合、特にYanflyのBattle Engine Coreを含む、他の戦闘関連プラグインが有効になっているかどうかを教えていただけますか? これらのプラグインは独自のモーションを強制する場合があるためです。
確認すべきことが2つあります:
- テストの際、Guardを選択していますか、それともAttackを選択していますか?
- キャンディシートは img/sv_actors フォルダに配置されていますか? プラグインは通常のSVバトラーと同じフォルダからこれを読み込みます。
