Parse, Alarm, Gauge. The must-have tool.

LogRep is a log parser for Final Fantasy XIV. You can compare your parse result with players in all servers (anonymous) on the web. LogRep also has an alarm function which reacts to specific log. You can also easily set an alarm to ring after specific duration.

LogRep の DPS 見直しについて

2014/03/16






DPSを気にする人は、既にDPSについて私より熟知していることでしょう。
記載ミスなどありましたらご指摘くださいね。

ここでは一応、「DPS」ってアタッカーのことでしょ? というレベルの人のために、1つずつゆっくりと話を進めていきます。




DPSは何故「強さ」の指標なのか


ダメージ総計が多い=プレイスキルが高い、という考え方はわかりやすいものの問題がありました。
それは「より長い時間をかけてダラダラ敵にダメージを与えたほうがダメージ総計が大きくなる」ということ。
新生では例えば、ガルーダにわざとHPを回復させて、ダメージを与え続ければ総計において1番を取る事ができるのです。

プレイスキルの高さは、「より早いスピードでより多くダメージを与える」という測り方に変化していきました。
それを表す指標が DPS(Damage per second) です。アタッカーは DPS を出すお仕事なので、いつしかアタッカー自体が「DPS」と呼ばれるようになったんでしょう。

ちなみに FF11 ではゲームのテンポが緩やかだったせいか、DPM(Damage per minute) という海外ではほとんど知られていない指標が使われ、旧FF14 でも DPM を採用しているツールが多かったですね。
LogRep でも当初 DPM と DPS を任意選択制にしていました。(新生で DPM はカットしました)

※ LogRep のスコアは DPS を 100倍したものになっています。




DPSの計算式


計算式自体はとても簡単です。


与えたダメージ量 / ダメージを与えた時間(秒数)


ですが、この「ダメージを与えた時間」には規格がありません。
いつ始まって、いつ終わったか…はログに明記されていないからです。
そのため、ツールによって DPS の数値が異なる / 同じツールでも設定によって DPS を高く(低く)表示させる事が出来てしまう、といった問題は現状どのようなツールも大なり小なり存在します。
(LogRep1.10.01 の場合、そこが(そこだけではありませんが笑)かなりウッキーなので、今回の見直し、というわけです^^ゞ)




木人を殴って理解を深める


ABCは以下の意味で使います。木人を1分殴るとダメージが10000と仮定します。

A:ダメージ総量
B:ダメージを与えた期間(秒)
C:DPS


 テストケース1:3分間木人を殴って、DPSを算出する

A:30000
B:180
C:30000 / 180 = 166.67


テストケース2:3分間木人を殴る。2分間休む。3分間木人を殴る。DPSを算出する

A:60000
B:480
C:60000 / 480 = 125


テストケース1と2では DPS(C) が 42.67 も違う。
DPS という言葉の意味は逸脱していないが、コレジャナイ感。これが LogRep(1.10.01) の算出値です。
グラフで表現するとこのように、問題となる区間(無ダメージ区間)がはっきりします。







どれくらい「無ダメージ区間」はあるのか?


3蛮神が飛び立ち画面から消えたり、イフリートの突進モードやツインタニアの蛇フェーズなど、特定の敵に対する無ダメージ区間は数多く存在します。
タイタン戦を10戦すると DPS が下がるのも、1戦ごとの間に無ダメージ区間が存在するためです。作戦会議などをすると顕著です。

IDではもっとあからさまとなります。ID最初と最後に同じ名前の敵が出た場合、時間(B)は最初から最後になるため、実戦闘がたとえ5分だろうと、DPS 分母が30分となってしまうケースもあるでしょう。

そのため、LogRep1.10.01 で算出される DPS は普段木人を殴っている DPS とはるかにかけ離れた低い値になっているのです。




「無ダメージ区間」を(B)に含めないためには


「無ダメージ区間」を(B)に含めなければテストケース1も2も、ほぼ同じ DPS となるため納得の行く数値が得られます。

ここで問題になるのは「どのように無ダメージ区間を割り出すか」。
ログにはボスが飛び立ったり、プレイヤーが戦闘を終え、移動していることを示すサインがありません。

そこで「(誰かが)最後にダメージを与えているログからn秒経ったらその時間から、次のダメージログの時間まで戦闘していない(無ダメージ区間)とみなす」という手法を取り、この時間を全ての敵毎に集計、DPS算出から除外します。
(「n秒」はこの値がいい、という決まりはありませんので自分で好きな値を設定出来るのもアリですが、この値によってDPSは変動してしまいます。人と比較するならば、この値が同一である必要があります)
LogRep の場合 Web 比較が存在するため、「n秒」は自由設定ではなく固定値になる予定です(おそらく5~10秒)。




「極タイタン討滅戦」における実例





DPS 算出を変更している最中の LogRep1.11.00(製作中)の画面です。
あるプレイヤーが行ったタイタン戦。現行 LogRep1.10.01 とは異なり、BLM の DPS が 233.04 と、木人相手と近い値になっていることがわかります。
この戦闘ログを追うと、1度目はタイタンに破れ、2度目の戦闘を行っていることがわかりました。タイムラインにすると次のようになります。


タイタン 2:50:40 - 2:53:17(+157s:累計157s)
タイタンの心核 2:53:30 - 2:54:31(+62s:核累計62s)
タイタン 2:54:46 - 2:55:36(+50s:累計207s)

タイタン 2:56:33 - 2:59:16(+163s:累計370s)
タイタンの心核 2:59:25 - 3:00:22(+58s:核累計120s)
タイタン 3:00:35 - 3:05:11(+276s:累計646s)


比較として現行 LogRep1.10.01 の時間計も表示しておきます。


タイタン 2:50:40 - 3:05:11(タイタンの最初から最後まで 931s +285s)
タイタンの心核 2:53:30 - 3:00:22(核の最初から最後まで 412s +292s)


最初と最後だけで時間を見積もっているため大幅時間増、結果 DPS はかなり低くなります。
新しい方法(LogRep 1.11.00)では、戦闘の間にたとえ作戦会議があろうと、その間は「無ダメージ区間」となるため、連戦したら DPS が全然低い…といったこともほぼ起こらなくなります。




Total はどうなるの?


1.11.00 では表の単なる合算(1.09.00より前)、あるいはその割り算による平均(1.09.00)ではなく、


集計敵のダメージ計 / 集計敵と戦っている全時間計(無ダメージ区間はカット)


となり、同じパーティメンバー比較でダメージが明らかに高いのに DPS やスコアが低い、ということが起こらなくなります。
ザコを瞬間ひっかけて倒した人がスコアで得をする、というちょっとズルい稼ぎ方はもう一切できなくなるということです:)




以上の策を以て、本来の DPS というものにこだわる方にもご納得の行く内容になることを期待しております。
長くなりましたが、記事の上で「こうすればもっとよくなる」といった改善案をお持ちの方がいらっしゃいましたら、お気軽にご意見くださいね!



8 comments:

ダメ厨 さんのコメント...

内容拝見しました、初めてコメントさせていただきます。
logrep2と海外製の同種のソフトを併用させて頂いています。

うがった見方をしているのかもしれませんが、ご自身でお作りになられたサイトのランキングとの連動に拘り過ぎではないのでしょうか
現在のlogrep2の特殊なDPS算出方法やスコア、これらに懐疑的なユーザーさんが多いのは改定をご決断された作者さんであればよくご存知だと思います。
逆にわたしとして気になるのは手を入れられなかった理由というのが作者さんがお持ちの、logrep2と連動したランキングサイトのせいではないかなという点です、スコアやDPS算出方法を弄ってしまうとそこが破綻してしまいますものね。
また今回の改定予定の中にも無ダメージ区間の時間設定をいじれないとの一文が存在しています、これを弄れない仕様とする理由にもサイトがあげられていますね。
無ダメージ区間には2種類あり、一つはリスタート等に寄る再戦の空白時間、もう一つはフェイズ移行等の時間です。
後者は本来そのコンテンツの仕様であり、フェイズ移行中dotダメージが入るものも存在しますし空白区間そのものも戦闘時間です。
拘る人にあわせて変更という趣旨でありながらなぜ時間の設定が出来ないようにされるのでしょうか?
サイトに拘られるのは作者さんのご自由だと感じます、同時にこの手のソフトでユーザー側が拘る本質的な部分と相反する矛盾をサイト維持の為にいれてしまうと結局修正が活きてこないと感じます。

正直この内容では海外製のソフトに軍配が上がってしまうと感じます。
時間設定は可能にした上でサイトとの連動が可能な方法がユーザーとしては多くの人に受け入れられる方策ではないのかなと感じます。

駄文失礼いたしました。

codescream さんのコメント...

ダメ厨 さん

駄文と自ら言う人ほど、しっかりと考えた文章であることが多いです:D

「拘る」という言葉の重みがダメ厨さんと私で少し違ったかもしれませんね;)
的確な言葉を発するというのは大変難しいものです。
(どういっても揚げ足取ることだけを考えている輩もいますが(笑))

1.11.00 では秒数は固定ですが、設定をつけること自体は簡単ですし、(設定をつけた場合)サイト比較についてはスコアと共に設定秒数も表示する、といった対応もいいかなーと思っています。
ちょっとその前にやっておくべきタスクをこなしてしまおうと思ってますが…。
(毒薬の集計とか、お笑い機能も含め(笑))

ご意見ありがとうございました!

イカ さんのコメント...

換算する時間は誰かが殴った後のn秒、で誰かが殴ったら開始・・・
ではなくて個人個人に設定して欲しかったです。
フェーズごとの切り替わりだけでなく、攻撃できるタイミングが限られている近接のDPSがまたまた不利になってしまいます・・・

codescream さんのコメント...

個人個人に設定した場合、こんな人のDPSが高くなってしまいます。

  1.フルアビリキャまで一発も撃たない
  2.リキャったらフル攻撃を叩き込む
  3.1に戻る

個別にした場合のメリットもなくはないのですが(ジェイル閉じ込め間のDPS減衰緩和など)、安易にするのもまずいでしょうね。

あ、ちなみに「またまた不利に」とありますが、今回の変更を行ったところで以前とDPSの有利不利には一切変化がありません。

えふ さんのコメント...

いつもLogRepありがたく使わせていただいています。

Totalの算出方法の修正と無ダメージ区間の除外については(上からですみませんが)あって然るべき状態になったという感じで非常にありがたいです。
現状の木人以外での数値、とりわけ拘束がある場合は拘束と推測できる項目、例えば"非攻撃時間 n秒 x回"の様な項目が追加されたらどうでしょうか。

DPS計測で最も大事なのは誤差のない計測だと思うので、条件(ここでいう無ダメージ区間)を自動判別するのであれば固定値といえど各コンテンツ毎にリスタートだけを判別できる個別の推奨値が使われるべきだと思います。その分調査調整の手間は増大してしまいますが、データベース比較をするなら仕方のないことかと思います。もちろんユーザー指定による自由な計測はあった方が良いですが。
処理能力による問題が出ないのであれば推奨値とユーザー指定値が両方計測され、分析のページではチェックボックスで切り替え、ランキング比較する際には固定値のデータで登録されるというのがベストかと思います。

もともと木人以外では条件が複雑すぎて単純比較はできないので、ランキングの方に分布グラフを用意し自分が何%ileなのか分かるようなものがライトなrepツール使用者にとって嬉しいと思いますがどうでしょうか。

正確に計測といえばですが・・・話は逸れますが
Dotのクリティカル近似と設置型はいろいろ言われてますがやはり欲しいです。
設置型はメモリを見ないと無理なんでしょうけど。

更に話は逸れますが、難読化等の話が出て話題になっていますのでそちらで信頼を失っては廃れると思います。
広告等はあって気にしませんし当然というスタンスですが、不透明なのは宜しくないかと。

以上です。今後も更新期待しています。

codescream さんのコメント...

えふさん

上からで構いませんよ:)
私はプレイヤーとして、たいした人間ではありませんし(笑)、えふさんはかなり見識の高い方だとお見受けしますので。


>"非攻撃時間 n秒 x回" の様な項目
個人的には表示する項目は必要最低限ですませたいと思っています。
が、より詳しく、より全てを、といった方向に使い手の気持ちが傾きがちなのもわかりますので、もう少し様子を見てから考えたいと思います。


>各コンテンツ毎にリスタートだけを判別できる個別の推奨値が使われるべきだと思います。
これはさすがに、調査すればベストの値が計測できるというわけでもなさそうなので、自由設定・サイトではその自由設定した値を表記、が望ましいと思っています。
そうすることで、スコアが高い人の設定値が、自然とベストの値と言えてくるんじゃないでしょうか。


>分布グラフ
有志の方で作ってみたい、というお話は受けています。
今の所どうなるかは未知数です:)


>Dotのクリティカル近似と設置型はいろいろ言われてますがやはり欲しいです。
>設置型はメモリを見ないと無理なんでしょうけど。
Dotのクリティカル近似ってどう算出するものかなーと。知ってたら情報を是非^^
もし着弾などから類推できるのであれば、RDMは無理でも分析画面では出せそうですよね。

AOEスキルについては思うところもあるでしょうが、今の所非対応です。
メモリを覗く行為は最小限に留めたいという気持ちがあるからです。
(海外の人はおかまいなしだなーと思いつつ、敵のHP数値すら出さないようにしているのが、現在の運営方針です)


>更に話は逸れますが、難読化等の話が出て話題になっていますのでそちらで信頼を失っては廃れると思います。
サイトへデータを飛ばしている関係上、第三者の容易な解析・改竄、それによる被害を防止するための難読化です。
今ネット上でそういう話題を振りまいている人たちがいるとしたら、難読化を解除させた上でこちらにもっと厄介ごとを持ってくる可能性があるなぁと。
(難読化、なんて言葉を出すくらいでしたら、多少以上の心得はありそうですしね)

# 他のツールは全ソースを公開してるんですかねー。そういった事情にはとんとウトいもので^^ゞ

所詮個人で作成しているものです。そういったものが特定少数の誹謗中傷により(パーサーに限らずどんないいツールであろうと)衰退していきました。
LogRepとてその可能性はあると思います。

LogRepがそれなりに使えるツールだと思って頂けたとして、それを発信する声がある。
そういった第3者の力がなければ、私が何をしたところで磐石な信頼を得るのは難しいでしょうね。
ネガティブ発信者が出てくるほど、皆に使われるものになったのは大変感慨深いです。
使ってくださって、本当に有難うございますm(_ _)m

HERO of BAHAMUT さんのコメント...

DPSの計算式が改善され、それなりにランキングが参考になるようになってきました。ありがとうございます。

さて、ここで一点疑問点があります。
ランキングに使用するスコアはBossTotalの値を参照していることは周知の事実かと思いますが、討滅戦においてこのBossTotalに含まれない対象が多数います。

極ガルを例に挙げると、
含まれる:ガルーダ、プリストリープルーム
含まれない:スパルナ、チラーダ、シルキープルーム、スパイニープルーム

上記の「含まれない」対象を攻撃しても一切ランキングに影響を及ぼさない(むしろ集計対象の敵を攻撃していない=ランキングスコアは下がる)ため、「公正にランキングで競えるか」という点で疑問が生じます。

つきましては、上記について理由がありましたらご回答ください。

また、私見ではありますが
・全ての対象をBossTotalに含める
・ランキングの参照値をBossTotalではなくTotalにする
この2点のうちいずれかでこの問題は解決し、より期待値通りの、参考になるランキングになると考えております。

以上、よろしくお願い致します。

codescream さんのコメント...

HERO of BAHAMUT さん

お役に立てるようになったのは嬉しいですね:)
そしてまた、とてもいい質問を有難うございます。

スパルナがなぜ集計に含まれないか? といえば、以前のDPS算出ルールが足をひっぱっていたためです。
スパルナは何度も出てきますが、常に戦うわけではありません。そのためDPSは以前の計算式では異様に低く計測されてしまう…そういった難点があったため省いていました。
また、BossTotalの対象とする敵名をツールが把握する必要があったのも問題でした。日本語名だけならともかく英語名も必要だったので、その理由で取りきれていないものもあったように思います;(

今回の変更によりそういった問題は解消されるので、結果Totalを参照値にしてもいいんじゃないかなと思っています。
指標としてまぎらわしいのでBossTotalという項目自体の廃止を考えてもいいんじゃないかなーとも。

コメントを投稿

★「匿名」を選択せず、「名前/URL」で貴方の名前を書いてください。
★ If you have not chosen the "匿名(anonymous)", please write your name in the "名前(Name) / URL".