【原神】編成DPSシミュレーター「gcsim」の使い方について

-原神

今回は、原神向け編成DPSシミュレーター「gcsim(https://www.gcsim.app/)についてのお話です。

原神は、パーティー編成やキャラクター装備・攻撃する順序によって、敵へのダメージが大きく変わるゲームです。

ショウT
ショウT

手持ちの中でなるべく高火力を出そうとすると、まずはゲームの仕様をしっかり把握しておく必要があるので、なかなか大変ですよね。

そこで今回は、キャラ単体火力だけではなく、PT全体の火力シュミュレーションもできる「gcsim」の使い方についてご紹介します!

【原神】編成DPSシミュレーター「gcsim」の使い方について

gcsimの使い方

言語を日本語に変更する

右上の言語設定を[日本語]に変更する

はじめに、[gcsim]の言語設定を日本語に変更しましょう。

この項目を変更することで、キャラクターや武器・聖遺物の検索が日本語で行えるようになります。

英語版の原神wikiにて固有名詞を確認する必要がなくなりますので、ぜひ変更しておきましょう!

日本語実装に尽力くださったからしな_(Karashina#8663)様、ありがとうございます!

変更後は[シミュレーター]へ進み、キャラクター情報やアクション順序など、シミュレートしたい内容を登録していきます。

キャラクター情報を登録する

キャラクター名を検索し、PTへ登録する

画面上部の[編成]より、キャラクターの追加を行います。

画像赤枠の[+]を選択し、検索ウィンドウに追加したいキャラクター名を入力しましょう。

下に出てくる検索結果をクリックすることで、PT登録が行なえます。

ステータス編集画面を開く
キャラクターの詳細ステータスを編集する

PT登録が完了したら、キャラクターの詳細ステータスを編集しましょう。

登録内容
  • キャラクターの[レベル]・[星座の凸数]・[天賦レベル]
  • 武器の[レベル]・[凸数]
  • 聖遺物の[セット効果]・[詳細ステータス]

なお、聖遺物の詳細ステータスは、ゲーム内の聖遺物詳細の数字を入力します。キャラクターの基本ステータスは自動的に加算されますので、聖遺物で増加する数値のみを入力しましょう。

また、HP・攻撃力・防御力の項目は、[%]ではなく[HP上限+7116]といった実数値の入力でも大丈夫だそうです。聖遺物5箇所分のメイン・サブオプションを足し算して入力する必要はありません。

聖遺物タブの[聖遺物詳細]を開く
HP・攻撃力・防御力は実数値の入力でもOK!

キャラクター情報を一通り登録し終えたら、次はアクションリストの編集を行います。

アクションリストを編集する

動作環境や敵の設定

仮想敵やキャラクターのアクション順序など、シミュレートしたい内容は[アクションリスト]に追記していきます。まずは基本オプションを追記しましょう!

↓コピペ用

options iteration=1000 duration=90 swap_delay=12;
target lvl=100 resist=0.1 particle_threshold=250000 particle_drop_count=1;
シミュレーション環境の指定

options iteration=1000 duration=90 swap_delay=12;

最初に、シミュレーション環境を指定しましょう。主な項目は下記の3つです。

※余談ですが、アップデート以降[mode=sl]の指定は不要になったようです。

[iteration=試行回数]

会心がどれだけ発生するかによって、シミュレーション結果は毎回異なります。

ここで指定する試行回数が少ないと、結果が上振れているか、下振れている状態になりかねません。

そのため、確率が収束して信頼性が得られる回数を指定しておきましょう。

コミュニティ内では1000回に指定されていることが多いようです。

[duration=計測秒数]

シミュレーションする秒数を指定します。

編成DPSシミュレーターの”DPS”とはDamage Per Secondの略で、「1秒間に与えるダメージ」のことを指します。[総与ダメージ÷経過した秒数=DPS]ですから、母数の秒数が変わればDPSも変わります。

特定コンボの瞬間火力が知りたい場合は、そのコンボが始まってから終わるまでの秒数を指定しましょう。(いわゆるバーストダメージをDPSで計測するのはちょっとズレている気もしますが…)

スキル回しや元素爆発を調整した継続火力が知りたい場合には、数分以上の時間を指定しましょう。

[swap_delay=キャラ切替に要する時間]

実際のゲーム内では、キャラクターを切り替えてから次の行動に移れるまでに、若干の遅延があります。その遅延をフレーム単位で指定しましょう。

公式ドキュメントによると[60フレーム=1秒]で指定されているそうなので、1フレームは約0.166秒です。

12フレームで指定すると、キャラチェンから次の行動に移れるまで約0.2秒のディレイが設定されていることになります。

敵を指定する

target lvl=100 resist=0.1;

次に、サンドバッグになってくれるエネミーを指定しましょう。

上記の指定では、敵レベル100,全元素耐性10%です。

もし、「物理耐性のみ30%、その他の耐性は10%で敵を指定したい」といった場合には、下記のような指定を行いましょう。

target lvl=100 pyro=0.1 dendro=0.1 hydro=0.1 electro=0.1 geo=0.1 anemo=0.1 physical=0.3 cryo=0.1;
耐性メモ

pyro=炎耐性 , dendro=草耐性 , hydro=水耐性 , cryo=氷耐性 , electro=雷耐性 , geo=岩耐性 , anemo=風耐性 , physical=物理耐性 , resist=全耐性

粒子生成量を調整

particle_threshold=250000 particle_drop_count=1;

最後に、一定ダメージを与えるごとに粒子が生成されるよう設定しましょう。

例文では、25万ダメージごとに無色粒子が1つ生成されます。

キャラクターのアクションを指定する

基本オプションの追記後は、キャラクターのアクションを追記していきます。

アクションの基本構成

active [キャラクター名];
[キャラクター名] アクション内容;

[キャラクター名] アクション内容;

[キャラクター名] アクション内容;

最初にアクションを起こすキャラクターをactive [キャラクター名];指定します。

その下からキャラクターのアクションを追加していきましょう!

アクションをループして実行する場合

active [キャラクター名];

while 1 {
[キャラクター名] アクション内容;

[キャラクター名] アクション内容;

[キャラクター名] アクション内容;

}

特定のアクションをループして実行したい場合は、アクション内容をwhile 1 { }で囲えばOKです。

なお、キャラクター名は英語版の名称で指定する必要があります。

アクションリスト内の英語名称を参照しましょう!

アクション一覧
  • attack 通常攻撃
  • charge 重撃
  • skill スキル
  • skill[hold=1] スキル長押し
  • burst 元素爆発
  • burst [radius=2] 元素爆発(範囲指定あり)
  • high_plunge 高空落下攻撃
  • low_plunge 低空落下攻撃
  • aim 狙い撃ち(フルチャージ)
  • aim[weakspot=1] 弱点への狙い撃ち
  • jump ジャンプ
  • dash ダッシュ
  • wait 待機(x秒)

※弓キャラクターのチャージショットは[aim]で指定すればOKのようです。

※万葉のスキル発動後は、落下攻撃も合わせて指定する必要があります。

その他の詳細な仕様は公式ドキュメントをご確認ください。

アクション内容の例文

①心海で通常攻撃を1回行う

kokomi attack;

②心海で通常攻撃を3回行う

kokomi attack:3;

③心海で通常攻撃を3回行い、スキルを使う

kokomi attack:3,skill;

④心海で通常攻撃を3回行い、スキルを使う。その後、申鶴で長押しスキルを使う

kokomi attack:3,skill;

shenhe skill[hold=1];

今回は試しに、下記動画のコンボを指定してみます。

動画のアクション

active shenhe;
申鶴 [スキル]
万葉 [スキル][落下攻撃]
心海 [スキル]
申鶴 [スキル長押し]
甘雨 [スキル][重撃][スキル][重撃]

restart;

アクションリストへの記載

active shenhe;

while 1 {
shenhe skill;
kazuha skill,high_plunge;
kokomi skill;
shenhe skill[hold=1];
ganyu skill,aim,skill,aim;
}

このwhile 1 { }で囲われたアクションが、90秒間ループしてシミュレーションされます。

もし、シミュレーション時間を変更したい場合には、必須3項目の[SLモードへ変更]内に、[duration=(任意の秒数)]を追加しましょう。

options duration=15 mode=sl;

なお、一巡した段階でスキルや元素爆発のクールタイムが終わっていないと、そのクールタイムが終わるまでキャラクターは棒立ち状態でシミュレーションされるようですので、ご留意ください。

アクションリストへの記載が完了したら、ページ下部に表示されている[実行]ボタンを押し、シミュレーション結果を確認してみましょう!

シミュレーション結果の確認

シミュレーション結果

シミュレーション結果

上記の画像は、動画のコンボをシュミレーションした結果です。

同じコンボを繰り返すと、2巡目以降、申鶴と心海のスキルクールタイムが間に合わず、棒立ち状態が発生しています。そのため、DPSが15,463と低めに算出されています。

このコンボは7~8秒でバーストダメージを叩き込む用で、継続戦闘には向いていないスキル回しのようですね。

[デバッグ設定]から[calc]を有効にする
キャラごとのアクションや与ダメージが確認できる

[デバッグ]タブでは、シミュレートした際のキャラクターアクションや与ダメージが確認できます。[デバッグ設定]から[calc]を有効にすると、実行されたスキルや攻撃で与えたダメージが詳細に確認できるのでオススメです!

ゲーム内でのダメージ

ちなみに今回のシュミレーション結果は、ゲーム内と同じような数値がしっかり出ていました。

※廃止済み※ アクション優先モードについて

gcsimのアップデートにより、アクション優先モードは使えなくなりました。

使いこなせば棒立ち状態を回避できる?

リストを上から順に実行するシーケンシャルモードとは違い、アクション優先モードは実行可能なアクションが自動的に行われるモードになっています。

アクション優先モードの挙動説明

アクションリストは純粋に優先順位リストです。最初に使用可能なアクションが見つかるまでアクションのリストをスキャンダウンします。これが実行されるアクションです。何も見つからない場合、このフレームでは何も実行されず、リストは次のフレームで再度チェックされます。(公式ドキュメントより)

アクション優先モードでは、スキルのクールタイムが終わっていないアクションは飛ばして、実行可能なアクションから行ってくれるので、シミュレート中の棒立ち状態が起こりにくいようですね。

さらに、シーケンシャルモードでは利用できなかった[+if]や[chain]などの条件付けも行えるようです。

私自身、まだまだ仕様を理解できていませんが、動画のコンボをアクション優先モードでも試してみましたので、ご紹介します!

APLモードのシミュレーション結果

アクション優先モードでシミュレーションした結果

スキル回しは若干異なりますが、[申鶴→万葉→心海→甘雨]の流れでシュミュレーションを行った結果が上記の画像です。棒立ち時間がほぼ無くなり、DPSは42,288まで伸びています。

アクションリストの記載は以下のとおりです。

options mode=apl;

energy every interval=480,720 amount=1;
target lvl=100 resist=0.1;

active shenhe;

#コンボの指定
sh_seq:shenhe skill;
kz_seq:kazuha skill,low_plunge;
ko_seq:kokomi attack:2;
ga_seq:ganyu skill,aim:2;

chain sh_seq,kz_seq,ko_seq,ga_seq;

#優先度低アクション
kokomi skill;
ganyu aim;


#以下キャラクター情報
ganyu char lvl=90/90 cons=6 talent=10,10,10;
ganyu add weapon="amosbow" refine=1 lvl=90/90;
ganyu add set="blizzardstrayer" count=4;
ganyu add stats def=64.00 hp=7116 atk=902.0 er=0.2850 em=19.00 cr=0.3540 cd=1.554 cryo%=0.4660;

shenhe char lvl=90/90 cons=2 talent=8,10,10;
shenhe add weapon="vortexvanquisher" refine=1 lvl=90/90;
shenhe add set="gladiatorsfinale" count=2;
shenhe add set="shimenawasreminiscence" count=2;
shenhe add stats def=173.0 hp=6105 atk=1071 em=58.00 cr=0.5170 cd=1.119 cryo%=0.4660;

kokomi char lvl=90/90 cons=0 talent=6,10,7;
kokomi add weapon="prototypeamber" refine=5 lvl=90/90;
kokomi add set="oceanhuedclam" count=4;
kokomi add stats def=130.0 hp=22914 atk=646.0 er=0.3590 em=133.0 cr=0.09700 cd=0.06200;

kazuha char lvl=90/90 cons=0 talent=9,9,9;
kazuha add weapon="ironsting" refine=5 lvl=90/90;
kazuha add set="viridescentvenerer" count=4;
kazuha add stats def=331.0 hp=7117 atk=441.0 er=0.2530 em=685.0 cr=0.1210 cd=0.3890;

まず、アクション優先モードを利用するために、optionsのモードを下記のように指定します。

アクション優先モードへ変更

options mode=apl;

ついでにアクション〆のrestart;は削除しておきましょう。残っているとエラーが出ます。

その他は、シーケンシャルモードと同じで大丈夫です(たぶん)。

chain(コンボ)の活用

(任意1)_seq:[キャラクター名] アクション内容;

(任意2)_seq:[キャラクター名] アクション内容;

(任意3)_seq:[キャラクター名] アクション内容;

chain (任意1)_seq,(任意2)_seq,(任意3)_seq

キャラクターのコンボ指定は、[chain]にて行います。(任意)_seq:でアクションパーツを作成し、それを[chain (任意1)_seq,(任意2)_seq,(任意3)_seq]といった指定で繋ぎ合わせるイメージです。

このchainは、左から順に1セットの行動として実行されます。その際、何も指定していない状態だと、パーツ内にリキャストが終わっていない(実行不可能な)アクションが1つでもあると、chainごと行動がスキップされてしまうのでご留意ください。

if(前提条件)の活用

①chain sh_seq,kz_seq,ko_seq,ga_seq +if=.cd.kokomi.skill>0;

②bennett skill +if=.energy.xingqiu<80 +swap_to=xingqiu;

+ifを使うことで、そのアクションが実行されるための前提条件を指定できるようです。

①の例文では、+if=.クールタイム.心海.スキル>0;といった指定になっており、心海のスキルクールタイムが0より大きい場合に、chainが実行されます。そのため、一巡目は必ず「心海のスキルが実行された後にchainが実行」されます。

②の例文では、+if=.元素チャージ.行秋<80 +swap_to=行秋;といった指定になっており、行秋の元素爆発チャージが80未満の場合にはベネットのスキルを実行し、行秋へキャラチェンジします。行秋の元素爆発が溜まっている状態(=80)では実行されません。(ベネットのスキルで元素粒子を発生させ、それを行秋に渡すためのアクションだと思います。)

優先度低アクションの追加

kokomi skill;
ganyu aim;

アクション優先モードでは、記載した上から順に、実行できるアクションが実行されていきます。

そのため今回のアクションリストでは、[chain]がスキップされたら[心海のスキル]→[甘雨の狙い撃ち]の順に実行され、[心海のスキル]が実行中かクールタイム中なら、[chain]→[甘雨の狙い撃ち]の順に実行されます。

ちなみに今回は、シーケンシャルモード時との比較のため元素爆発を含めていません。低優先度アクションのところに甘雨・申鶴・万葉の元素爆発を追記すると、DPSが61,572まで向上します。

最後に

今回は、編成DPSシミュレーター「gcsim」の使い方についてご紹介しました。

キャラ単体DPSだけではなく、PT内での攻撃順序・スキル回しなども含めて、PT全体の火力シュミュレーションができるので、とても面白いツールでした。

難易度高めではありますが、使いこなせれば編成研究が捗りそうですね!

それでは!

コメント

タイトルとURLをコピーしました