GODEATER 専用バレットエディット概論 2章 モジュール解析(1/3)
前記事↓
~前回のお話し~
- 角度設定の反映について解説(上下角・左右角・回転角)
- 角度設定の応用例を紹介
4年越しの大変ご無沙汰の更新となりました。
今さらながらではありますが書き進めていきたいと思います。
2.モジュール解析
本章ではバレットエディットにおける様々なモジュールの仕様や特性について述べていきます。モジュールの振る舞いや仕様の理解に注力し、基礎威力などは別途まとめるものとします。
普段バレットを組んでいるだけでは意識しないような細かい部分まで掘り下げて解説していきましょう。多分3分割くらいで終わると信じて1/3ってことでタイトルにしておきます。
2.1.弾丸・レーザー
弾丸は弾形状のシンプルなモジュールで、敵に衝突すると銃貫通ダメージを与えて消滅します。ただし衝突した当該フレーム中は生存している扱いのため、見かけ上は衝突などによって既に消滅していても、子接続の条件を満たしていれば子モジュールは発生します。
レーザーは線状のモジュールで、敵に衝突すると銃貫通ダメージを与えますが、弾丸のように消滅はしません。複数の敵を貫通してダメージを与えることができます。同サイズの弾丸と威力と弾速は同じですが、サイズによっては消費OPが少し大きくなります。実弾の場合は親モジュールになることはできません。
線形状のため、先端だけでなくレーザーが残っている軌跡に0.5秒間(15f)分の長さの当たり判定があります。代わりに進行方向への当たり判定の「面」の広さは同サイズの弾丸よりも狭いです。
どちらも様々な種類のモジュールが用意されていますが、サイズが同じなら威力は基本的に全て同じです。消費OPは射程や挙動によってそれぞれ設定されています。
1fごとの点を線で結ぶように判定が作られているため、平面な地表に衝突させる際に前述の”点”が地表面に完全に重なると衝突を起こさず地表をすり抜けます。これは地面がソリッドではなく、ペラい面でできているためと考えられます。この仕様上、弾丸やレーザーを使用して地形衝突させる類のバレットは設定次第で稀に不発を起こすことがあります。
2.1.1.直進モジュール
直進する弾丸・レーザーモジュールです。射程は「極短い」「短い」「長い」の3段階あり、SS~Lまでの4段階のサイズに存在します。
1fあたりに進む距離(すなわち弾速)が決められており、何かに衝突する等して消えない限り生存フレーム数の分だけ進みます。その特性上、同じ射程を選択しても厳密にはサイズによって微妙に射程は異なります。
Mサイズの直進モジュールが1フレームあたりに進む距離を1.0としたときの、各サイズにおけるその距離は
SS=1.5,S=1.2,M=1.0,L=0.80
で表現されます。今後、このMサイズ弾の1fあたりに進む距離を基準とした表現が何度も登場します。1.0よりも50とかの方が分かりやすいかもしれません。必要があればその時修正します。
ポイント
直進モジュールの射程はモジュールの生存時間によって管理されていると考えると分かりやすいです。例えば、「極短い」の射程であれば、Mサイズの弾速で5f生存させたときの射程を基準とすると、Lサイズの弾速で6f生存させれば似たような射程になります。Sサイズなら4f、SSサイズなら3f…という風に、弾速ごとに生存時間を設定することでおよそ同じ長さになるようできています。よって、厳密には同じ射程を選択してもサイズによって微妙に射程が異なります。
極短の場合,その射程はサイズごとにM(5.0) > L(4.8) = S(4.8) > SS(4.5) の順となります。
次の表にサイズ、射程ごとの生存時間(フレーム数):fと、Mサイズの直進モジュールが1fに進む距離を1.0とした時の射程:mを示します。ここではfとmは単位として、SとLは代表的な変数名ということにしておきます。
最もよく使うモジュールだからこそ、しっかり理解しておきましょう。
2.1.2.回転モジュール
基準となる座標を中心として反時計回りに、真円上の複数の点を直線で結ぶような軌跡を描くモジュールです。直進モジュールとは違い射程ではなく特定の半径(直径)ごとに「狭い」、「通常」、「広い」の3段階が設定でき、SS~Lサイズの4段階のモジュールが存在します。回転の中心となる座標を親モジュールに追従させることができる「追従回転」が別途用意されています。
生存時間は基準となる位相から2周だけ回転するまでの時間となり、サイズが大きいほど回転速度は遅く、生存時間は長くなります。
半径(直径)が大きくなってもサイズが同じであれば同じ見かけ上の角速度を持つため、言い換えれば径を大きくするほど位相速度(周速)は大きくなり、時間あたりの移動量は多くなります。
回転の基準となる座標は円の中心ですが、これに子接続した子モジュールの発生位置は当該フレーム時の円周部となり、その向きは回転中心と発生位置を結んだ方向すなわち円状軌跡の法線方向になります。
回転モジュールの半径は,Mサイズの直進モジュールが1fに進む距離を1.0としたとき…
「狭い」 1.0 「通常」 2.0 「広い」 3.0
となっています。
他モジュールと比べて特殊な動きをする関係なのか理由は定かではありませんが、1f遅れて発生するのが特徴です。発生が遅れている間も回転自体は進行している扱いのため、1f分だけ回転も進んだ状態で発生します。例えばSサイズの回転の場合、1fあたり30°回転するのですが、先述の特性により既に30°回転した位置からモジュールが出現します。
この特性ため、回転モジュールと同時に子接続すると、発生の遅れを含めて2f経過することになります。この特性はしばしば同時ヒット減衰回避のための機構や専用バレットのタイミング調整などに取り入れられることもあり、非常に重要です。
追従回転は後述する回転制御と組み合わせることで、ペンタ機構や着弾タイミングの調整、斜角の参照など様々な用途に利用されます。また、空中でも使用できる速射機構(回避弾)や、親モジュールとの組み合わせ次第で綺麗な軌跡になることからネタバレットでもよく使われます。
※ポイント
冒頭でも少し触れましたが、真円を複数点に等分し1フレームごとに直線でその点を結ぶように移動することで回転を表現しているため、厳密には円ではありません。サイズごとに円の分割点の数を設定することで見かけ上の角速度が決まっていると言えます。
サイズや半径によって点同士の距離すなわち1フレームに進む距離が変化するため見かけ上の周速は半径ごと、サイズごとに全て異なります。
直進モジュールではサイズごとに生存時間(生存フレーム数)を設定することで各射程が決まっていましたが、回転モジュールでは初期位相から2周という回転量の上限が決まっており、サイズごとの1周あたりの分割点の数の2倍から1引いたものが生存するフレーム数と考えられます.(1f遅れて発生するため)
1周あたりの分割点の数と生存時間、見かけ上の角速度をサイズごとに表にして示します。ここでは角速度の単位時間を1fとして考え、角度はラジアン(rad)ではなく度(degree)で考えます。よって単位はdegree per frameでdeg/fとします。
衝突時で子接続する場合に中途半端な位置で衝突したとき、子接続したモジュールの基準位置は衝突した座標のまま、向きは衝突前の次の位相と回転中心を結んだ方向が基準になる場合があります。
応用例は多岐に渡るため紹介しきるのは困難ですが、分かりやすい機構や利用例をいくつか取り上げます。特性を理解し、利用法を編み出していきましょう。他人の動画を参考に勉強するのも幅を広げるのに非常に有効です。
①Φ機構
同時ヒット減衰の防止(3f間隔)かつ同一座標での発生
Mサイズレーザーの1f分の進行距離&狭回転の半径が一致すること、回転モジュールの発生が1f遅れる特性を応用していますね。
②折り返し機構
回転の半径分だけ手前で折り返す。回転の発生遅延1f分の時間稼ぎも兼ねる。
S回転は同時に子接続すると上述の通り2f分の回転で計60°回ります。左120°に設定すると同時に子接続した子モジュールの向きと合わせて丁度180°反転します。直径を変えて色々な調整に使えます。
図2.2 折り返し機構
⓷タイミング調整機構
極めて実践的な例。回転を地形に衝突させ、その後に続くモジュールの発生を衝突後に設定することで、親モジュールの回転の角度を調整するだけでヒットタイミングの微調整が容易にできます。モジュール数があれば回転制御との組み合わせで、より調整の幅が広がります。
提供:@mashikophys
④地形との衝突を避けて地中にバレットを埋める/出す
バレットを地中に埋めたい時、あるいは地中から出したい時、地表に衝突してから直進モジュールを出すような構成にすると、斜面や凹凸等に吸われてしまい不発してしまった。。なんて経験はないでしょうか。回転の中心となる基準座標と子接続時の座標が離れる回転モジュールは、地表との衝突を減らして安定化を図りたい時にも使えます。
2.1.3.きりもみ弾丸
時計回りに回転しながら直進する弾丸モジュールです。射程とサイズの選択肢は「極短い」「短い」「長い」の3段階あり、SS~Lまでの4段階のサイズに存在します。
基本的には上述した直進モジュールと近い特性を持ちます。1fあたりに進む距離と回転する角度が設定されている点以外はほぼ同じです。
サイズと射程によって1fあたりに回転する角度がそれぞれ設定されているのが特徴であり、自然消滅するまでの間に回転する角度の総和がおおよそ一定に近い数字になるよう調整されているようですが、必ずしも計算が一致するわけではありません。
1fあたりに進む距離に関しては概ね通常の弾丸モジュールと同様ですが、きりもみのSSサイズのみ1.3となっています。これは通常の弾丸モジュールサイズS(1.2)とSS(1.5)の中間的な位置づけになります。詳細は下表を参照のこと。
余談ですが、きりもみ弾丸SSサイズに関しては、GE2RBとGERで振る舞いが異なります。本ブログの表はGERをベースにしています。上表を参考にする場合はご留意ください。他の部分はおそらく同じです。
応用例
きりもみと追従回転モジュールを組み合わせることで素早く抗重力の移動距離を稼ぎつつ、任意の方向にバレットを運ぶ”きりもみペンタ機構”などが有名です。
参考例を貼っておきます。セクメトの処理に使用しているバレットの構成に注目。
後に別途解説する上下を向く制御の特性も組み合わせた高度なエディット、圧巻ですね!
当ブログを読んでいけば、レシピを見るだけでそれぞれのモジュールの意味とバレットの挙動、カメラワークの理由が理解できるようになることを目指して解説していきます。
提供:@mashikophys
同じくきりもみと回転モジュールと組み合わせることで魔法陣を描いたり、特殊な軌跡を描いたりできることからネタバレットでも活躍します。
#ネタバレット
— nisshiy (@kumin_nisshiy) 2023年6月24日
反転術式:爆
逆転する2つの位相が重なり合うとき
収束 爆発する pic.twitter.com/vXIkIwdE9P
六芒星
— nisshiy (@kumin_nisshiy) 2023年6月24日
きりもみネタで分かりやすいのはこのあたりですか。
あとは適当な魔方陣書いて色々飛ばせます。https://t.co/TH9oJsfABI pic.twitter.com/pLoSLaxRZW
きりもみ弾丸と追従回転の特性表を見てお気付きの方も居るかもしれませんが
例えばMサイズの長いきりもみ弾と、SSサイズの回転モジュールは角速度が同じです。(36deg/f)
この2つを逆位相で組み合わせれば、”1つのきりもみ弾と平行に飛ぶ回転弾”を作ることもできますね。
なぞのきじゅつ pic.twitter.com/KsFMLq2vdX
— nisshiy (@kumin_nisshiy) 2023年7月30日
※なぞのぎじゅつ
同じ組み合わせで、今度は同位相で組み合わせると36+36=72deg/f となり、この数字は5角形の内角になります。こんなバレットも、狙って作れるわけですね。
#ネタバレット
— nisshiy (@kumin_nisshiy) 2023年6月20日
ペンタグラムハリケーン
五角形の中に織り込まれた星形放射が敵を焼き払う。
遠くで当てるほど威力uphttps://t.co/iXLi2X46KS pic.twitter.com/6NqFdLulWq
回転ときりもみ、2つの表を見合わせていくと色んな組み合わせや幾何学模様が浮かんできませんか?
また、効率よく上下移動量が稼げる組み合わせはどんな組み合わせでしょうか?
表を見ているだけで楽しくなってきますね。フフフ。
2.1.4.湾曲モジュール
発生後、上から下に一度だけ湾曲して進むモジュールです。SS~Lサイズの4段階に存在し、湾曲する位置を「手前」、「中間」、「奥」の3段階で選ぶことができ、回転角を付ければ湾曲する方向を変化させられます。
サイズごとの軌道に特段の違いはなく、消費OPは直進モジュールよりも少し重めです。
湾曲部分は回転モジュールと同様に複数の点で分割された間を1fずつ繋ぐように表現されており、その分割点の数と位置はモジュールのサイズによらず一定です。
そのため、湾曲部分に限ってはサイズによらず同じ弾速で進行し、直進部分はサイズによって異なる速度で進むという特性があります。概ねこの程度の理解で困ることはないでしょう。
特に手前湾曲は他の2つと比べて大きく湾曲するため、壁安定機構や銃身の短い一部ブラスト等では速射機構にも用いられる他、高さの調整など様々な場面で使えるため専用バレットでも活躍の機会は多いです。
ほんの一部ですが、湾曲で使える応用例をここでいくつか紹介しておきます。
①手前湾曲方向と反対に3°傾けると綺麗なL字状のモジュールとして扱えるため、壁安定機構に重宝します。
②前述の通り、銃身の短いブラスト等であれば手前湾曲の向きを湾曲する側に120°傾け、同時に球を子接続することで速射機構になります。長い銃身では不発します。
図2.3 湾曲速射
⓷奥湾曲は射程が長く、終端でかぎ爪のように湾曲するため、1モジュールで大きく移動量を稼ぎつつ省モジュールで折り返す必要がある時などに重宝します。
図2.4 奥湾曲による折り返し
良い利用例があるのでリンクを貼っておきます。ペンタ機構を利用したバレットの参考にもなりますね。
提供:@mashikophys
2.1.5.重力の影響を受ける弾(抗重力)
読んで字のごとく重力の影響を受けて鉛直下方向に加速していく弾丸モジュールです。L、LLサイズの2段階のみ存在します。重力の影響を受けて起動が変化しても、モジュールの向きは発生時の角度のまま固定されているのが特徴的です。
GE2RBで言うところの抗重力弾が”上下動で強化”というモジュールで別途用意されています。子接続したモジュールのOP消費量が20%増える代わりに、モジュールが上下に移動するほどダメージ倍率、モジュールのサイズがアップする効果を持ちます。ただしその恩恵が付与されるのは当該モジュールに子接続されたモジュールのみです。親モジュールには効果付与されず、OP消費量も変化しません。
爆発や放射、制御や弾丸・レーザーなども大きく・太くなり、当たり判定も合わせて大きくなります。
抗重力のダメージ倍率は最大で1.8倍になり、最大倍率到達に必要な上下移動量はMサイズの直進モジュールが1fに移動する距離を1としたとき15です。上下移動が無いと、等倍よりも倍率は落ちてしまい無駄にOPを喰うだけになります。(最低:0.8倍)
できる限り最大倍率を乗せるのが効率としては良いですが、早く当てることが重要な場合は割り切ってしまう等、状況に応じて使い方を考えていきましょう。
上昇したダメージ倍率は、他の威力上昇効果を持つモジュールと併用した場合加算されます。
最大倍率までの移動量と倍率の関係は0.8倍~1.8倍までの間で、3段階で概ね線形に表されます。
倍率では1.1倍と1.6倍 移動量では1.5mと10mを境に、移動量に対する倍率の上昇率が低下します。
上下移動量のカウントは、当該モジュールだけでなく、その親モジュールや子接続したモジュールの移動量も含めた総和になります。ただし、親から子接続するまでの間の移動量のみを積み上げていくため、子接続した後の親モジュールだけをいくら動かしても、最終的に効果を付与したい子モジュールの倍率に寄与する移動量は稼げません。
子接続別の移動量カウントについて
①自然消滅時で子接続した場合
移動量のカウントが完全にリセットされます。
②~の発生から〇秒後で子接続した場合
当接続を”~と同時に”接続した時と同じ冒頭の1f分の移動量だけがカウントされます。例えば0.2秒後(6f後)で子接続した場合でも、5f分の移動量はカウントされません。
⓷衝突時で子接続した場合
移動距離のカウントはモジュールが1fに移動する距離を最小単位として切り上げられます。例えばL弾丸(0.8m/f)が鉛直に移動していて、距離4.9の位置で地形に衝突したとしたら、移動距離のカウントは5.6に切り上げられます。(0.8の倍数ですね)
斜めに移動しているなら三角関数をかけてください。回転の場合も同じように、次の点の位置までの移動量で切り上げてカウントします。
これまでに"ペンタ機構"というワードが頻出したかと思いますが、追従回転を複数重ねてこの移動量を素早く稼ぐ機構が主にそう呼ばれています。上下動で強化(抗重力)の上下移動に限らず、後述する超長距離弾の移動距離を稼ぐのにも使われます。
余談ですが、最大倍率はGERでは1.8倍ですが、GE2RBでは2.4倍です。
重力弾の挙動についてですが、空気抵抗の概念はなく、一般的な放物運動の物理法則に当てはめて表されます。各サイズの初速と重力加速度、重力弾の経過時間における移動距離の計算方法について記載しておきます。(鉛直上方向を正とします)
鉛直方向移動座標:y
水平方向移動座標:x
初速:V(m/f)
重力加速度:g (g=0.02m/f^2)
経過時間(フレーム) :t
水平方向に対する撃ち出し角度:θ
x=Vt(cosθ)
y=Vt(sinθ)-1/2×gt(t+1)
注意点としては、重力を受ける弾が発生する瞬間から重力加速度の影響を受け始めているためか、一般的な放物運動の公式とは若干計算を変える必要があります。
重力加速度のみによる移動量は 1/2×gt^2 ではなく、1/2×gt(t+1)で計算すれば合うため、上記のような式で表現しています。
三角関数の部分は重力弾を水平に対してどの程度上下に振って撃ち出すかによる部分を表現しています。
例えば sinθ は、真上なら1、真横なら0、真下なら-1ですね。上30°なら1/2ですね。
ごく初歩的な高校物理(数学)なので、時間のある方は電卓やスプレッドシート等で動きを計算してみましょう。こうやってゲームって作られてるんだなぁ、みたいなことに思いを馳せてみるのもたまには良いものです。
簡単な演習
以下の画像のバレットでは、高さ20.7の位置から重力弾を水平投射して1.5秒後(45f後)に制御を出し、自キャラに向かってSS弾丸(弾速1.5)で0.5秒(15f)かけて戻すような動きをさせています。
7モジュール目と8モジュール目の制御の位置が重なるようになっています。
動きはイメージできましたか?
この場合 θ=0 のため
重力弾の45f分の水平移動量:x=Vt(cosθ)=0.5×45×1=22.5
元の座標にに戻すにはSS弾丸(弾速1.5)で15f移動→1.5×15=-22.5
重力弾の45f分の鉛直移動量:y=Vt(sinθ)-1/2×gt(t+1)=0.5×45×0-1/2×0.02×45(45+1)=-20.7
予め20.7の高さを稼ぐには、表2.1より、Sサイズ短い弾丸の射程(19.2)と、SSサイズ極短の1f分の距離(1.5)で
19.2+1.5=20.7
これでピッタリですね。
2.1.6.ホーミング弾
Lサイズにのみ存在し、縦、横、全方向の3種類にホーミングするモジュールが用意されています。
弾速は通常のL弾丸と同じであり、発生時点で対象に向かって最大で10°の角度補正を持ちます。以降、対象を追って毎フレーム最大で2°ずつ傾きながら進行していきます。(2deg/f)
射程は直線で30.4、生存38fですが、ホーミングで湾曲が発生した場合には実態としてはもう少し射程は伸びて見えます。
ホーミングされる敵の部位は、アラガミによって異なり、1部位で固定です。大抵の場合は胴体が多い印象ですが、鳥や戦車系のアラガミは顔、魚は背びれにホーミングします。過去作では俗に言う脳天直撃弾が猛威を振るいましたね。
利用例として
十分に高い位置or地中深くからホーミングさせて素早く高精度に敵にバレットを当てたり、上下を向く制御と組み合わせて敵の居る方角を素早く参照させるといった使い方が多いでしょうか。先ほどご紹介したアーティファクトTAでも使用されていましたね。
専用...というよりは汎用バレットに近い使い方です。
余談ですが
対象がホーミングの弾の円弧の内側にいる時、複数のホーミング弾を繫げていくと6秒(180f)かけて1周する半径約23mの非常に大きな円運動になり、その径はおよそエイジスと同程度になります。
ロケットホーミング弾については、正直なところあまり出番が無いため省略します。
ここまで読んでいただきありがとうございました。
気付けば弾丸・レーザーの解説だけで8,000文字を超える記事になってしまいましたね。
まだまだ主要なモジュールはあるので解説は続きます。頑張りましょう。
次記事
またそのうち