2018/05/30

アンレジスト(登録削除)ボタンが欲しい(2)

さて、いちおう、選んだアニメーションをアンレジストすること自体は実装できました。
(ゴミ箱行きを選んだものはナンバリングが黄色くなります。メニューを閉じた時点で削除)
しかし、実装してみて改めてわかったSexLabの仕様の問題が。
SexLabのアニメーションって、Max500個になった今でもいまだにPapyrusの配列128の壁の制限内にありまして、すべてのアニメーションを1つの配列として取得することはできないのです。つまり500個を128以下の個数で分割した複数の配列でしか受け取れないのです。
(Directorでは1ページ125個ずつの4配列でSexLabからアニメ情報を引き出しています)
また、SexLabでアニメーションを「アンレジスト」すると、SexLabは欠番になったアニメの分を自動的に詰めてくれたりはせず、配列の個数はそのまま、アンレジストされたアニメが入っていたスロットは「何もない」空っぽの状態が保持されるという仕様になってるのです。
この仕様のせいで、アニメーションをアンレジストすると、Directorではいくつか困ったことが発生します。

もともとDirectorでは途中でアニメーションが個別にアンレジストされて、ところどころ欠番が出るということを想定していなかったので、今のままでは欠番になったアニメーションのスロットは「何もない」空っぽの状態のまま表示されることになります。
表示されるだけならまだしも、その空スロットに対し「Enabled」や「Aggressive」などの付け外しを行えてしまえるという……だからアニメーションが入っていないスロットは詰めてやらないといかんわけですが、しかしSexLabの登録アニメーションをすべて一括で受け取る手段が無いので、空きスロット分を詰めて、レジスト済のものだけで配列を再構築、というのがかなりややこしいです。(しかも無駄に連番とか振っちゃってるしさ)

いや、まあ、私の頭が悪いだけなんですが……うん。もう少しやり方を考えます。

<本日の制作メモ>
ゲーム起動中にFlashのAction ScriptのデバッグをPapyrusログ内でするためには、Papyru内に下記のようなイベントを用意して、

Event OnUIlog(String asEventName, String asStringArg, Float afNumArg, Form akSender)
 Debug.Trace( "@@ [UI] - [SexLabDirector - HUD] - " + asStringArg)
EndEvent
Action Scriptの方で、そのイベントにコメントを送ってやればよい。

skse.SendModEvent("UIlog", "デバッグ用コメント");

Sublime text2で連番を自動入力するプラグイン……Input Sequence。
ショートカットキーは私は「ctrl+shift+B」に変更してた。
(設定はPreferences>Key Bindings - User を見ればよい)

0 件のコメント:

コメントを投稿