Dual-Ego DX15 lua忘備録
Dual-Ego DX15 少し遅くなりましたが今年の新年譜面です。今年のテーマはopenITGの限界を目指す、で行こうと思います pic.twitter.com/8FKJvMeZWf
— paraphrohn (@paraphrohn) 2020年1月3日
openITGでは使えないはずのネガ機能を実装しました。luaのネタばらしという名目で今後このluaを自分で使いまわす際にどこがどうなってるか自分で確認するための記事になります。
なにこれ。
defualt.xml
基本的にイベント類を書き込んでUpdateで拾うためだけのxml。あと0拍目をお知らせする役目。
基本的にレーン移動などのコマンドはここで管理
overlay
難易度表記とかタイトルとかをまとめて格納するだけのxml。
ネガとかかけたりする場合は中のレイヤーに命令を書いておく
life_gauge_operator
基本形はてねのさんが書いたので省略。何故かここにBPM情報を書き込んでいる
判定を拾う関係で判定文字やコンボ数の管理もここでやっているけど基本弄ることは無さそう。
この辺に関してはGetChildren(''):Load()でもっとシンプルに書けるはずなので気が向いたら書き直す予定。
note_operator
判定までの拍数から、target (判定ゾーン) からのy軸方向の距離を計算して常時アップデートし続けるxml。多分自分以外誰も読めない。
取得する情報とその元は以下の通り。
判定までの拍数: step_converter, steps → mod_steps
ハイスピ、mini、reverse: step_parameters → paraph_hs, paraph_mini, IsReverse, etc
判定ゾーンの座標: note_operator → a_tp[i]:GetX(),GetY()
判定ゾーンの向き: note_operator → a_tp[i]:GetZ()
レーンごとのハイスピ: note_operator → a_tp[i]:getaux()
矢印が降ってくるレーン: note_operator → paraph_cms[i]
判定ゾーンからの距離とかで矢印の位置を上書きし続けるので判定ゾーンだけ動かせば矢印も一緒についてくる優れもの。ただレーンそのもの(矢印が動く向き)の回転には対応していない。まあ僕の理念上レーンを回転させることなんてめったにないんですけど
ちなみにここだけで常時生成コマンドが49重に走ってるので他の生成コマンドがほとんど効かない
target_operator
判定ゾーン用のアクター用意。あと初期座標に移動させるくらい。
step_parameters
useful_functionsを使ってハイスピなどの取得をしたり、判定ゾーンの初期座標を決めたり。判定ゾーンの初期座標(特に変える必要がある場合)はここを変更する。あとなぜかここにも初期BPMを書いておく必要がある
step_converter, steps
前の日記参照。
というわけで、基本的には各素材(矢印、判定ゾーン、ライフゲージ、プログレスバー、等)を適切な位置に置いて、step_parametersとstepsとlife_gauge_operatorの数値をちょっと弄れば動く、はず。
使えるコマンド一覧
lane_linear, lane_accelerate, lane_decelerate: 特定レーンに生成コマンドを生成
lane_addx, lane_addy, lane_rotationz: 特定レーンのXY軸移動、回転
lane_hispeed: 特定レーンにハイスピ適用
lane_stealth: 特定レーンだけステルス (100%のみ)
思いついたら随時追加予定。
詳しい内容についてはまた次回