ページ 12

解決済【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 17:29
by TEN
こんにちは。お世話になっております。
マップ上にてアニメーションを表示したいのですが、アニメーションを並列処理で実行するとそのイベントに対して決定ボタンも何も押せなくなってしまいます。
少し説明が難しいので下記にしたいことを書きます。

――――――――――
■トリガー並列処理
 アニメーションの表示
条件分岐:決定ボタンを押したとき
 アイテム1入手
 お金入手
分岐終了
――――――――――

こういうふうにしたいのですが、可能でしょうか?
アニメーションは宝箱のようなアニメーションです。
並列処理でアニメーションを常に表示しておきながら、そのイベントに対して決定ボタンを押すとアイテム等を入手できるというイベントを作りたいのです。

しかし条件分岐に「決定ボタンを押したとき」を条件にすると、並列処理にしているがためにイベントに対して決定ボタンを押さなくても、どこの位置で決定ボタンを押しても実行されてしまいます……

何かいい方法はないでしょうか? ご助力願いたいです。よろしくお願いいたします。

Re: 【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 18:34
by WTR
ここでいうアニメーションがどういうものなのかまだはっきりわからないんですが
並列処理は条件が満たされている限り毎フレーム繰り返される処理です。

60フレームかけてアニメーションするような一連のスプライトがあるとしても
アニメーションが最後まで実行される前に、もう一度最初からアニメーションが実行されることになるのでは?
並列処理だとそもそもアニメーションにならない気がします。

>並列処理にしているがためにイベントに対して決定ボタンを押さなくても、どこの位置で決定ボタンを押しても実行されてしまいます……

これもちょっとわからないです。
並列処理であってもなくても、条件分岐は条件分岐です。
決定ボタンが押されていなければ処理は実行されないはずです。

もしかして、、と思うのは
実はイベントコマンドの条件分岐では『決定ボタンを押した瞬間』を条件にすることができません。
『決定ボタンが押されている間ずっと』になってしまいます。

微妙な日本語の違いで何が何だかと思うかもしれませんが
一旦押されたボタンが離される前、という状況にも反応してしまう、ということです。

新たにボタンが押された、まさにその瞬間を条件にするためにはスクリプトが必要で
条件分岐のスクリプトに Input.isTriggered('ok')
と書けばできます。
これで動作が変わるでしょうか?

Re: 【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 18:52
by WTR
なんか勘違いした気がします。。

タイミングじゃなくて、位置が問題なんですね。
マップ上のどこで決定ボタンを押しても条件分岐してしまう、っていう。
無理やりですけど、プレイヤーの位置と向きも条件にしてしまえば出来なくはないような。

あとは
アニメーションを表示する並列処理イベントを別にしてしまうとか?
普通の宝箱イベントのグラフィックをなしで設置しておいて
別の並列処理イベントで透明宝箱の上にアニメーションを表示する、みたいな。

Re: 【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 18:53
by tubo
全アイテムイベントのアニメーションを管理する並列処理イベントを作るのはどうですか?

Re: 【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 20:10
by TEN
お返事ありがとうございます。
説明力がなく、上手く伝えられなくて申し訳ありません。

添付画像のアニメーションを使用したいのですが、マップに点々とある宝箱のアニメーションなのですが、一つのマップに5つ宝箱を置くとして、

〇 〇 〇
 〇
   〇

上記は宝箱の位置です。こういうふうに宝箱を数個置くとしたら、アニメーションを置く並列処理のイベントを別につくり、イベント一つで管理するというのは難しいですよね?
そして、アニメーションを表示しつつ、プライヤーが宝箱を調べるとアイテムを入手できるというふうにしたいのです。
一度調べたらアニメーションが消えるもしくは停止するような感じにしたいのです。

トリガーを並列処理+決定ボタンなんてことはできないので、困っています。
決定ボタンにすればイベント内容のアニメーションが表示されないし、並列処理にすれば、イベント内容をどう組めばいいのかわからないのです……
宝箱(アニメーションを表示しているイベント)をプレイヤーが調べたときに、アイテムを入手できるようにするには、どういったイベントの組み方をすればいいのでしょうか?
もしくは、そういったプラグインなどはあるのでしょうか?

Re: 【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 20:24
by TEN
画像を添付していませんでした……
こちらが使用したいアニメーションです。

Re: 【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 20:43
by TEN
何度も申し訳ありません。
プレイヤーの位置を取得してテストしてみたのですが、決定ボタンを押しているときが、やはりずっと押しているときらしく、スクリプトに変えてみたのですが、上手く機能しません。

取り敢えず条件を決定ボタンを押しているとき+位置でやってみたスクショを載せます。
添付の一枚目がイベント内容
添付の二枚目がアニメーションを表示したテスト画像
添付の三枚目が決定ボタンを押したとき(押しているとき)の動作
になります。

これだと決定ボタンを押したときに、アニメーションが一時画面から消えてしまうようです。(おそらくアニメーションを並列で実行しているためだと思いますが)
あとは、決定ボタンを「押しているとき」ではなく、「押したとき」にしたいのですが、教えていただいたスクリプトが上手く動作しないようです。
実際に条件分岐の「決定ボタンを押したとき」のところをスクリプトにしてテストしてみたのですが、なにも起こりませんでした。
何か間違っているのでしょうか?

あと、並列処理でアニメーションを表示しても、途切れないようにアニメーションをループさせるみたいなことができればいいのですが、やり方&プラグインなどをご存知でしたら教えていただきたいです。

長くなり、申し訳ありませんがよろしくお願いいたします。

Re: 【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 22:00
by tubo
宝箱のセルフスイッチを調べるにはスクリプトで条件分岐するしかなさそうですね

コード: 全て選択

$gameSelfSwitches.value([$gameMap.mapId(),16,'A']) !== true

これを条件にすれば宝箱が空いているか判定できます
16の所は宝箱のイベントIDです

Re: 【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 22:22
by WTR
試しもせずに適当なことを書いてしまいました。すみません。

Input.isTriggered('ok') で条件分岐できないのは、おそらくアニメーションのウェイトのせいです。
ウェイト中はボタン入力を受け付けません。

やっぱりアニメーションの表示をする並列イベントと
アイテム入手するイベントを分けないとダメな気がしてきたんですが
アニメーションの表示ってマップの座標指定できないんですね。。

Re: 【質問】マップ上でアニメーションを表示しながら、決定ボタンでアイテム入手できる方法について

Posted: 2018年10月03日(水) 22:30
by TEN
そうなんですよね……
アニメーションの表示をするときに、イベントをマップ位置指定できないので、どうすればいいんでしょうか?
どなたか解決法がわかる方いましたらご助力お願いいたします。