タイムラグって何?回避できるの?
FCに関わるアレコレ vol.4 タイムラグって何?回避できるの?
前回は、ちゃんと秒数計算したのに着替えに失敗している可能性を示しました。
今回はその原因と対策を考えましょう。
まず原因ですが
「FF11のサーバーとのやり取りは1秒間に3回しか行われていないから」となります。言い方を変えれば、0.3333秒に1回しかサーバーと通信していないという事になります。
それがどう関係するかと言うと、タイミング良くサーバーと通信した瞬間でなければ「着替えボタンを押した」というクライアント側(自分のPC)から送信が完了していないという事です。
そりゃタイミング良く押せていれば問題なく着替えが反映されてますが、そんなタイミングは我々人類にはわかりませんw
サーバーとの通信が終わってしまった直後に着替えボタンを押した可能性だってあるわけです。
つまり、「着替えたという結果」が反映されていないと「着替えてないで着弾」という事になってしまうのです。
じゃあどうすればいいかはわかりますね。
そうです。0.34秒余分に時間を確保すればいいのです。
(例1)
/equipset 〇〇 echo FC装備
/ma 〇〇 <stnpc> <wait 1>
/equipset 〇〇 echo 魔命装備
上記のようなマクロでは、FCによる詠唱時間を1秒以上確保するのではなく、1.34秒以上確保すれば良いのです。
つまり
「詠唱時間が1.3333秒以上あれば上記マクロ形式は成立するはず」
となります。
そこで検証をしてみました。
6秒魔法をFC77%装備で詠唱時間1.38秒にする→FC着弾発生せず
4秒魔法をFC66%装備で詠唱時間1.36秒にする→FC着弾発生せず
3秒魔法をFFC55%装備で詠唱時間1.35秒にする→FC着弾稀に発生
詠唱時間1.35秒~1.36秒の途中に調整する事は現状のFF11の魔法ではできませんので
この1.35秒を分水嶺として考えて良さそうです。
何故1.3333秒ではなく1.35秒になったのかは確実な話としては言えません。
以下はオラなりの勝手な解釈です。
1.35秒=1.3333秒+0.06666秒である。
0.06666秒とは1/60秒の事である。
1/60秒=ゲーム中に1フレームと呼ばれるコマの単位である。
よって、着替えマクロ若しくは着弾マクロが反映するには+1フレームの処理時間が必要なのではないかという推測。
それでは結論!
「詠唱時間が1.36秒以上あれば上記マクロ形式は成立する」
です!
では、後は何がわかれば良いのでしょうか。
①使う魔法の基本詠唱時間
②その魔法の詠唱時間を1.36秒以上にするのに必要なFC係数
の二つですね。
これで、その魔法の必要なFC係数がすぐわかるかな。
例えば、青魔法範囲精霊系(エントゥームとか)なら基本詠唱時間が6秒だから、詠唱時間を1.36秒以上にするにはFC77%にすればいい。
個人環境によってラグが発生しやすい人もいるでしょうから、リスクヘッジの意味も込めて数値をちょっと安全側に考えても良いかもしれないですね。
以上で
【テーマ】
・ストレスなく
・最短詠唱で
・最大効果を
行うための魔法マクロの作り方終了です。
どえらいラグが発生(ダイバーとかありがち)していない限り理論上は大丈夫じゃないかなーと思ってます。
以上!FCに関するアレコレ終了です!