みなさん、こんにちは。まふゆです。
昨日に引き続き、バトルをあまり得意としない私が、バトル時の移動に関して書いてみます。
何度も言いますが、ゆるふわ勢ですので、ここは書籍の力を借りたいと思います。
人気ブログランキング
通常移動と移動干渉
ドラゴンクエスト10のバトルの特徴は「壁」だというのは、昨日の記事でも書いたとおりですね。
この「壁」を実現するために、色々と試行錯誤があったようで、現在のバトルでは、通常の移動と壁成立時の移動の2つの処理をうまく使い分けているようです。
通常移動
壁が成立していないときの移動処理は、昨日の記事で書いた「通常移動」と全く同じ仕様です。
はじめに、クライアント(PS4やスイッチ、PCなどプレイヤーが使用している機器)で移動の処理・描写を行った後に、その結果をサーバ(運営の機器)に送信しています。
サーバでは、集まった移動に関するデータを計算し、他のプレイヤーのクライアントに送信することで、他のプレイヤーの画面でも動いているように見えます。



この方法は、処理の負荷が少ないのですが、画面上の位置とサーバの位置(他のクライアントから見た位置も)ずれているので、当たらないと思っていた攻撃が当たったりするデメリットがあります。
移動干渉
壁が成立した際には、移動干渉モードに変更されます。
通常移動とは異なり、壁が成立している間は、敵モンスターと自分との重さの関係等で移動速度や移動の方向が変わってきます。
それらの処理を1つのクライアント側で処理してしまうと、情報が送信されるたびに、敵モンスターの位置が変わってしまいます。
他のプレイヤーも壁に入ったりすると、そこでも整合性を取らないといけなくなるので、通常移動の仕様では壁を実現することができません。



そこで、壁成立時には、クライアント側で処理を行わずに、サーバで処理をした結果を、クライアントに返すことで、整合性を保つという処理を行っています。
一度離れると壁が抜けちゃう
さて…敵モンスターに接触したら移動干渉モードになるということは、逆に離れると通常移動モードに変更されるということですね。
ここに、少しむずかしい部分があるんですね…。
スコルパイドで壁をしている時、「動くと壁抜ける!」と言われて、良くわからないとこがありましたが、これらの理屈がわかれば、なんとなく分かりそうですね。







3.0秒の部分で、クライアントの処理とサーバの処理をかけ合わせると、既に通り過ぎている関係ができていることで、通常移動に戻り、壁がスルッと抜けてしまうと…
おそらくこういうことではないかと思います。
一度離れたら、1秒程度待ってから壁に入り直すと、抜けられずに済むかもしれませんね!
人気ブログランキング
コメント
すり抜けも怖いですが、たまにラグでボスがワープしますね ( ゚Д゚)
え、それ何かの技!?ってなる
パラディンガード!!まふゆさん、ここは私に任せて、先に (/・ω・)/
躊躇なく、ダッシュして先に行くまふゆさんを見届けながら…。
「まるで迷いがない ( ゚Д゚)」 そんなまふゆさんが好きです。