GODEATER 専用バレットエディット概論 1章 エディットの基礎(3/3)

前記事↓

kumin-nisshiy.hatenablog.com

 

 

 

~前回のお話し~

  • 子接続の各条件の仕様について解説
  • 銃身ごとに銃口の位置は異なる
  • 属性によるモジュールの持つ特性の違い

 

 

 

エディットの基礎もいよいよ大詰めですね。

今回は角度付けについて解説していきます。かなり長いですよ。

 

1.10.角度

 各モジュールには左右角、上下角、回転角の3つを設定することができます。

 

左右角と上下角は最大で -120°~+120°まで1°単位で調節可能であり

回転角は-180°~+180°(360°)の調整が可能です。

 

前回の子接続の項で解説した通り、親モジュールの無い(子接続:ボタンを押したら)モジュールは銃口の向きを基準として発射されます。子接続したモジュールの場合は、発生時の親モジュールの角度が基準となって設定した角度が反映されます。

 

 以下の図は、調節可能な3つの角度の範囲を銃口または親モジュールの向きを基準としてXY、YZ、XZの3つの2次元座標系で表現したものです。基準とする向きをY軸方向とし、その横方向をX軸、上下方向をZ軸としています。

 

f:id:kumin_nisshiy:20190119211550p:plain

図1.2 角度設定の座標系

 

 モジュールの左右角、上下角、回転角を同時に設定した場合には、それぞれが反映される順序が存在します。これを理解することで込み入った角度の調節も非常にスムーズになるので是非マスターしてほしいところです。結論から述べると

 

左右角→上下角の順で反映され,回転角は独立して反映される

 

と言えます。

 

~余談~ 過去作の角度設定について

 モジュール角度の1°単位での調節と回転角の仕様が導入されたのはシリーズ第3作のGE2からです。それ以前の作品(主にGEB)の専用バレット群は現在の仕様と比べて非常に限られた条件の下で製作されていました。

左右角・上下角がそれぞれ0°,±15°,±30°,±45°,±60°,±90° ,±120°のみ設定可能であり、細かな調節は困難を極めました。

 

また、回転角の概念が無かったため、回転弾丸などは右回りと左回りの両方のモジュールがそれぞれに用意されていたり、湾曲弾も同様に通常湾曲,右湾曲,左湾曲などで複数の別個のモジュールとして別けられていたりしました。

現在では角度設定の自由度は飛躍的に向上しており、その分だけ非常に複雑になったとも言えるでしょう。

 

また、後述する特殊な制御モジュールを用いることで角度情報を地軸に対して特定方向にリセットしたり、基準となる向きに対して上下角のみをリセットしたりと様々なことができます。この特性を応用した技術は一部の専用バレットを作る上で必須になります。

 

 

1.10.1.角度設定の反映 初級(左右角と上下角)

 ここからは角度設定の反映順について解説していきます。いきなり回転角を交えて考えると複雑になるので、まずは基本となる左右角→上下角の反映順について具体例を示しつつ確認していきましょう。

 

 はじめに、シンプルな直進弾丸を考えます。この弾丸に対し(+45°,+45°,0°)の角度を設定したとき、これは右前方斜め上に向かって飛ぶことが容易に想像できます。

では、この角度は具体的にはどのような向きなのでしょうか?

この弾丸について,先程示した[左右角→上下角]の反映順を適用すると…

 

まず弾丸は右45°を向き、その状態を基準としてさらに上に45°傾く

ということになります。

 

すなわち、(+45°,+45°,0°)を設定した弾丸は、右45°の制御から上45°の弾丸を子接続したものと進行方向、傾き的には同義であると考えて良いでしょう。

 

次の図を見ても分かるように,上記の2つは完全に重ね合わせの状態にあります。

f:id:kumin_nisshiy:20190119212745j:plain

f:id:kumin_nisshiy:20190119212720j:plain

図1.3 角度反映の基本法則の例

 

このように、まず左右角が反映され、その角度を基準にして上下角が反映されていることが分かります。

では、この反映順序を逆にしたものと比較するとどうなるのでしょうか?

f:id:kumin_nisshiy:20190119213233j:plain

f:id:kumin_nisshiy:20190119213221j:plain

図1.4 反映順序の比較1

上図から分かるように角度の反映順序を逆にすると異なる軌道になっています。

この氷弾丸は上45°を向いた状態、すなわち軸が上45°に傾いた状態から左右角を回すような設定となるため正しい反映順序とは根本から挙動が異なり、上45°に傾けた回転弾の軌道と交わる点を通ります。

 

 今度は角度をより極端にし、子モジュールとして上90度の追従放射をつけて反映順序の違いを分かりやすく示すと次のようになります。順序を意識してレシピと挙動をよく見て確認してみましょう。

 

2本の装飾レーザーから上90°の追従放射が出ており、どちらのレーザーにも等しく右90°と上90°の角度を与えていますが、反映順序のみを逆にしてあります。

f:id:kumin_nisshiy:20190119213649j:plain

f:id:kumin_nisshiy:20190119213641j:plain

図1.5 反映順序の比較2

 

火属性の装飾レーザーは一度右90°を向いてから上90°に傾くため、進行方向は真上となり、単純に上90°だけを設定した直進レーザーを左90°だけ捻った状態と同じになります。

つまり上90°の追従放射はキャラクターから見て左側に出ることになりますね。

氷属性の装飾レーザーについても同様に考えれば氷放射の出ている向きにも納得できることでしょう。

 

1.10.2 角度設定の反映 中級(回転角の利用)

 ここまでで、左右角と上下角の反映順序については理解いただけたでしょうか。

これを踏み台にして、次に回転角を設定した場合についてどのようになるのか解説していきます。ここから少しレベルが上がるので頑張ってついてきてください。

 

 回転角はモジュールそのものに対して回転を与えるため、モジュールを捻っているように見えます。よって、ここでは回転角を表現する時に、ひねるまたは捻じるという表現を用いる場合があります。

図1.2で示したように、右回転が+で、左回転が-です。回転角の反映は左右角,上下角とは独立しています。よって、左右角、上下角と同時に設定するときの考え方が次のように3通り存在します。

 

左右角→上下角の順で角度を反映した後で、回転角の分だけモジュールを捻じる

指定した回転角だけ捻じりを加えられたモジュールに対して、左右角→上下角の順で角度を反映する

左右角を反映した後でモジュールを回転角の分だけ捻じり、捻じられたモジュールに対して上下角を反映する

 

いずれで考えても結果は同じですが、挙動を考える上でどの方法が理解しやすいかは製作者の好みや構成によって変わります。

 

 回転角と上下角、左右角を同時に付与した直進モジュールの挙動を調節するときにありがちな間違いとしては、左右角、上下角を考える際に回転角の影響は考慮する必要が無いことです。

例えば、「直進弾の回転角を左90度に設定したので、真上に飛ばしたいなら捻りを考慮して右90度を与えなければならない」ということはありません。

左90°に回転角を設定していても単純に、上90°を設定すれば左に90°捻じれた直進弾が真上に飛んでいくわけです。よって、回転角の影響を受けるのはむしろその子モジュールであるとも言えます。

 

 

  今回も具体例を示しつつ見ていきましょう。

 

f:id:kumin_nisshiy:20190120002111j:plain

f:id:kumin_nisshiy:20190120002154j:plain

図1.6 (0°,+90°,-90°)直進弾

上図の場合は上下角と回転角のみを設定しているので...

⓵上90°の弾が左90°に捻じれる

⓶左90°に捻じれた弾が上90°に向く

の2通りで考えることができますね。

 

 

 さて、回転弾や湾曲弾に回転角を設定するとモジュールそのものの挙動が変わってしまうため混乱しがちですが、これらについても焦らず落ちついて考えましょう。

湾曲弾の場合は直進弾と概ね同じように考えて問題ありませんね。

f:id:kumin_nisshiy:20190120003015j:plain

図1.7 (0°,+90°,-90°)湾曲弾

 

回転弾ではどうでしょうか?

例えば、±90°の回転角を与えた回転弾の位相をずらすためには、左右角ではなく上下角を調節すればよいことになります。 実際にエディットして確認してみましょう。

f:id:kumin_nisshiy:20190120003053j:plain

図1.8 (0°,+120°,-90°)回転弾

この場合の回転弾の考え方は

⓵回転弾が上120°に傾いた状態から左90°に捻じれる

⓶左90°に捻じれた回転弾の位相を120°だけ回転方向の反対側に戻す

の2通りとなります。どちらででも考えることはできますが、筆者としてはこの場合、後者の考え方をおすすめしたいところです。

上下角+120のところを、+120~+30°程度の範囲で動かしてみましょう。回転弾の位相の変化が分かるはずです。


 

 さて、ここで回転角の設定において陥りがちなミスについて説明しましょう。

回転角の設定は「モジュールそのものを捻じる」という特殊な操作であるため、予め別モジュールで左右角や上下角を設定した当該モジュールに回転角を与える等とすると全く異なる挙動になってしまう点に注意する必要があります。

回転角を設定するのはあくまでも捻じりたいモジュールにすると考えておけばミスは減るでしょう。

f:id:kumin_nisshiy:20190120003918j:plain

f:id:kumin_nisshiy:20190120003932j:plain

図1.9 回転角の注意点 2つの異なる挙動

上図のバレットでは、2つの回転弾にはそれぞれ同じように上下角、左右角を与えていますが、回転角の反映だけ別モジュールで行っています。見て分かるように、これでは異なる軌道を描いていますね。

 

f:id:kumin_nisshiy:20190120004531j:plain

f:id:kumin_nisshiy:20190120004550j:plain

図1.10 回転角の注意点 3つの同じ挙動

上図のように、回転角を与えるモジュールさえ合わせれば、角度反映の法則にしたがって同じ挙動になりますね。

 

 1.10.3.角度設定の反映 上級(応用・実用編)

 ここではこれまでの知識を活用して、複数のモジュールを用いた角度設定に関する実践的かつ複雑な挙動を、いくつか例を挙げつつ考えてみようと思います。まずは1つ例を示しておきましょう。解説に丁度いいよさげな例を思いついたら追記していきます。

この項の一部の内容についてはある程度の予備知識を要するため、よく分からない場合はまた後で読みに来ることを推奨します。

 

例1

 地形を回避して遠方に実弾を運ぶため、装飾弾を斜め上方向に撃ち出すような構成を採用したとします。この装飾弾に子接続したモジュールを任意の方向に向けようとするとき、どのように角度を設定すればよいのでしょうか?

例えば、銃口から右斜め上方向(+45°,+30°,±??°)の直進弾を撃ち出したとしましょう。これに子接続した直進弾を、銃口の向きに対して(0°,0°,0°)となるよう真っ直ぐに飛ばしたい場合、どのように角度付けを行えばよいのでしょうか?

 

角度反映の順序を考慮した上で、回転角を利用すると次の図のような構成でこれを実現できます。

f:id:kumin_nisshiy:20190120005452j:plain

f:id:kumin_nisshiy:20190120005510j:plain

図1.11 角度設定の応用1

分かりやすいように上90°の放射を追従させています。

上図では、子モジュールの左右角が上下角よりも先に反映されることを見越して、予め親モジュールに±90°の回転角を与えておくことで捻じれの発生を回避しています。

さらに元の射線に戻すようにモジュールを加えていくと次の図のようになりますね。実際にエディットして確かめてみましょう。

f:id:kumin_nisshiy:20190120005659j:plain

f:id:kumin_nisshiy:20190120005713j:plain

図1.12 角度設定の応用2

 

余談

 回転角を一切使わない場合、オイラー角やクォータニオンといった3次元の回転変換を行う数学知識が必要となる上に、1°単位でしか調節できない都合上、多くの場合で所望した角度に軌道を合わせられる解が存在しません。さらには捻じれまで残り非常に面倒になります。

気になる諸兄はオイラー角やクォータニオン(Quaternion:四元数)について調べてみるといいでしょう。要するに…回転角はいいぞ!

 

 

これにてエディットの基礎は終了です。お疲れさまでした。

角度付けに関しては今まで深く意識したことがない方も多かったのではないでしょうか?この解説が参考になれば幸いです。

 

↓次記事

kumin-nisshiy.hatenablog.com