Darkside(リンクエラー修正しました)

2017年09月の記事

<< 前のページ

2017年9月25日(月) 21:21

表記タイム

 ところで、想定タイムから8フレーム短縮できた場合、ゲーム内タイム表記は3分05秒01である。ここから更に1フレーム短縮したら、どうなるか?

 初代 F-ZERO のタイム計算は酷いもので、0.01秒増加と0.02秒増加が交互に行われる。中間値の計算は行われない。そのため、1フレームの短縮でタイムが0.01秒短縮される場合と、0.02秒短縮される場合がある。よって、3分05秒00になる場合と、3分04秒99になる場合がある。
 走行開始時に奇数フレームであるか偶数フレームであるかの違いだけで、同じフレーム数で走っても3分4秒台と3分5秒台に分かれる。
 そして遺憾ながら、今製作中のTASでは3分05秒00なのだ。

 かと言って前コースの結果表示を終了させるためのボタン操作を1フレーム遅らせ、3分04秒99になるようにしても、今度は乱数が変化してしまう。
 いや、まてよ・・・

 既にここまでデスウインド2などで、表記0.01秒の損は食らっている。だから、表記タイムではなくフレーム数で勝負する方針に変更した。3分4秒台を1フレーム手繰り寄せるだけのために、ボタン操作に無駄な1フレームの待ちを挿入するのは美しくない。
 だが、単に表記タイムを得するだけの目的ではなく、乱数調整という正当な目的があったら?
 1フレームの挿入では、ソニックスタート1段目の乱数は変化させられない。逆に言えば、挿入しても超高速ソニックスタートの1段目は再現可能なはずだ。そして、ソニックスタート2段目以降の乱数は変化する。これにより
faster 解が生まれれば、1フレームの挿入を正当化可能だ。

 試してみるだけの価値はある。
 期待外れだったら、もう3分4秒台とか諦めて現在の製作をそのまま継続させれば良い。

 こうして無駄な1フレームの待ちを挿入したところ、驚愕の事実が判明。何と、全く乱数が変化しない。全体が1フレーム遅延した状態で、走行もライバルカーも、全く同一に再現される。
 デスウインド2で Dsync したのは何だったんだ?
 当時1フレーム挿入の作業を行ったとき、何らかの操作ミスを犯したのかもしれない。いまいちど、デスウインド2の調整を行ってみよう。

 デスウインド2に1フレーム入れると、やはり Dsync した。変わって欲しいファイアーフィールドでは変化せず、変わって欲しくないデスウインド2では変化してしまう。ムカつく!
 しかし勘違いも判明。現状でファイアーフィールドは、奇数フレーム数で得をする側だったのだ。1フレーム挿入する必要はなく、9フレーム短縮すれば良かった。とはいえ4周で9フレーム短縮は、とんでもなくキツい。キツくないとしたら、2周目が遅い。邪魔カーがどうなるのかも、五里霧中だ。

 まあ駄目なら駄目で仕方ない。3分4秒台はもしかしたら、理論的に不可能なのかもしれないのだから。
 それに、5周目最後で1フレーム何とかならないか?という希望もある。まずは2周目を2416フレームで走るよう頑張ろう。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2017年9月24日(日) 20:32

少しは速くなるが

 2周目まで製作し、想定タイムが判明した。3分4秒台を狙おうとすれば、その想定タイムから10フレームも短縮せねばならない。
 今のところ思い付く短縮可能な場所は、1周目の超高速ソニックスタートと2周目以降 S-JET 噴射直前である。

 超高速ソニックスタートは妙に運に恵まれた部分があり、いきなり最速パターンを引いた。しかし普通に考えて、一発で最速パターンを引く確立は小さい。すなわち、まだ調べていないパターンの中に、faster
解が存在するかもしれない。
 そこで調査パターンを広げてみた。だが、faster 解は無い。これはもう最初の製作当時に相当念入りに最適化したのは覚えている。もはや、どうにもならないようだ。

 そこで次に、S-JET 直前を検証する。
 S-JET の最適化では、速度が4の倍数に揃うことが重要である。この場合の速度とは画面に表示される時速ではない。メモリー内部に保持された、ナマの速度値である。内部で速度2048のとき、時速400キロと表示される。そして最高速478キロは、内部では2304である。そう、比例していない。画面に表示される値は、演出に過ぎない。
 S-JET を噴射すると、1フレームごとに内部速度が256アップする。しかし、2560を越えることはない。計算すると2560を越える場合、加速は行われずに逆に4減速する。そして、いったん減速が始まると1フレームごとに4減速され続ける。こうして速度が2304以下になると、再び加速フェイズに入って1フレームごとに256上昇する。

 だから、4の倍数になっていないと 2559→2555→2551→・・・→2307→2303→2559→2555 という感じで、延々と内部速度の損が続くのだ。

 そこで通常は、噴射開始の瞬間の内部速度が4の倍数になるよう調整する。
 しかし、ファイアーフィールドでは S-JET の最適化にモンテカルロ法を使っている。その結果を見る限り、4の倍数に揃える意味が薄い。ガードビームに接触しまくっていると、噴射中に4ずつ綺麗に速度が変化するようなことはない。普通に走っていて、4の倍数など簡単に外れる。最初に揃えても、すぐに狂う。
 だとすれば、4の倍数以外の初期値の中に faster 解が埋もれているかもしれない。

 こっちはビンゴで、一見すると損な初期値の中に速いものが紛れていた。これで1フレーム以上速くできそうだ。つまり、WIP最速ラップと同等以上のラップは実現可能だ。
 こうして最大の謎は解明できたが、1フレームかせいぜい2フレーム短縮できるかもしれないというだけでは、3分4秒台に届かない。
 2〜5周目で合計10フレームの短縮が必要なのであり、しかもそれは邪魔カーに致命的な邪魔を受けないという前提での話だ。ここまでのコースでは、そんな前提は成立していない。そしてファイアーフィールドは、少なくとも人力実機プレイに関する限り、最も邪魔カーが酷い。

 そもそも超高速ソニックスタートで、いきなり致命傷食らったし(あれがなければ普通に3分4秒台が出せるのでは?)

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2017年9月23日(土) 19:22

凝り過ぎないよう

 コイルを4つ用意した2直列2並列構成だと、順番に通電することで4段式モドキが可能となる。
 これはパイルバンカーの威力をアップさせ、射程(リーチ)も延ばせるという大きなメリットがある。しかし、それは机上の考えだ。

 まず、同一コイルに短時間のうちに2回通電するのは難しい。コイル電源がバッテリーや送電線で電力が常時供給されるならまだしも、パイルバンカーの電源はコンデンサーである。1回の通電を行うと、チャージに時間を要する。だから、単時間に2回の通電は電源が2系統必要になる。更にその場合、スイッチング素子はコイルのハイサイドに設置せねばならない。
 GNDが浮いているスイッチは、実装が一気に面倒になる。

 頑張って実装しても、後半はプロジェクタイルの片側しか加速できない。確かに加速しないよりはパワーが上がるが、労多くして益少なしという気がする。
 こういう判断は、コイルガンを散々作った経験が無いとすぐにはできないと思う。

 また、射程(リーチ)が長いのも良し悪しだ。
 銃であれば、射程は長いに越したことがない。だが、パイルバンカーでリーチを長くすると、前方のシャフトが長くなる。パイルバンカーは大きな運動量が持ち味なので、長いシャフトに大きな力が加わってしまう。それに耐えられるようシャフトを頑丈にすれば、重量が増大する。
 パイルバンカーは重量大き目に製作するとはいえ、限度がある。これは、重量制限の厳しいドローン用なのだ。

 よって、加速は当初予定通り↑図の上2つまでとする。
 またプロジェクタイルを元の位置に戻すのも、バネを使用するのではなくコイルに通電して行う。これも、シャフトが長くなるのを防ぐためだ。バネを使うと、どうしても前方に余分な長さが必要になる。最小限の空間にバネを詰めたのでは、前進に伴ってバネの反発力が急増し過ぎる。
 戻す場合は高速移動の必要がないため、コンデンサーの電圧が低くても構わない。そうなると、引き戻し用電力のチャージは1秒の何分の1で済むだろう。

written by higashino [マルチローター] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2017年9月22日(金) 21:31

遅過ぎる

 まだ最終スクリプトが十分な初期値を処理していないため若干の変動はありえるが、2周目で1つの結論が出た。それは、予想されるトータルタイムである。

 2周目のラップは、36秒27と著しく遅い。
 WIPエキスパートクラスで4周目に36秒25を出しているから、もはや論外に遅い。
 問題は、この2周目はスクリプトでじっくりと複数候補を処理し、しっかりと速い走りが完成するように丁寧に製作したという事実だ。それなのに、遅い。1周前とは比較できないが、エキスパートクラス製作時の最速ラップより遅いのではゴミだ。大抵のコースはエキスパートクラスより遥かに速くなっているのに、どういうことだ?

 1フレームごとにゲーム内時計が0.01秒進んだり0.02秒進んだりする初代 F-ZERO において、タイム基準では厳密な話が出来ない。そこでフレーム数で話をすると、1周目が2705フレーム。2周目が2418フレームとなる。エキスパートの最速ラップが2417フレーム。

 ここで参考のため、2周目の最終部分を5周目のスクリプトで処理した。すなわち、ピットに入らずゴールラインを直に目指す。

 ピットの出口にはダッシュプレートがあるため遠回りでもピットインした方が速いのだが、5周目はすぐゴールなのでピットインしない方が速い。そして5周目のラップは、2〜4周目より速い。では、どれぐらい速いのか?
 それを確認した次第。どうやら、35フレームぐらい速いようだ。

 そこで3〜4周目を2周目と同じ2418フレームで走り、5周目を2383フレームで走ったとする。これで、トータルは12342フレームとなる。ゲーム内タイムに換算すると、3分5秒13だ。3分4秒台どころではなく、とんでもなく遅い。仮にこれが実現したとすると、WIP比で1周目が0.56秒も短縮されたのに、2〜5周目よってたかって0.1秒しか短縮できないということになる。

 3分4秒台を出すには12332フレーム以内で走らねばならず、合計10フレームも縮めねばならない。1周あたり2フレームだ。これは、可能なのだろうか?
 数字だけ見れば、2周目の2418フレームは訳分からないほど遅い。だから、2416フレーム以内に出来るのが当然に感じる。実際、このTASを製作する前は普通に可能だと思っていた。ここまでのコースは、WIPでのラップタイムをガンガン短縮できていたからである。

 ところが、しっかり腰を据えて製作したにも関わらず、2周目が激遅だ。手抜きしたもんな〜という自覚があればともかく、ガチガチに最適化したつもりなのに遅いからショックがでかい。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

2017年9月21日(木) 21:37

裏目

 コイルガン関連の残存リソースを確認し、愕然とした。
 ノウハウは過去記事を漁れば思い出せるが、問題は物理的な素材等である。
 回生型コイルガンは「人類には早過ぎる技術」だと判断し、コイルガンを趣味から除外。コイルガン関係の物体を大量に捨てたのだった。
 今すぐ使わないが、いつか使うかもしれない。そう考えて捨てずに取っておく物体によって部屋が埋まる。ありがちなその問題は非常に頭が痛く、悩んだ末にコイルガン関係を捨てまくった。
 最終盤に開発していた多段式コイルガンとか、そのために組み立てたスイッチング素子とか、消えている。そればかりではない。コイルを製作するための冶具も、消えている。これは、凄まじく痛い。単純な装置だが、製作にはかなりの費用を要するのだ。そしてそれ無しでコイルを製作するのは困難であることも、良く分かっている。
 コイルを製造するなら、またそこから作り直さねばならない。

 ZVS方式の充電器などは、コイルガン以外にも使えるから捨てていなかった。
 ストロボ用IGBTとかストロボ用ダイオードのようなディスクリート素子も、量が多い割にかさばらず高価なので捨てていない。
 他には、エナメル線も捨てずに取ってある。今回のパイルバンカー程度であれば、新たにエナメル線を買う必要はない。
 だが、冶具を捨てちゃったのはダメージ大だ。こういう経験をすると、ますます部屋の物体が減らなくなる。片付かなくなる。

 さて、自作ドローンの規模としてはペイロード1キロを目安に考えている。
 だから、パイルバンカーの重量は800グラムを目標とし、最大でも1キロは越えないように製作する。この重量にはコンデンサーや充電器を含むが、ドローン本体と共用するバッテリーの重量は含まない。
 まずパイルバンカーを開発し、その形状や重量バランスに合わせてドローン本体の細部設計を行う。要するに、パイルバンカーを一番使用し易いドローンを仕立てる訳だ。ただしもちろん、パイルバンカーを外してカメラ等を運ぶことも普通に行う。

written by higashino [マルチローター] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

<< 前のページ

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4