黒毛和牛モモバラ切り落し100g298円

iPhoneアプリを作ってます。リリースノートとか用ブログです。

ラノベル-1.1.23 をリリースしました

小説更新時にダウンロード済みの話が消えるバグの対応を行いました。
ここ一週間ほどご迷惑をおかけしておりましたが直ってると思います…前バージョンも直ってると思ってリリースしましたので、また何か見落としが無ければ良いなーという感じなのですが。

ラノベルの一括ダウンロードに関する不具合の続報

今朝ほどブログに書いた通り、既存のバグで一括ダウンロードが完了しない場合があるようです。 現在まで分かっている経緯は以下の通りです。

  • 2/8: 小説詳細画面の日付がおかしいと連絡を受ける(バージョン 1.1.20)
  • 2/9: 上記問題の修正版をリリース(バージョン 1.1.21)
  • 2/10: 一括ダウンロードができないと連絡を受け現象を確認

バージョン 1.1.20 以下については、2/8 以降小説詳細画面の日付がおかしくなる問題をかかえており、小説の表示等に問題があります。

一括ダウンロードに関する問題を修正したバージョンは現在 AppStore の審査待ちです。 問題が無ければ今日(2/11)か明日には公開されると思います。一括ダウンロードはバージョンアップしてからして頂いた方が無難です。

小説一覧の更新タブで 2/8 以降に更新されているものについては日付がおかしくなっており、その影響でダウンロード済み小説が消えています。最終ダウンロード日時が古い小説については影響はありません。 (未ダウンロードの話をダウンロードする仕様になっており、次に小説を開いた際に読み込むため、話単位で小説の更新を検出するとダウンロード済みの話を消す挙動になっています。) 申し訳ありませんが、必要な小説についてはバージョンアップ後に再度一括ダウンロードしてください。

ラノベルの一括ダウンロードに関する不具合について

先日の小説詳細画面の日付が表示されない問題の対応リリース後、一括ダウンロードに既存のバグがあることが分かり、昨日のアプリアップデートでそのバグが発生しやすい状況にあることが分かりました。 具体的に分かっている事項は以下の通りです。

  • 一括ダウンロードを実行しても小説がすべて更新されない場合がある
    • その後一括ダウンロードが終わっているにも関わらず、ネットワークインジケータ(上のぐるぐる)が回っている状態のままになる 一括ダウンロード実行中に小説詳細画面を開いていると一覧が消える場合がある

すぐ直したいのですがちょっと出ないといけないので、帰ってきてから対応します。 また、小説を開く際にも他の問題があるように見えますのでそちらの確認も後ほどします。 申し訳ありませんがよろしくお願い致します。

補足 といった状況ですので、一括ダウンロードが失敗してそうな場合は繰り返しても失敗します。次のアップデートまでお待ち願います。

ラノベル 1.1.21 をリリースしました

先日の小説詳細画面の日時が表示されなくなった問題を受けまして、バグ修正リリースを行いました。
こっそり Handsoff(Bluetooth 経由でラノベルで開いてる小説を Mac とかのブラウザで見れる多分それほど嬉しくない機能)対応も行っております。

リリース後、何件か不具合のご連絡を受けており調べておりますが、プログラムの問題は見つかっておらずラノベル側の不具合なのか他の原因なのか現時点では判別できておりません。
挙動におかしい点を見つけられた方はご連絡を頂けると助かります。

ラノベルの小説詳細画面の更新時間が表示されなくなった件について

先ほど AppStore に修正したバージョンを提出しました。
アプリの審査が終わるまで少々お待ち願います。
バグのご連絡を頂いた皆様、誠にありがとうございます。
今後ともよろしくお願い致します。

Vainglory Advent Calendar 2016 19日目: ダメージ計算したいやでー

この投稿は pchw さん主催の Vainglory Advent Calendar 2016 19日目の記事です。
昨日は nakazu225 さんHow to start VG streaming-これからVG配信を始めたい初心者の為の入門書- でした。

普段ほぼ大乱闘モードしかしてないのでハルシオンフォルドの皆様初めましてという感じなのですが、Vainglory のダメージ計算についてさっくりまとめてみようと思います。

先週 Vainglory 2.0.0 がリリースされ先ほど 2.0.1 を確認しましたが、さすがにちょっと追いかけ切れませんでしたので一部 1.24.0 ベースの話になっておりますがご了承ください。

TL;DR

  • Vainglory の計算式を色々まとめてみるよ
  • 手計算めんどくさいんで Google Spread Sheet 作ってみたよ

Vainglory の計算式まとめ

以下の計算式については全部元ネタサイトの式そのままです。計算するのに不便なので単位とか若干変えているものもあります。

参照元のサイトの方が情報は多いですし、こちらの認識不足等で間違ってるものもあるかもしれませんので、英語の分かる方は元ネタサイトも見て頂いた方が良いかなと思います。

基本攻撃によるダメージの計算

基本攻撃によるダメージ計算は以下のようになっています。
元ネタは http://www.vaingloryfire.com/vainglory/guide/complete-guide-to-vainglorys-hidden-stats-and-calculations-by-an-engineer-4311 です。

武器威力 = ヒーロー武器威力 + アイテム武器威力
基本攻撃ダメージ = 武器威力 / (1 + 敵のアーマー力 / 100)
貫通ダメージ = (アーマー貫通% / 100) * 武器威力 + (1 - (アーマー貫通% / 100)) *
         基本攻撃ダメージ
クリティカルダメージ = 貫通ダメージ * (150 + アイテムクリティカルダメージ)
期待ダメージ = 貫通ダメージ * (1 - クリティカル率% / 100) +
        クリティカルダメージ * (クリティカル率% / 100)

クリティカル率が > 0 の場合、クリティカル率に応じてクリティカルダメージが発生します。クリティカル率が 0 の場合、クリティカルダメージは発生しませんので貫通ダメージがヒーローのダメージとなります。

例として、レベル12 Vox (武器威力149) が Sorrowblade、Tyrant's Monocle、Piercing Spear を装備し、レベル12 Ardan(アーマー96) に攻撃する場合は以下のようになります。

武器威力 = 149 + (150 + 50 + 15)
        = 364
基本攻撃ダメージ = 364 / (1 + 96 / 100)
        = 185.71428571428572
貫通ダメージ = (8 / 100) * 364 + (1 - 8 / 100) * 185.71428571428572
        = 199.97714285714287
クリティカルダメージ = 199.97714285714287 * ((150 + 20) / 100)
        = 339.9611428571429
期待ダメージ = 199.97714285714287 * (1 - 40 / 100) + 339.9611428571429 * (40 / 100)
        = 255.97074285714288

セレス等一部のヒーローは、クリスタル力に応じて追加ダメージが発生します。
クリスタルダメージの計算は、以下のアビリティと同じですのでここでは省略しますが、青ダメージはシールドでダメージが軽減されるようですので、相手に応じて防具を積む必要があります。

また、武器ダメージについては7日目の Kengo_vg さんThe comprehensive weapon build guid が詳しいのでそちらをぜひご覧ください。

攻撃1回あたりに必要となる時間

攻撃クールダウンは次の攻撃が可能になるまでの時間で、ヒーローとアイテムの攻撃速度と、各ヒーロー固有の基本攻撃クールダウン、攻撃ディレイ、ノースタッターステップペナルティ、攻撃スピードモディファイアから求められます。
元ネタは http://forums.vainglorygame.com/index.php?threads/109570/ です。フリッカーの数字は無かったのでこちらで出してます。

まず各ヒーロー固有の数値を挙げます。

ヒーロー 基本攻撃クールダウン 攻撃ディレイ ノースタッターステップペナルティ 攻撃スピードモディファイア
Adagio 0.8 0.25 0.2 100
Alpha 0.8 0.25 0.2 100
Ardan 0.8 0.23 0.2 100
Baron 1 0.5 0.2 60
Blackfeather 0.8 0.3 0.2 100
Catherine 0.8 0.3 0.2 100
Celeste 0.8 0.3 0.2 100
Fortress 0.8 0.3 0.2 100
Glave 0.8 0.3 0.2 100
Gwen 0.8 0.3 0.2 100
Flicker 0.8 0.3 0.2 100
Joule 0.8 0.23 0.2 100
Kestrel 0.8 0.3 0.2 100
Koshuka 0.8 0.3 0.2 100
Krul 0.7 0.29 0.2 100
Lance 0.9 0.5 0.2 50
Lyra 0.7 0.3 0.2 100
Ozo 0.8 0.3 0.2 100
Petal 0.8 0.3 0.2 100
Phinn 1.05 0.3 0.2 100
Reim 0.8 0.3 0.2 100
Ringo 0.8 0.3 0.2 100
Rona 0.5 0.29 0.2 100
Samuel 0.8 0.3 0.2 100
SAW 0.8 0.3 0.2 100
Skaarf 0.8 0.3 0.2 100
Skye 0.8 0.29 0.2 100
Taka 1.1 0.29 0.2 100
Vox 0.8 0.3 0.2 100

攻撃クールダウンにかかる時間は以下のように求められます。
各攻撃には 0.2 秒のスタッターステップ可能時間があり、スタッターステップを行うとクールダウンを短縮することができます。

攻撃クールダウン = 基本攻撃クールダウン /
        (ヒーロー攻撃速度% + アイテム攻撃速度% * 攻撃スピードモディファイア%)
攻撃クールダウン秒 = 攻撃クールダウン + 攻撃ディレイ
攻撃クールダウン秒 (スタッターステップ) = 攻撃/秒 - 0.2

例として、レベル12 Vox (攻撃速度 151) がトルネードトリガーを装備した場合以下のようになります。

攻撃クールダウン = 0.8 / ((151 + 75 * (100 / 100)) / 100)
        = 0.3539823008849558
攻撃クールダウン秒 = 0.3539823008849558 + 0.3
        = 0.6539823008849558
攻撃クールダウン秒 (スタッターステップ) = 0.6539823008849558 - 0.2
        = 0.4539823008849558

1攻撃あたりの期待ダメージとクールダウンが分かれば DPS 計算ができます。(例は省略)

DPS = 期待ダメージ / 攻撃クールダウン秒

アビリティ攻撃によるダメージ計算

クリスタルによるアビリティ攻撃のダメージ計算は以下のようになっています。
元ネタは武器ダメージと同じく http://www.vaingloryfire.com/vainglory/guide/complete-guide-to-vainglorys-hidden-stats-and-calculations-by-an-engineer-4311 です。

2016/12/19 20:30 追記 以下間違いがあったので修正しています 1. アビリティの武器威力はアイテム武器威力のみです 2. アビリティのアイテム武器威力によるダメージは赤(アーマー防御)です

クリスタル力 = アイテムクリスタル力 * (1 + クリスタル増幅% / 100)
武器威力 = アイテム武器威力
アビリティ力 = 基本ダメージ + クリスタル力 * クリスタル率% +
        武器威力 * 武器率%
アビリティダメージ = アビリティ力 /
        (1 + シールド / 100) * (1 + クリスタルダメージ増幅% / 100)
貫通ダメージ = (シールド貫通% / 100) * アビリティ力 +
        (1 - (シールド貫通% / 100)) * アビリティダメージ

例として、レベル 12 Blackfeather が Shattergrass と Broken Myth を持っていて レベル 5 の B スキルで、Aegis を装備したレベル 12 Ardan に対して攻撃した場合は以下のようになります。

クリスタル力 = (150 + 70) * (1 + 0 / 100)
        = 220
武器威力 = 160
アビリティ力 = 240 + 220 * (180 / 100) + 160 * (100 / 100)
        = 796
アビリティダメージ = 796.0 / (1 + 211 / 100) * (1 + 0 / 100)
        = 255.9485530546624
貫通ダメージ = (10 / 100) * 796 + (1 - (10 / 100)) * 255.9485530546624
        = 309.9536977491962

また上記に加え Blackfeather が Clockwork と Broken Myth のスタックを 7 持つ場合、クリスタル力増幅とクリスタルダメージ増幅が加わり以下のようになります。

クリスタル力 = (150 + 70) * (1 + 30 / 100)
        = 286
武器威力 = 0
アビリティ力 = 240 + 286 * (180 / 100) + 0 * (100 / 100)
        = 754.8000000000001
アビリティダメージ = (754.8000000000001 / (1 + 211 / 100))
        = 242.70096463022512
貫通ダメージ = ((10 / 100) * 754.8000000000001 + (1 - (10 / 100)) * 242.70096463022512) * (1 + 35 / 100)
        = 396.7796720257236

なおクレイグのBやケストレルのA/C等の一部のアビリティや武器率による計算には武器ダメージが発生します。 武器ダメージが発生する場合、ダメージ軽減はシールドではなくアーマーが使用されるようです。
(青ダメージはシールド、赤ダメージはアーマーということのようで、武器ダメージのクリスタル率は青ダメージになるが、クリスタルダメージの武器率も青ダメージになるようです。全ヒーローのアビリティについて検証してないので若干怪しいですが。)

アビリティクールダウン時間

アビリティクールダウン時間は各ヒーローのアビリティごとに固有の値(ゲーム中で見れるので省略します)と、アイテムのクールダウン速度から以下のように計算されます。
元ネタは http://forums.vainglorygame.com/index.php?threads/4385/ です。

クールダウン秒 = アビリティクールダウン * (1 / (1 + アイテムクールダウン速度% / 100))

例として、レベル 12 Blackfeather が Clockwork を購入した場合のレベル 5 の B スキルのクールダウン秒は以下のようになります。

クールダウン秒 = 3.5 * (1 / (1 + 40 / 100))
        = 2.5

計算用 Google Spread Sheet

簡単にダメージ計算できる用に Google Spread Sheet を作ったのでリンクを貼っときます。ヒーローとレベル、アビリティレベルとアイテムを選択したらダメージが出るようになっています。一応セルにメモを付けていますが何が何やらやらになっている部分も多いので上の計算式まとめと併用ください。

一部対応していない項目については未対応シートに記載しております。体力喪失系や反射ダメージ、追加ダメージ等のスプレッドシートだとちょっと厳しい項目は入れていません。

docs.google.com

セルの保護とかもしてますし、マスターのファイルは別にありますので好きに使って頂いて構いませんが、共有ドキュメントになっておりみんなで同時に書き込める状態になっていますのでじっくり使いたい場合はコピーして使ってください。

なお、こちらの解釈間違いや検証漏れ転記漏れ等々で数字が間違っている場合はあると思います。申し訳ありませんが間違ってたらすみません。

Spread Sheet はバージョン 1.24.0 のデータが元になっています。ヒーローの細かい数字とかもちょいちょい変わってるようですので最新版の数字が欲しい方はコピーして編集してください。
Spread Sheet 中の App Script についてはスクリプトを作る Python スクリプトを Gist に置いてますので編集する際はこちらもどうぞ。

mkscript.py · GitHub

最後に

アビリティについては単純に計算できない項目も多く、ヒーロー固有の能力も大きく影響しますのでダメージ計算だけで強さを測れるものでもないですが、知ってると色々便利かなーと思います。

本題と関係ありませんが、手元に(もっと簡単な計算しかしてませんでしたけど)OpenOffice のドキュメントがあったので Google Spread Sheet に変換して機能追加したらすぐできるかなと思ってネタを決めたのですが、思っていたより大変だったので普通に Web アプリでも作っとけば良かったかなと言う感じです。

本当はスプレッドシートだけでうまいことやりたかったのですが、なかなか計算がややこしく結局 JavaScript 使うハメに陥ってしまいました。中身もぐっちゃらぐっちゃらなので公開する前に整理しようかなと思ってたのですが、2.0.0 がリリースされて色々変えるところも多いのでとりあえず諦めました。

来年初頭に API もリリースされるそうなのでツール作りは捗りそうな感じですね。

明日の Vainglory Advent Calendar 2016 は mirai64335 さん の「1年以上vaingloryを遊んできて今考えること」です。

ラノベル 1.1.19 をリリースしました

AppStore には一昨日ぐらいに出ていましたので既に更新された方もいらっしゃると思いますが、ラノベル 1.1.19 をリリースしました。 リリースノートにも書いていますが、修正点は以下の通りです。

  • クラッシュするバグを何種類か修正しました
  • ルビの優先度に関するバグを修正しました
  • 一部の小説を削除してもアプリのストレージ使用量が減らないバグを修正しました
  • ライセンス画面を変更しました
  • その他細かいバグも修正しています

アプリサイズが大きく小説を消してもてバックアップが出来ないとのご報告を頂いておりましたが、小説を消した際に画像も消すように変更しましたので解決しているかなと思います。 ライブラリを更新して不要な処理をいくつか消したのが原因かどうか分かりませんが、アプリのサイズがちょっと減ってるような気がします。