ウマ娘 ゲーム仕様解析垢

117 件のツイート
フォロー
ウマ娘 ゲーム仕様解析垢
@umamusu_reveng
「ウマ娘 プリティーダービー」のゲーム仕様を解析していくアカウントです。 正確な内容となるよう注意は払っておりますが、実際に正確である保証は一切いたしません。
2021年3月からTwitterを利用しています

ウマ娘 ゲーム仕様解析垢さんのツイート

固定されたツイート
【固定用ツイート (21/04/04)】 はじめに: twitter.com/umamusu_reveng レース時間計算機 (スプレッドシート): twitter.com/umamusu_reveng 解析まとめ (基本事項): twitter.com/umamusu_reveng 解析まとめ (スピード関連): twitter.com/umamusu_reveng 解析まとめ (HP/スキル):
引用ツイート
ウマ娘 ゲーム仕様解析垢
@umamusu_reveng
·
【解析まとめ (その他)】 HP: twitter.com/umamusu_reveng スキル: twitter.com/umamusu_reveng スキル補足: twitter.com/umamusu_reveng
1
11
29
よって、現状実装されているスキルで複数回発動が現実的なのは、「弧線のプロフェッサー」「コーナー巧者○」「曲線のソムリエ」「コーナー加速○」「スリップストリーム」「遊びはおしまいっ!」の6つということになるかと思います。 誤った情報を発信してしまい、申し訳ありません。
15
15
このスレッドを表示
またこちらは逆に、基準クールダウン時間が 30[秒] のスキルであって、直線ランダム発動で無いスキルも、複数回発動のチャンスがある場合があります。 具体的には、「スリップストリーム」「遊びはおしまいっ!」といったスキルが複数回発動したという報告があるようです。
1
1
このスレッドを表示
【スキルの複数回発動について・訂正】 (特に「円弧のマエストロ」「コーナー回復○」について) 先日「円弧のマエストロ」「コーナー回復○」が複数回発動しうるとのツイートを行いましたが、これは誤りでした。 内部の処理としては、HP回復スキルは発動後にクールダウン時間が減少しません。
1
8
7
このスレッドを表示
<技術解説> 「弧線のプロフェッサー」などの発動条件は「corner_random==1@corner_random==2@corner_random==3@corner_random==4」などとなっており、条件が OR で組み合わさっています。 よって、クールダウン中でなければ、これらのうちどれか1つの条件を満たすとスキルは発動します。
1
3
このスレッドを表示

おすすめトピック

登録すると、フォローしているトピックについてのツイートがホームタイムラインに表示されます。

Carousel

スライド1/10 - カルーセル
  • アニメ・漫画
    バーチャルYouTuber
    ビューティー
  • 新世紀エヴァンゲリオン
    コミック
    ゲーム
  • エーペックスレジェンズ
    ディズニー ツイステッドワンダーランド
    特撮
  • BTS
    ゲーム業界
    呪術廻戦
「弧線のプロフェッサー」や「円弧のマエストロ」が複数回発動したという報告は、以上のメカニズムによってもたらされているものと思われます。 なお、以前説明したとおり、スキル発動の抽選はレース前に行われており、トリガー通過時に抽選が行われるわけではないためご注意ください。
1
1
3
このスレッドを表示
なお、「好転一息」などランダム直線発動のスキルについては、大筋は以前説明したもので合っているはずです。 1. どの直線で発動するかを (各直線の距離に関わらず) 一様ランダムに抽選する 2. 発動位置を抽選された直線内で一様ランダムに決める
引用ツイート
ウマ娘 ゲーム仕様解析垢
@umamusu_reveng
·
なお、「円弧のマエストロ」などのスキルの発動位置は次のように定まります: 1. 前述の発動率計算を行い、スキルが発動するかしないかを決める 2. 1. で発動するとなった場合、発動可能な位置のうち、一様ランダムで発動位置を決める (この処理に賢さ値は影響しない)
このスレッドを表示
1
3
このスレッドを表示
・クールダウン時間は、コーナーランダム発動スキルの中では先述した9つのスキルのみ、(30 × コース距離[m] / 1000) [秒] と定められている。なお、多くのスキルは「30」の部分が「500」に設定されており、複数回発動が実質行えないようになっている。
1
2
このスレッドを表示
・それぞれのコーナーについて、トリガーの発動位置はコーナー中に一様ランダムに定められる。 ・いずれかの発動位置を通過してトリガーが発火すると、次に発動しうるまでのクールダウンのカウントダウンが開始される。 ・クールダウン中は、トリガーを通過してもスキルは発動しない。
1
2
このスレッドを表示
コーナーランダム発動スキルの発動メカニズムは次のようになります: ・第1コーナー、第2コーナー、第3コーナー、第4コーナーのそれぞれについて、発動トリガーを1つずつ生成する。 ・このとき、同一レース中に同一コーナーを複数回通過する場合は、最後以外の通過ではトリガーは発火しない。
2
1
4
このスレッドを表示
【スキルの複数回発動について】 【「円弧のマエストロ」などコーナーランダム発動スキルの発動位置について訂正】 現状では一部のコーナーランダム発動系のスキルのみ、同一レース中に複数回発動する可能性があります。 該当するスキルは以下の9つです:
1
47
68
このスレッドを表示
この RaceParameter::get_BaseSpeed() で得られるスピードなどの値は RaceParameter::.ctor() で代入されるやる気補正後のものですが、このやる気補正の数値は class MasterRaceMotivationRate から得られるものです。 データベースには 絶好調時の補正値 = 10400 などと記述されています。
1
このスレッドを表示
なお、コース係数 (twitter.com/umamusu_reveng) の算出時に用いられるのは「生パラメータ × やる気補正」の値となります。 また、すべてのパラメータは最小値 1.0、最大値 2000.0 にキャップされます (スキル補正前に1回、スキル補正後に1回の計2回)。
引用ツイート
ウマ娘 ゲーム仕様解析垢
@umamusu_reveng
·
【コースによるスピード補正について】 中国語の解析記事 (bbs.nga.cn/read.php?tid=2) およびその翻訳 (note.com/earman178/n/n1) において、スピード値にレースコースに応じた補正が掛かるとの記述がありますが、その内容に誤りがあると思われるため、ここに私の解析結果を載せます。
このスレッドを表示
2
このスレッドを表示
[バ場補正 (スピード)] 不良 → -50、それ以外 → 0 [バ場補正 (パワー)] (芝) 良 → 0、それ以外 → -50 (ダート) 稍重 → -50、それ以外 → -100 [脚質補正] S → 1.1、A → 1、B → 0.85、C → 0.75、D → 0.6、E → 0.4、F → 0.2、G → 0.1 [育成補正] 育成モード時 → 400、それ以外 → 0
1
3
4
このスレッドを表示
[やる気係数] 絶好調 → 1.04、好調 → 1.02、普通 → 1.0、不調 → 0.98、絶不調 → 0.96 (ゲーム中の説明や公式動画などではそれぞれ 1.1、1.05、1.0、0.98、0.95 とされていますが、これらの値を見つけることができませんでした) [コース係数] こちらを参照:
引用ツイート
ウマ娘 ゲーム仕様解析垢
@umamusu_reveng
·
【コースによるスピード補正について】 中国語の解析記事 (bbs.nga.cn/read.php?tid=2) およびその翻訳 (note.com/earman178/n/n1) において、スピード値にレースコースに応じた補正が掛かるとの記述がありますが、その内容に誤りがあると思われるため、ここに私の解析結果を載せます。
このスレッドを表示
1
1
3
このスレッドを表示
【ステータス補正について】 各ステータスにはいくつかの条件による補正が入り、それぞれ次のようになります: 補正スピード値 = 生スピード値 × やる気係数 × コース係数 + バ場補正 + 育成補正 + スキル補正 補正スタミナ値 = 生スタミナ値 × やる気係数 + 育成補正 + スキル補正
1
8
このスレッドを表示
こちらのアカウントでは、仕様の質問、解析の要望なども受け付けております。 空いている時間での対応となる上、また必ずご要望にお応えできるとも限りませんが、気軽にご連絡していただけますと幸いです。 どなたでもDMを送れる設定としていますので、DMでのご連絡も可能です。
2
1
2
引用ツイート
ウマ娘 ゲーム仕様解析垢
@umamusu_reveng
·
スキルの発動率について補足。 この発動率に関する計算は、レースが始まる *前* にすでに行われています。 「円弧のマエストロ」に限らず、すべてのスキルは「発動条件を満たす → 乱数を振って発動判定」 *ではなく* 、「乱数を振って発動判定 → 発動条件を満たす → 発動」のプロセスとなります。
このスレッドを表示
2
2
引用ツイート
ウマ娘 ゲーム仕様解析垢
@umamusu_reveng
·
【コースによるスピード補正について】 中国語の解析記事 (bbs.nga.cn/read.php?tid=2) およびその翻訳 (note.com/earman178/n/n1) において、スピード値にレースコースに応じた補正が掛かるとの記述がありますが、その内容に誤りがあると思われるため、ここに私の解析結果を載せます。
このスレッドを表示
3
引用ツイート
ウマ娘 ゲーム仕様解析垢
@umamusu_reveng
·
【フェーズ (phase) について】 レース中の現在の「スタートからの距離 / コース距離」に応じて「フェーズ (phase)」が定まります。フェーズは 0 ~ 3 の 4 通りの整数を取り得ます: ・0/6 ~ 1/6 → 0 (序盤) ・1/6 ~ 4/6 → 1 (中盤) ・4/6 ~ 5/6 → 2 (終盤) ・5/6 ~ 6/6 → 3 (ラスト)
このスレッドを表示
1
<技術解説> HorseRaceInfoSimulate::UpdateAI() でスキル等含めた最終的な速度の計算が行われています。 加速・減速の計算は HorseRaceInfo::_UpdateSelfSpeed() で行われており、加速度は HorseAccelCalculator::CalcAccelPerSec() および RaceUtil::CalcDeclPerSec() で計算されています。
このスレッドを表示
例えば「逃げためらい」によりデバフを受けているとき、計算された速度が目標速度と一致していても、実際の速度はその速度からデバフの効果量を差し引いたものとなります。 ただしこの場合でも、ウマは目標速度で走っていると思い込んでいる (?) ため、加速は *行われません* 。
1
6
このスレッドを表示
<加速時> 加速度 = 0.0006 × sqrt(500.0 × パワー値) × 脚質係数 × バ場適性係数 × 距離適性係数 (+ スキル補正) [m/s^2] 注: 上り坂時は係数「0.0006」が「0.0004」になります <減速時加速度 [m/s^2]> フェーズ 0 → -1.2 フェーズ 1 → -0.8 フェーズ 2 ~ → -1.0 HP0以下時 (上書き) → -1.2
1
1
このスレッドを表示
【実際の速度と加速度について】 各ウマ娘の実際の速度は、目標速度を目指して常に調整されています。 現在の速度が目標速度より遅い場合は加速、また逆に目標速度より速い場合は減速を行います。 加速時と減速時では加速度は異なり、それぞれ次のようになります:
1
1
6
このスレッドを表示
<技術解説> そろそろこの項を書くのが億劫になっていますが、書くことで一番救われるのは自分なので頑張ります。 今回のメインルーチンは HorseTargetSpeedCalculatorRace::Update() です。 ポジションキープ周りは class HorsePositionKeepCalculator を足がかりにします。
1
このスレッドを表示
なお、HP が 0 以下となってしまった場合は、目標速度は大幅に低下します: 目標速度 (HP 0 以下の場合) = 0.85 × 基準速度 + ((200.0 × 根性値) ^ 0.5) × 0.001 [m/s] ただし、HPを切らしてしまった時点で勝ちは望めないので、この計算式に実用上の価値はあまり無いでしょう。
1
1
このスレッドを表示
下り坂であっても、下り坂加速モードに入らない限りは目標速度の加算は行われません。 また、下り坂加速モードは HP の減少量を抑える効果もあります。 下り坂の間は、下り坂加速モードへの移行および終了の判定が1秒おきに行われ、賢さ値に関わらず 20[%] の確率で下り坂加速モードは終了します。
1
1
このスレッドを表示
坂補正は上り坂と下り坂で性質が異なります。 上り坂の際は坂の勾配に応じた減算となりますが、この減少量はパワーを上げることで軽減することができます。 下り坂の際は、賢さ × 0.04 [%] の確率で下り坂加速モードに移行し、坂の勾配に応じた目標速度が加算されます。
1
1
このスレッドを表示
それぞれのポジションキープモードに移行する条件は複雑で、なかなか解析が行えていません。 例えば、脚質が逃げのとき、1位であって、2位との差が 4.5[m] (=1.8[バ身]) 以内のとき、確率 20 × log10(賢さ × 0.1) [%] または掛かり状態のときに、スピードアップモードに移行する、などとなっています。
1
3
このスレッドを表示
ポジションキープ補正は、セクション 1 ~ 10 (コースはセクション 1 ~ 24 に均等に分割されています) の間に発動しうる補正で、次のようになっています: ポジションキープなし: 1.0 スピードアップモード: 1.04 追い抜きモード: 1.05 ペースアップモード: 1.04 ペースダウンモード: 0.915
1
2
このスレッドを表示
【目標速度 (TargetSpeed) について】 各ウマ娘の目標速度は次のように定まります: 目標速度 = 基準目標速度 × ポジションキープ補正 + 内側移動補正 + スキル補正 + 坂補正 基準目標速度 (通常時) について: twitter.com/umamusu_reveng 基準目標速度 (スパート時) について:
引用ツイート
ウマ娘 ゲーム仕様解析垢
@umamusu_reveng
·
【ラストスパートについて】 ラストスパートの始点と基準目標速度の計算は、フェーズ 2 に入ったタイミングで行われます。 基準目標速度上限(ラストスパート) = (基準目標速度(フェーズ 2) + 0.01 × 基準速度) × 1.05 + sqrt(500.0 × スピード値) × 距離適性係数 × 0.002
このスレッドを表示
1
4
このスレッドを表示
スキルの発動率について補足。 この発動率に関する計算は、レースが始まる *前* にすでに行われています。 「円弧のマエストロ」に限らず、すべてのスキルは「発動条件を満たす → 乱数を振って発動判定」 *ではなく* 、「乱数を振って発動判定 → 発動条件を満たす → 発動」のプロセスとなります。
3
8
このスレッドを表示
<技術解説> 基準持続時間や効果量が10000で割られているというのは、SkillBase::SetupDetail() や SkillData::ProcessDetail() が Math::MasterInt2Float() (値を 1/10000 にする関数) を呼び出していることから分かります。 基準時間に コース距離 / 1000 を掛ける処理は SkillDetail::ctor() です。
1
3
このスレッドを表示
なお、「円弧のマエストロ」などのスキルの発動位置は次のように定まります: 1. 前述の発動率計算を行い、スキルが発動するかしないかを決める 2. 1. で発動するとなった場合、発動可能な位置のうち、一様ランダムで発動位置を決める (この処理に賢さ値は影響しない)
3
7
4
このスレッドを表示
実際の持続時間は、(基準持続時間 × コース距離[m] / 1000) [s] となります。 また、(多くの公開されているまとめでは省略されてしまっていますが) "activate_lot" が 0 のスキルは条件を満たすと確定で発動しますが、"activate_lot" が 1 のスキルは賢さに応じて定まる確率で発動します。
1
1
6
このスレッドを表示
【スキルについて】 スキルについては、すでに解析値をまとめたスプレッドシートなどを公開している方がいますので、そちらをご存じの方も多いかもしれません (ここでは紹介しませんが、ローカルファイルを探すと特に暗号化もされていない状態でデータベースが保存されています) 。
1
8
18
このスレッドを表示
2点目は、この加算値は私が解析できない「何らかの値」で除算されているという点です。 そのため、私にはこの加算値の上限が 0.4 であるという保証を行うことはできません。 (CourseSetStatusAdjuster::CalcSpeedCoef() でこの処理は行われています。猛者求ム)
1
このスレッドを表示
スピード値には、コース係数とでも呼ぶべき係数が掛けられる補正処理は確かに行われています。 コース係数の初期値は 1.0 ですが、レースコース (レース場、バ場、距離のセット) に応じて、0~2種類の特定のパラメータを参照し、そのパラメータがある閾値を超えていたら一定値が加算されます。
1
2
このスレッドを表示
なおHP回復スキルは、金スキルおよび★3以上の固有スキルが初期HPの5.5%を、★2以下の固有スキルが初期HPの3.5%を、ノーマルスキルが初期HPの1.5%を回復させます。 初期HPにはコース距離が関わっているため、コース距離が長いほど回復スキルはより多くのスタミナに相当することになります。
1
6
13
このスレッドを表示
1秒あたりのHP減少量は次の通りです: 秒間HP減少量 = 20.0 × (現在速度[m/s] - 基準速度[m/s] + 12.0) ^ 2 / 144.0 × ウマ状態係数 × バ場状態係数 ウマ状態係数: 掛かり = 1.6、ポジションキープペースダウン = 0.6、その他 = 1.0 (下り坂加速モード時各0.4倍) バ場状態係数: 1.00 ~ 1.02
1
3
4
このスレッドを表示
【HPについて】 各ウマにはHPが設定されており、HPが0になると非常に遅い速度でしか走れなくなります。 まず、初期HPが次の計算式で与えられます: 初期HP = 0.8 × 脚質係数 × スタミナ値 + コース距離[m] 脚質係数: 逃げ = 0.95、先行 = 0.89、差し = 1.0、追込 = 0.995
1
30
36
このスレッドを表示
<技術解説> HorseLastSpurtCalculator::CalcLastSpurt() がラストスパートの計算を行います。 そこから呼び出される CalcBaseTargetSpeedAndStatusSpeed() が基準目標速度の上限を計算します。 この関数は phase = 2 になると1回だけ HorseRaceAISimulate::UpdateLastSpurt() から呼び出されます。
1
このスレッドを表示
ウマ娘の攻略の観点から言えば、フェーズ 2 に入った瞬間にラストスパートを掛けられるかがタイムに大きく影響します。 そのため、フェーズ 2 即スパートが掛けられる HP を確保することは非常に重要です。 ただし、それ以上に確保した分の HP は無駄になるため、一定以上のスタミナは必要ありません。
1
2
2
このスレッドを表示
最後に、これらの候補から何らかの処理を行って1つの候補を採用するのですが、この処理に賢さ値が絡んでいるという程度しか現状の私には解析できていません。 この処理は HorseLastSpurtCalculator::CalcSpurtDistanceSpeedDownRecursivelyNext() で行われています。猛者求ム。
1
2
このスレッドを表示
ラストスパートの始点と基準目標速度の計算過程はやや複雑です。 まず、フェーズ 2 に入ったタイミングで、残りの距離すべてを基準目標速度上限で走っても HP (後述) が足りなくならない場合は、現在位置を始点として基準目標速度には上限値が採用されます。
1
2
2
このスレッドを表示
【ラストスパートについて】 ラストスパートの始点と基準目標速度の計算は、フェーズ 2 に入ったタイミングで行われます。 基準目標速度上限(ラストスパート) = (基準目標速度(フェーズ 2) + 0.01 × 基準速度) × 1.05 + sqrt(500.0 × スピード値) × 距離適性係数 × 0.002
2
6
7
このスレッドを表示
【フェーズ (phase) について】 レース中の現在の「スタートからの距離 / コース距離」に応じて「フェーズ (phase)」が定まります。フェーズは 0 ~ 3 の 4 通りの整数を取り得ます: ・0/6 ~ 1/6 → 0 (序盤) ・1/6 ~ 4/6 → 1 (中盤) ・4/6 ~ 5/6 → 2 (終盤) ・5/6 ~ 6/6 → 3 (ラスト)
1
1
5
このスレッドを表示
ただし、利用規約が変更された場合や、Cygames社より連絡があった場合などは、予告なく本アカウントは削除される可能性があります。 またそのようなことがなくとも、飽きっぽい性格なため、アカウントの更新が突然途切れるかもしれません。予めご了承ください (?) 。
1
1
このスレッドを表示
また、こういったリバースエンジニアリング行為は、現状では利用規約でも特に禁じられていないというのが私の認識です。 そのため、法律上はもちろん、規約上も問題ないものという認識のもと、ツイートを行っていきます。(倫理上はどうかはともかくとして…)
1
2
このスレッドを表示
そのため、本アカウントに記載する情報を取得するにあたって、サーバーとの通信を監視したり、不正なポストを行うといったことは (現状では) 一切行っておりません。 公式に配布されている実行ファイルや、PC内に保存されるローカルファイルを、純粋にリバースエンジニアリングしています。
1
このスレッドを表示
特にウマ娘のレースについては、シミュレーションが「アプリ内」で行われているため、解析を行うことでゲーム仕様を正確に把握することが可能です。 なおアプリ内でシミュレーションが行われた後、何らかのハッシュ値をサーバーに送信しているため、チート等を行うとサーバー側で恐らく検知されます。
1
1
1
このスレッドを表示
【はじめに】 本アカウントで用いる「解析」という用語は、具体的にはアプリをリバースエンジニアリング (逆アセンブル・逆コンパイル) することを指します。 リバースエンジニアリングの是非については以下で説明を行いますが、このような解析に抵抗のある方はブラウザバックをおすすめします。
1
1
2
このスレッドを表示
本アカウントは、Cygames社の「ウマ娘 プリティーダービー」のゲーム仕様について、私が自身で解析した内容をまとめることを目的としたものです。 現状では、解析情報は中国語のものがほとんどですが、真にトレーナーの役に立つ情報を日本語で発信できたらと考えています。 #ウマ娘 #ウマ娘解析
2

Twitterを使ってみよう

今すぐ登録して、タイムラインをカスタマイズしましょう。
アカウント作成
画像
画像

トレンド

いまどうしてる?

COVID-19
昨日
大阪府が医療非常事態宣言 医療崩壊のおそれ
日本のトレンド
今野さん
日本のトレンド
璃果ちゃん
トレンドトピック: #乃木坂46ANN
モデルプレス
昨日
スザンヌ「私、34歳高校生になります」宣言にエール多数
ハフポスト日本版 / 会話を生み出す国際メディア
昨日
ジル・バイデン氏の網タイツ批判に、支持者ら反論「何歳になっても好きなものを着ればいい」