解決済み シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

Sibu
記事: 10
登録日時: 2016年6月16日(木) 05:00

解決済み シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by Sibu »

RPGでシンボルエンカウントで後ろからぶつかった場合は戦闘無しで自動で倒して経験値が入るシステムを導入したいと思っています。

シンボルエンカウントの方向判定はどの用に記述すればよいのでしょうか?
スレッドを見たのですが理解が出来ず…プラグインも見つからず。
viewtopic.php?t=13031

自分で考えて分からなかったのは
・移動する敵のイベントを作り、トリガーは自分から接触
・接触した際のイベントで 最初に自分のイベントと敵のイベントの位置の変数を取得。上のスレッドによると取得できるらしいが、正直良くわからずうまく取得できませんでした。←ここで詰まる
・取得した変数の背後を取ったときのパターンをIF文で背後の時だけ戦闘無しで敵イベント削除+経験値取得処  理。それ以外の場合は戦闘の処理を入れる。

どなたか例文付きで教えて頂けると助かります。申し訳ないです。
最後に編集したユーザー Sibu [ 2023年12月17日(日) 16:07 ], 累計 1 回
アバター
DoujinRuis
記事: 166
登録日時: 2022年10月25日(火) 10:59

Re: シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by DoujinRuis »

過去動画でよければこんなのはどうでしょうか?

プラグインを使う方法(簡単な方法)
https://www.youtube.com/watch?v=74qsFlH3lRQ&t=48s
プラグインコモンベースはRPGツクールMZのインストールフォルダにあります

プラグインを使わない方法(中級者向け)
https://www.youtube.com/watch?v=dK-eVLLtHKA&t=297s
少し面倒かもしれません
ゲーム制作情報共有ディスコード
discord.com/invite/dzUAC3CSMH

普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
Sibu
記事: 10
登録日時: 2016年6月16日(木) 05:00

Re: シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by Sibu »

動画ありがとうございます。素晴らしいですね。動画を参考に実装してみたのですが上手くいかない部分があります。

実装したいもの 後ろから当たった際に敵のイベントを斬撃アニメーションを表示して消去する
困っていること
・イベント側から接触された際もバックアタック判定になってしまう。(向きで判定しているので)
・アニメーションが上手く表示されない

1アニメーションの表示 このイベント
2イベントの一時消去
の順番だとアニメーションが表示されないです。なのでウェイトを付けてみると待ち時間が長く、
1アニメーションの表示 このイベント
2文章の表示
3イベントの一時消去
とするとぶつかっている時に決定キーなどを連打するとエラー(Cannot read property"transform"of null)
が起きてオチてしまいます。

一番いいのはウェイトを付けてみることだと思うのですが、
少し長いのでアニメーションの時間を調整できればいいと思うのですがわかりませんでした。
データベースのフラッシュのフレームを短くしただけでは待機時間が変わらず、どういった判定をしているのかわかりません。(効果音の時間も見ている?)

分かる方、お知恵をお貸し頂けると幸いです。
アバター
くろうど
記事: 318
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡する:

Re: シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by くろうど »

シンボルエンカウントの方向判定はどの用に記述すればよいのでしょうか?
スレッドを見たのですが理解が出来ず…プラグインも見つからず。
リンク先に見覚えあるなぁ……と思いましたので、
該当プラグインの紹介だけしておきます。

このアクションRPGプラグインですが、
衝突時に「戦闘の処理」コマンドを実行すればバトルシーンになりますので、
シンボルエンカウントでも使えます。

↓GitHubのリードミー該当箇所↓
https://github.com/kuroudo119/RPGMZ-Plu ... 3%83%B3rpg

↓GitHubの同ページTOP↓
https://github.com/kuroudo119/RPGMZ-Plugin
実装したいもの 後ろから当たった際に敵のイベントを斬撃アニメーションを表示して消去する
上記プラグインで出来るとは思いますが、
非常に難しいプラグインなので紹介だけに留めておきます。

よろしくお願いします。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
アバター
DoujinRuis
記事: 166
登録日時: 2022年10月25日(火) 10:59

Re: シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by DoujinRuis »

ゲーム制作情報共有ディスコード
discord.com/invite/dzUAC3CSMH

普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
Sibu
記事: 10
登録日時: 2016年6月16日(木) 05:00

Re: シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by Sibu »

検証ありがとうございます。大変助かります。初心者で中々的を得ない投稿になり申し訳ないです。
まず現状出来ていることが
1️⃣ トリアコンタンさんのプラグインを使って画像1枚目のようにして、コモンイベントバックアタックにバックアタック判定を取得
です。
1.JPG
でトリアコンタン様のTemplateEvent.js[テンプレートイベントプラグイン]を使って、ダンジョンにモンスターを配置して行きたいと思っていまして。
31313.JPG
ダンジョンにこういった形で配置していきます
doukutu.JPG
で問題だったのがアニメーションにウェイトなしで決定キーを連打したりすると複数回アニメーションが表示されたり、敵が居た空間に進むとエラーになったりしたのでウェイトなしは諦めました。上記の記述だとエラーになりませんでした。

まだ解決してないのは敵からぶつかってきた時もバックアタック判定になってしまうことですかね。ゲームプレイ上では殆ど無いかもしれませんが、後ろを取られたのに倒してしまうのが違和感があります。すみません動画上で説明いただいているかもしれませんが理解が上手く出来てないかもしれません。
添付ファイル
template.JPG
アバター
DoujinRuis
記事: 166
登録日時: 2022年10月25日(火) 10:59

Re: シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by DoujinRuis »

この後、予定有りますので、明日対応しますね
ゲーム制作情報共有ディスコード
discord.com/invite/dzUAC3CSMH

普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
chro
記事: 106
登録日時: 2021年2月14日(日) 11:26

Re: シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by chro »

こんばんは。

向きに関しては、このように設定してみてください。
バックアタック.png
変数の操作のスクリプト
このイベントの、元々の向きを変数に代入します。

コード: 全て選択

this.character()._prelockDirection
向きの数値は、テンキーのとおり、2下、4左、6右、8上を意味します。


イベントは、話しかけた時のようにプレイヤーの方向を向くという動作をするので、
プレイヤーの方向を向いた状態での向き判定となります。

向き固定の場合のみ、正常に取得出来ます。


TemplateEvent.jsは、一時消去を行うと、イベントそのものが消えてしまうため、
存在しないイベントIDを指定した時と同じく、エラーとなります。

無限ポップアップしない限り、セルフスイッチAをオンにして、別イベントページで画像を非表示にします。


それとレベルアップの表示は、メッセージウィンドウが出現したまま戦闘に突入するなど問題が発生します。
テンポも悪いので、推奨しません。
Sibu
記事: 10
登録日時: 2016年6月16日(木) 05:00

Re: シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by Sibu »

丁寧なご指導ありがとうございます。

すみません、自分の記述が分かりにくかったのですが、向きに関してはトリアコンタン様のプラグイン
EbentNoLockを使っていてイベント時にこちらを向かないようにしているので、敵イベントの向きを変数に入れて参照してしてやるのと同じ挙動と同じ挙動にはなっているのかと思います。

>TemplateEvent.jsは、一時消去を行うと、イベントそのものが消えてしまうため、
存在しないイベントIDを指定した時と同じく、エラーとなります。

そうだったんですね。下記のように実装したら自分の望むようなテンポの良い斬撃後消える挙動が実現できました。
テンプレート
te.JPG
2222222222.JPG
レベルアップを表示には問題があるんですね、ただレベルアップの表示がないと強くなった時に分かりにくいかなと思ったので代替案がないか探してみます。

すみません、2点まだわからない点があるのですが、
・敵から背後に接触してきた時にバックアタックがでてしまう
・セルフスイッチでイベントを見えなくした場合、再度そのマップに入った際にイベントが消えている(敵イベントはMAPに入る時に復活してほしい)
この2点がもし分かれば教えていただきたいです。後者は頑張れば出来そうなので調べてみますが
アバター
DoujinRuis
記事: 166
登録日時: 2022年10月25日(火) 10:59

Re: シンボルエンカウントでの後ろから接触した場合の処理をしたい 方向判定

投稿記事 by DoujinRuis »

確認お願いします

https://www.youtube.com/watch?v=zQimSS97mGw

セルフスイッチ操作用

var eventId = 1; // イベントIDを設定
var mapId = 1; // 現在のマップIDを取得

// セルフスイッチA, B, C, Dをオフにする
['A', 'B', 'C', 'D'].forEach(function(selfSwitch) {
var key = [mapId, eventId, selfSwitch];
$gameSelfSwitches.setValue(key, false);
});
ゲーム制作情報共有ディスコード
discord.com/invite/dzUAC3CSMH

普段Youtubeで同人ゲームの情報を発信しています
https://www.youtube.com/@DoujinRuis/videos
返信する

“MZ:質問”に戻る