2022/03/17

beatoraja 選曲タイトルを配信ソフトに取り込むための格闘

タイトルそのままです.

Luaスクリプトは全く触ったことがなくて,Luaスキンについても完全に初見でした.
苦労の割に効果はそんなに無い(というかあまり求められていない)のですが,備忘録としてここに書いておきます.


成果物


こういうのができました.(音声なし)↓この辺のがそう

以下,個人的な備忘録です.


経緯


そもそも使用しているLuaスキンを拡張したいと思ったのは,KASAKOさん作成の選曲スキン(ModernChic-Select)へのLevel Review表示でした.
ただこの機能を実装するにはMocha-RepositoryへのHTTP通信が必要そう(未確認)だったので早々に諦め,カーソルが合っている曲の保存先フルパスを表示しようと思い立ちました.

が,どのタイミングでJava側から提供されているのかとか,どこで値をセットしているのかとかが全くわからずにこちらも頓挫しました.もっと頭が良ければできるんだろうけど.

そこで,選曲スキンはまだ早いと判断してプレイスキンを触ったのがコレです.
使用しているmnpyさんのプレイスキン(simple-play)は 幸いにも(?)拡張コンポーネント用のディレクトリ等々があったので,勝手に相乗りしています.


実装


実装は至極単純で,別にあえて書くほどのものでもないのですが….
Luaスキン側では拡張コンポーネント用のディレクトリにテキストファイルを作成し,メイン処理から引っ張ってきたタイトル(と,今は難易度表も)を書き込んでいます.

そのテキストファイルを配信ソフト(自分はXSplit)にソースとして追加したテキストスクリプトの参照先にして,更新時に表示反映をさせています.

実際これだけなのですが,構造を理解するのにだいぶ時間かかってしまった.すでに作られたスキンの拡張でコレなので,1から作るのは自分には無理そうです.

取り敢えず今の理解としては,Java側から提供される操作可能な要素はだいたいmain_stateから型にあった関数で引っ張ってこれるということです.
つまりは公式のWikiに書いてある内容までしかわからないです.


今後


今回はテキスト出力に,io.openを多様しています.
そしてこういったファイル操作系のライブラリを使うことはあんまり推奨されないことも知っています.
これ以外に良い書き方があったら書き直したいですね,直接配信ソフトを触りに行くと,汎用性が失われるのですが….

挫折した選曲スキンの拡張もどうにかできないか試行錯誤中です.サービス終了までには実装したい.