ページ 11

【解決済み】防具と武器を連動させて、防具を変更すると対応した武器を装備させたい

Posted: 2021年10月10日(日) 23:32
by ひふみ
いつもお世話になっております。

題名の件で皆様の知恵をお借りしたいです。

現在制作中のゲームで、防具ひとつひとつに「スキルタイプ追加」を設定して防具によって異なる戦法を取ることができるシステムを作っています。
鎧を装備すると「剣術スキル」が、マントを装備すると「魔法スキル」が使えるようになる、といった具合です。

それ自体は上手くいっているのですが、通常攻撃時に発生するアニメーションが武器依存になっているため鎧だろうがマントだろうが同じような攻撃アニメーションになってしまうことに気づきました。

せっかく防具によってスキルが変わる仕様にしているので、防具に対応させて攻撃アニメーションを変えたいと考えています(そもそもストーリーの都合で武器の変更をしないということもあります)。
鎧のときは斬撃、マントのときは炎、のような感じです。

最初は防具に攻撃アニメーションを追加する方法を考えましたが難しそうなので、以下の対処を考えました。
・各防具に対応した同名の武器を制作しそれぞれに異なるアニメーションを設定。
・「スイッチがONになった際、現在の装備防具を参照して対応する武器を装備する」コモンイベントを作成。
・トリアコンタン様の装備変更時の変数操作プラグインを用いて、各防具に「装備した際にスイッチをONにする」設定を行う。

これにより、防具を変更した際にスイッチを押してコモンイベントを呼び出し、武器の変更を行う事自体はできるようになりました。

ここからが問題なのですが、
・なにも防具を装備していない状態にしたとき、直前まで装備していた防具に対応した武器が装備されたままになる(装備時にスイッチをONにするため、装備を外した際になにかの処理をできないからかと思います)。
・装備変更画面では武器の変更が起こらず、メニュー画面を終了しマップに戻った時点でようやくコモンイベントが実行される(武器の連動がわかりにくい)。
ということが起きてしまいました。

武器が装備されたまま問題に対しては「装備を外した際にスイッチをONにする」ように設定すればなにも装備していない状態=武器装備をなしにする処理を噛ませられるかと思いましたが、鎧→マントにした際にコモンイベントを呼び出すことができませんでした。

理想の処理としては、鎧→マントを行った瞬間に武器も鎧用武器→マント用武器に変更され、鎧を外し裸状態になった際は武器も同時に裸状態(または、防具なし用の武器)に変更される、といった感じです。

長々の説明となってしまい申し訳ありません。究極的には防具と攻撃アニメーションを連動させられればいいのですが、なにか方法はありそうでしょうか。

Re: 防具と武器を連動させて、防具を変更すると対応した武器を装備させたい

Posted: 2021年10月11日(月) 13:44
by 萎びれた猫
こんにちは!


「・なにも防具を装備していない状態にしたとき、直前まで装備していた防具に対応した武器が装備されたままになる(装備時にスイッチをONにするため、装備を外した際になにかの処理をできないからかと思います)。」


こちらはお使いになられている装備変更時の変数操作プラグインの機能を応用すれば可能かと思われます。
<TOESスイッチ設定値:OFF>という装備を外した際にスイッチをオンにする機能がありますので、こちらを件の装備に対して

<TOESスイッチ設定値:ON>
<TOESスイッチ対象:*>
<TOESスイッチ設定値2:OFF>
<TOESスイッチ対象2:*>                    *=任意のスイッチ番号

のような書き方をして後はコモンイベント内で条件分岐により望まれていらっしゃる処理にすればよろしいかと思います。



「・装備変更画面では武器の変更が起こらず、メニュー画面を終了しマップに戻った時点でようやくコモンイベントが実行される(武器の連動がわかりにくい)。
ということが起きてしまいました。」


こちらに関しては同氏(トリアコンタン様)が公開されていらっしゃる「メニュー内コモンイベントプラグイン(メニュー内でコモンイベントが並列処理できるプラグインです)」を使えばいけると思ったのですが
試したところ、装備画面時のコモンイベントで処理した装備変更は装備画面で直接反映させることはできませんでした(最低でも装備画面から一度メニューに戻る必要があります)。

そこで考えたのですが、装備着脱時の処理として一度スクリプトで装備画面を呼び出し、
呼び出した装備画面を同じくスクリプトですぐに閉じることによって疑似的な画面の更新を行えるのでは、と思い実行したところ一応それらしい挙動にすることができました。

ただ欠点としては読み込み直した画面になるのでカーソルの位置が初期化されてしまうことですね、少し違和感があるかもしれないです。


口頭だと分かりにくい点が多々あったかと思うので下記にサンプル置いておきます、ご参考ください(アップロード期間が設けられているのでご参考になされる場合はお早めに確認をお願いします)。
https://31.gigafile.nu/1018-m43925503b7 ... 7c9096e617


また、新しく追加したプラグインはこちらになります。

メニュー内コモンイベントプラグイン(トリアコンタン様)
https://triacontane.blogspot.com/2017/11/blog-post.html


追記:
すみません。
サンプルデータ内の処理に不備があったので上げなおします。

こちらをご参考ください。
https://22.gigafile.nu/1018-n71f03e22a2 ... 83ef7febb2

Re: 防具と武器を連動させて、防具を変更すると対応した武器を装備させたい

Posted: 2021年10月11日(月) 14:06
by 奈々(なな)
こんにちは。

「防具」というのが何を指すかにもよりますが、書いてあることを読み解く感じでは
攻撃アニメーションを変えたい「鎧」や「マント」というのは全て同じスロットですよね。
そして武器は、あくまでストーリー上の演出のために名称を固定したいとのこと。

でしたら武器を防具にして、防具を武器にすればどうでしょうか。
用語で武器、防具という名称を逆にして、データベースの武器のところに鎧やマントを作れば
攻撃アニメーションを直接指定できますし、その他スキルの属性なども対応させられます。

その上で装備スロットのプラグインで並び順を変えれば違和感もないと思います。
https://plugin.fungamemake.com/archives/2364

1つの提案としてご参考までに。

Re: 防具と武器を連動させて、防具を変更すると対応した武器を装備させたい

Posted: 2021年10月11日(月) 15:39
by 冷やっこ
ひふみ さんが書きました:いつもお世話になっております。

題名の件で皆様の知恵をお借りしたいです。

現在制作中のゲームで、防具ひとつひとつに「スキルタイプ追加」を設定して防具によって異なる戦法を取ることができるシステムを作っています。
鎧を装備すると「剣術スキル」が、マントを装備すると「魔法スキル」が使えるようになる、といった具合です。

それ自体は上手くいっているのですが、通常攻撃時に発生するアニメーションが武器依存になっているため鎧だろうがマントだろうが同じような攻撃アニメーションになってしまうことに気づきました。

せっかく防具によってスキルが変わる仕様にしているので、防具に対応させて攻撃アニメーションを変えたいと考えています(そもそもストーリーの都合で武器の変更をしないということもあります)。
鎧のときは斬撃、マントのときは炎、のような感じです。

最初は防具に攻撃アニメーションを追加する方法を考えましたが難しそうなので、以下の対処を考えました。
・各防具に対応した同名の武器を制作しそれぞれに異なるアニメーションを設定。
・「スイッチがONになった際、現在の装備防具を参照して対応する武器を装備する」コモンイベントを作成。
・トリアコンタン様の装備変更時の変数操作プラグインを用いて、各防具に「装備した際にスイッチをONにする」設定を行う。

これにより、防具を変更した際にスイッチを押してコモンイベントを呼び出し、武器の変更を行う事自体はできるようになりました。

ここからが問題なのですが、
・なにも防具を装備していない状態にしたとき、直前まで装備していた防具に対応した武器が装備されたままになる(装備時にスイッチをONにするため、装備を外した際になにかの処理をできないからかと思います)。
・装備変更画面では武器の変更が起こらず、メニュー画面を終了しマップに戻った時点でようやくコモンイベントが実行される(武器の連動がわかりにくい)。
ということが起きてしまいました。

武器が装備されたまま問題に対しては「装備を外した際にスイッチをONにする」ように設定すればなにも装備していない状態=武器装備をなしにする処理を噛ませられるかと思いましたが、鎧→マントにした際にコモンイベントを呼び出すことができませんでした。

理想の処理としては、鎧→マントを行った瞬間に武器も鎧用武器→マント用武器に変更され、鎧を外し裸状態になった際は武器も同時に裸状態(または、防具なし用の武器)に変更される、といった感じです。

長々の説明となってしまい申し訳ありません。究極的には防具と攻撃アニメーションを連動させられればいいのですが、なにか方法はありそうでしょうか。


こんにちは!
究極的には防具と攻撃アニメーションを連動させられればいいのですが、なにか方法はありそうでしょうか。
究極的には専用プラグインを作るのが多分1番だとは思うのですが私にはそのような力もありませんので
公開されている既存のプラグインを使用してなんとか簡単に?できる方法を考えてみました。

まずはアツマールにアップしたサンプルです。
https://game.nicovideo.jp/atsumaru/game ... ff3ce4c56e
アクター1のハロルドが服の装備を変更する事で通常攻撃のアニメが変更されます。
もしこの様な内容でよろしければ以下に具体的な方法をお伝えしますのでご参考になれば。


使用するプラグインは
トリアコンタン様作「動的データベース構築プラグイン(DynamicDatabase.js)」
https://triacontane.blogspot.com/2016/0 ... cript.html
まっつUP様作「装備の空きに専用装備をセットするプラグイン(EmptyconditionEquip.js)」
viewtopic.php?t=7223#p26277
以上の2点を使用しますので導入して下さい。



防具(服)の設定
111.png
画像のように炎、氷、雷の服を追加してそのメモ欄に<animeID:X>と記述します。
Xの箇所がその防具で表示したいアニメーションのIDになります。
画像ですと炎の服は<animeID:8>でデフォルトなら「斬撃/炎」のアニメが表示されます。
ちなみに氷と雷の服は以下の様になっています。

コード: 全て選択

氷の服 <animeID:9>
雷の服 <animeID:10>
また、「-なし-」には

コード: 全て選択

<animeID:1>
と記述していますがこれは後程説明します。



武器の設定
武器の変更は無いとの事なのでここでは専用武器として作っています。
もしこれが誰もが同じ武器を装備できる…となるとまた1から考えないといけないのですが…。
222.png
アクター1専用武器のメモ欄に下記を記述して下さい。

コード: 全て選択

<DDアニメーション:$gameActors.actor(1).equips()[3].meta['animeID']>
これはトリアコンタン様の動的データベース構築プラグインで装備中の防具によって動的に
攻撃アニメーションを変更しています。
gameActors.actor(1)…数値の(1)がアクター1を表しているのでアクター2以降を使用する場合は
数値を変更して下さい。
equips()[3]…数値の[3]は装備の場所で、武器が0、盾が1、頭が2で「身体が3」になります。
この場合は「アクター1の「身体」に装備しているメモ欄のanimeIDの数値を取得して
攻撃アニメーションを動的に変更します。



アクターの設定
333.png
アクター1のメモ欄に

コード: 全て選択

<EEece:5,1,1,10>
上記の記述があると思いますがこれはまっつUP様のプラグインの説明を見てもらえばわかると思いますが
例えば服の装備を外して無装備の時、このプラグインがないとトリアコンタン様の動的プラグインで
アニメIDを取得する時に無装備ですと取得する装備もメモ欄も数値もないのでエラーになっていまいます。
そこでまっつUP様のこのプラグインを導入して無装備の時は無装備専用の装備を自動でセットするように
あらかじめ設定しておきます。
上の武器や防具の画像で「-なし-」という名称の装備品があったと思いますが
それが無装備専用の装備品です。
ここでは無装備の時に防具ID10番の防具を自動的に装備するように設定しています。
「-なし-」の防具はただメモ欄だけ使用・取得できればよいので能力数値などは0でOKですし
名称の「-なし-」というのも空欄でもOKです、今は解りやすいように名前を入れてるだけですので。
そして防具ID10番の「-なし-」のメモ欄には

コード: 全て選択

<animeID:1>
と記述しておいて身体が無装備の時はアニメID1の「打撃/物理」が表示されるように設定します。

以上ですがご参考になれば。

Re: 防具と武器を連動させて、防具を変更すると対応した武器を装備させたい

Posted: 2021年10月12日(火) 01:02
by ひふみ
冷やっこ様、ありがとうございます!
教えていただいたやり方で実装してみたところ、考えていた理想的な処理ができました!
無装備時の名前は空欄で使ってみようと思います。

こちらのスレッドは解決済みにさせていただきます。本当にありがとうございました!

Re: 防具と武器を連動させて、防具を変更すると対応した武器を装備させたい

Posted: 2021年10月12日(火) 01:05
by ひふみ
奈々様、武器と防具の名前自体を入れ替えてしまうことは全く思いつきませんでした!
今回は別の方法で実装を行おうと思いますが、奈々様のご提案は他の処理にも使えそうかと思いますので参考にさせていただきます。
ありがとうございました!

Re: 防具と武器を連動させて、防具を変更すると対応した武器を装備させたい

Posted: 2021年10月12日(火) 01:13
by ひふみ
萎びれた猫様、丁寧に教えていただきありがとうございます!
プラグインの使い方も大変参考になりました。特に、装備変更時の変数操作プラグインの使い方とメニュー内コモンイベントプラグインは他の処理にも役立ちそうかと思います。

今回は冷やっこ様の教えてくださった方法で実装しようと思いますが、萎びれた猫様の教えてくださった内容は他の様々な演出に使えそうかと思います。今回は本当にありがとうございました!

Re: 【解決済み】防具と武器を連動させて、防具を変更すると対応した武器を装備させたい

Posted: 2021年10月12日(火) 12:27
by 冷やっこ
解決されて何よりです!

あと1つ追記ですが、武器・防具のメモ欄で使用している

コード: 全て選択

<animeID:X>
このanimeIDの文字列ですが、今後もし別なプラグインを導入した時に万が一そのプラグインが
同名の文字列を使用していたりすると不具合を起こすと思いますのでその場合は
animeIDという箇所をご自身で変更しても構いません。
ただし変更する場合は該当するanimeIDという箇所を全て変更して下さい。

例えば全てを以下の様に変更しても動きます。

コード: 全て選択

<aaaaa:8>
<DDアニメーション:$gameActors.actor(1).equips()[3].meta['aaaaa']>
それでは。