規則5 検査記録 · 2026-09-13 →09-14更新 · 司令塔
LjStudio の台帳(324行)を検査で埋めていく中で、こちらで決められず止まっている項目を 画面写真つきでまとめました。台帳のほとんど(決着260件・80%)は自動検査とライブ確認で 埋まりましたが、この8件は「作るかどうか」「繋ぐかどうか」を決める人が必要です。 06・07・08 は本人指示で実装・実機確認を進めましたが、いずれも一部の残作業付きです(下の各項目参照)。 09-14: 本人指示「司令塔側で優先度を決めて進める」を受け、末尾に当日の計画・今後の方針を追記しました。
名前入力ダイアログ9種 / 「Save As #」家族 / TSELECTBGCUEFORM 他 · 2026-09-13
ボタンや入力欄は正しく組み上がっているのに、アプリのどこをどう辿っても
開かれない画面が全部で14件見つかっています。代表例が左の「Add Fixture
Group」——器具グループを追加する名前入力ダイアログで、部品としては完成しているのに、
呼び出し元のコードがsrc全体に0件です。
「Select Background Cue」(右・OK/Cancel付きの版)は、本編の sbLoadBGCue
ボタンから開く別の画面(ボタン無し・ダブルクリックで選ぶだけの版)とは別物で、
こちらはテストコードからしか呼ばれていません。実機での本当の呼び出し口も
今回の調査では見つからず、正体不明のまま保留です。
決定
TSAVEASCUEFORM(Save As Cue#)・TSAVEASCUELISTFORM(Save As Cuelist#)
は繋がないと決定しました。同じ機能はすでに本編の Save ボタン自身(bSaveAs)
で動いており、別窓を新設する価値が薄いためです。画面内部の配線自体はもともと正常
(テストで確認済み)——呼び出し元を追加しないと決めただけです。
未完成 残り12件のうち2件は、調べ直した結果見積もりを訂正しました。 TGETPAGEINFOFORM(Add New Cue Page)はページ追加の書き込みロジック自体が 丸ごと未実装で、実機DFMにも「Add」ボタンが無く呼び出し口が不明。 TMEGAGROUPCREATEFORM(Create Channel Group)は「チャンネルグループ」という ファイル形式自体が読み書きとも未解読(項目4の.Pre形式と同種の解読案件)。 どちらも「配線するだけ」ではなかったため保留に戻しました。
残り12件、どうしますか?
保存しました
TLINKCONFIGFORM3 · sbl1〜4 · 2026-09-13 実装・裏取り済み
訂正 この項目の元の説明は誤りでした。「押したリンク番号でプロファイル一覧の ツリーを絞り込む」機能ではなく、公式ヘルプ(046_Fixture configuration.txt)どおり 選択中の器具がどのDMXリンク(1〜4)に繋がっているかを指定する機能でした。
Fixture Configuration 画面右上の「DMX Link」1/2/3/4ボタン。上げ下げ(押し込みの
切り替え)自体は元から配線済みでしたが、正しい役目(選択中の器具のリンク指定)
への書き込みは未実装でした。今回、選択行の DMX リンクに合わせて押し込み状態を同期し、
押すと 「プログラム済みデータが無効になる場合がある」旨を確認したうえで
DMX アドレスのリンク部分を書き換えるところまで実装しました(Channel は保持)。
追って本人指示でアドレス帯の重複チェックも追加しました
(LjUserLibrary.OwnerSlotOf で移動先が他の器具と重ならないか書く前に確認し、
重なる場合は相手の枠番号・型名を文面に足します。実機の Save 時警告と同じくブロックは
せず、OK すれば重ねたまま進められます)。試験4本を追加し、
全走3360 pass/37 fail(既知分の範囲内・回帰なし)。
完了 この項目に残った論点はありません。
TAUTOARRANGEFORM 実装完了 · 残り3件は保留 · 2026-09-13
DFM(見た目)は描けていますが、動かす仕組み(enricher)が一切ない
4画面でした。Auto-Arrange Icons(TAUTOARRANGEFORM)だけ実装しました——
整列ロジック自体(FixtureAutoArrange.Pack)は既にコードにあり、View メニュー
「器具アイコンを詰める」から実際に動いていたので、公式ヘルプどおりの入口
(デスクトップ右クリック→Icons→Auto Arrange)を新設してそこへ繋いだだけです。
新しい書き込みロジックは要りませんでした。
残り3画面は調べ直した結果、見た目より大きな仕事でした。Copy Fixture
はヘルプの機能自体は本物ですが、コピーする書き込みロジックが5つの別ファイル形式に
またがってどこにも存在せず、呼び出し口(右クリックメニュー)もありません。
Exporting User profileは出力形式(.udf/.udo)が
完全未解読。RGB Valueはダイアログ自体は簡単ですが、値の書き込み先が
実機データのどこにも見つかっていません。
未完成 残り3件(TCLONEFORM・TEXPORTFIXTUREFORM・TQUICKRGBDEFFORM)は いずれも新規の書き込みロジックか実機解読が要り、保留のままです。
TSAVEPRESETFORM / TSAVEPRESETFORM2 · 2026-09-13
訂正×2
「.Pre形式が未解読」は古い情報でした(payloadは実機書き込みdiffで
確定済み)。さらに「ライブ位置パネルが無い」も誤りでした——
MovementControlContent(Fixtureバー Panel2「Position/movement」)が
まさにそれで、「pan/tiltポジションコントロール」という逐語一致で探していたために
見つけていなかっただけでした。
「Preset#」「Preset Name」を入れて Save Preset / Save New Preset を押す画面です。
LjPresetFile/LjAttributePresetFileに読み書き両対応の
Save/CreateNew/Payloadを新設したうえで、MovementPresetSaveTarget
(ILibrarySaveTarget)を新設し、MovementControlContentに
Presetボタン→TPRESETFORM.bSave→この画面→LibrarySaveDialogという
経路で実際にMovement.Preへ書き込むところまで配線完了しました。
選択中の器具(Master/Selected/All)のpan/tiltを現在のScene値から読み、新規保存はスロット
全体を空にしてから焼く・既存上書きは触れたアドレスだけ書き換えます(公式ヘルプ071どおり)。
試験10本追加(MovementPresetSaveTargetTests 4・LjLibraryWriterPresetTests 3・
LjPresetFileTests.NextFreeSlot 3)、全走3371 pass/38 fail(既知分の範囲内・回帰なし)。
in-process検査のみで、live実機での最終確認はまだです。
未完成 live実機(検証機/i8)での最終確認がまだです。in-process検査は全部緑ですが、 実際にMovementControlContentのPresetボタンから保存してMode/位置が正しく再現されるかは 未検証です。
TBGCUESEQUENCEMODEFORM · Audio Trigged / No Loop · 2026-09-13 r5実機実験
訂正
「実データが手に入るまで保留」は成立しない前提だと確定しました。
原本219本(data\original+data\work+実機コピー全量)を数え直しても、
解読済み領域以外は1バイトも非ゼロがありません——待っても実データは出てきません。
「Audio Trigged」「No Loop」のチェックが .hcu ファイルのどのバイト位置に
対応するのか、まだ特定できていません(以前疑っていた +0x9A は既に「違う」と
判明済み)。今回、+0x9Aを否定したのと同じ実験道具
(tools\lj_exp_cueflags.ps1 -Target bgcue)がr5で非対話実行できると分かり、
4つの候補へ実機で書き込み実験をやり直しました。
候補①(Sequence ID配列の直後 +0x5E)・候補②(On/Offフラグの直後
+0x9F)——どちらも既存の解読済み配列に隣接する、最も構造的に自然な位置。
続けて、この2配列の間にある60Bの空白が「5スロット均等割り(12Bずつ)」という仮説のもと、
候補③(空白の中間 +0x66)・候補④(空白ブロック末尾 +0x69)も
試しました。4つとも陰性(値1を書いてもMode列は空のまま)——
この4か所は除外できましたが、残り約490Bのどこかは依然不明です。
決定
本人指示(2026-09-13): 今回はここまでで保留。残り約490Bの総当たりはやらない。
r5側の一時タスク(LJ_Exp_CueFlags)と作業用ライブラリは片付け済み。
次に再開するときのために、除外済みの4候補と道具の使い方(lj_exp_cueflags.ps1の
-FlagBaseOverride/-FlagStride)を台帳・構造解析ログに残した。
(参考・再開する場合の選択肢)
保存しました
TBGCUEFORM / TCURRENTCUE / TCUEMACROFORM · 2026-09-13「6 再調査」(コミット 5ee71185)
Hint(ツールチップ)もキャプションも一切無い孤立ボタン群でしたが、公式ヘルプ
(#097/#103/#119/#137)・DFM実物の座標/OnClick確認・実機スクショ
(旧機体の実機スクショ)を突き合わせてほぼ全件を決着
させました。
実装・テスト済み: sb1〜sb5=Background Cue
のスロット単位 on/off(既存確定済みの LjBackgroundCueFile.SetSlotDisabled
+0x9A に直結・r5実機で赤/緑を確認済み)。sbLoad=一覧
cb1 で選んだ BG Cue を読み込む(cb1 自体は選ぶだけで
読み込まないため New/Save/Delete と同じ「押して初めて効く」形に統一)。
SpeedButton4=DFM上 Panel1 に座標が完全に覆われ
OnClick も無く、実機でも押せない・見えない(silent、配線対象外)。
sbBGCue(Current Cue)=公式ヘルプ097の言い回しが
sbCueMacroControl と同一のため同じOpenScreen(TBGCUEFORM)。
残り2件は意味は判明・実装は保留: sbChaseMan
(ヘルプ103=手動trigの間隔でチェイスへ切り替える機能。ShowPlayerHost
に間隔計測の土台が要る)・TCUEMACROFORM の sbFreezeMacro
(ヘルプ137=このフォーム自身のSpeedフェーダーを0%相当にする。土台となる
Ampl./Speedフェーダーの書き戻し自体が未実装)。どちらも「土台となる仕組みを
新たに作るか」という別枠の判断で、もう「正体不明」ではありません。
未完成
sbChaseMan(手動trigの間隔でチェイス切替。ShowPlayerHostに
間隔計測の仕組みが無い)と sbFreezeMacro(Speedフェーダーを0%にする。
TCUEMACROFORM自身のフェーダー書き戻しが未実装)は、意味は判明した
だけでまだ何も動きません。土台を新設するかどうかは未着手のまま。
残った論点: sbChaseMan/sbFreezeMacroの土台(間隔計測・フェーダー書き戻し)、作りますか?
保存しました
TCUEMACROCONTROLFORM · 2026-09-13 実装・r5実機同等の環境で確認完了(残り9件は未着手)
Base Value・Speed・Amp+・Amp− を書き込む先のバイト位置は 2026-08-24 に実機確定 済みだったため、12 件のボタン(Set×4・増減×6・Off・Keep Amplitude Symmetrical)をまとめて実装しました。実機はドラッグ式の手描きバーですが、 WPF でその見た目まで再現するのは大工事になるため、増減ボタンで値を貯めて Set で 確定する簡略 UI に置き換えています。 検証機で実際のマクロデータを使い、Base を 128 に Set → 選んだ行だけ変わる、 Off → その行が「off」表示になる、Speed を 3 段階上げて Set → Time 列が 14.4 秒から 1.0 秒に変わる、Keep Amplitude Symmetrical を入れて Amp+ を −5 に Set → Amp− が自動で 5(鏡合わせ)になる、をすべて確認しました (右の写真がその瞬間の実画面)。単体テスト 14 本も新規に追加し全て緑です。
未完成 今回の12件とは別に、Auto Delay 系5件・sbNewMacro/sbLoad・sbRestart/sbUpdate の計9件はまったくの未着手。Auto Delayは入力欄自体は同じ数値欄パターンで配線できそう だが、遅延の配分アルゴリズムが未解読。sbRestart/sbUpdateは汎用マクロを回す仕掛け自体が無い。
残り9件(Auto Delay系5件・sbNewMacro/sbLoad・sbRestart/sbUpdate)、作りますか?
保存しました
TCUELIST2FORM sbGo/sbBack · 2026-09-13 実機同等の環境で確認完了
実際に Show Player を走らせて確かめました。sbGo/sbBack
は正しく動きます——ただし「1行進む/戻る」ではなく、次/前の
Cue Fire 型の行まで探して飛ぶ設計でした(Wait Elapsed 型の行は
素通りする)。手元のライブラリの多くは Wait Elapsed ばかりでしたが、
別の CueList(愛称 LAPUTA・Cue Fire 型の行 39 本)を見つけて読み込み、
実際に行き来できることを確認しました。
副産物で新しい小さな論点が1つ: 再生中は sbBack
ボタン自体が画面から消えます(sbStop と場所が重なるため隠す設計)。
この「隠すべきか」という判断自体は実機で確かめられておらず、コードの注記も
「こちらの解釈である」と認めています。
また、同じ枠に入れていた TSEQUENCEFORM の再生 fwd/rev(sb3/
sb4)は、調べ直すと「未テスト」ではなく実装そのものが無い
ことが分かりました——項目03・06と同じ「作るかどうか」の判断が別途必要です。
未完成 再生中に sbBack を隠す設計が正しいか実機で未確認(コードの注記も「解釈」と 自認)。加えて TSEQUENCEFORM の sb3/sb4(再生fwd/rev)は「未テスト」ではなく 実装そのものが無い——作るかどうかを含め、両方とも手つかずのまま。
残った論点2つ: ① 再生中も sbBack を出したままにするか ② TSEQUENCEFORM の sb3/sb4(実装なし)を作るか
保存しました
本人指示「司令塔側で優先度を決めて進める」を受けて整理 · 2026-09-14
9/13 時点で 8 項目のうち技術的に閉じているものは進め、残りは「作るかどうか」「見た目の 設計をどうするか」という本人にしか決められない分岐として保留にしてあります。 9/14 はこちらでその分岐を仕分けし、技術的な答えが実験や公式ヘルプの読み込みだけで 白黒つくものを先に進め、新規サブシステムの新設や見た目の設計判断が要るもの は号令が出るまで着手しないという優先度を立てました。
今日進める分(呼び出し口が明確・技術的に閉じている)
項目01の残り12件のうち9件は根が1つだと分かっています——
TADDGROUPFORM・TMEGAGROUPCREATEFORM・
TPROFILENAMEOLDSTYLEFORM・TGETUSERLIBNAMEFORM・
TRENAMEFILEFORM・TGETSTATICSPAGENAMEFORM・
TSTATICSLOTNAMEFORM・TBEZNAMEFORM・TGETPAGEINFOFORM
の9種は、部品自体はNameDialogCatalogに登録済みなのに、共通の呼び出し口
NameInputDialog.Create がsrc全体に0件という同じ穴です。
このうちTMEGAGROUPCREATEFORM(形式未解読)とTGETPAGEINFOFORM
(書き込みロジック丸ごと未実装)はすでに「配線だけでは済まない」と判明済みなので対象外
—— 残るTADDGROUPFORM・TPROFILENAMEOLDSTYLEFORM・
TGETUSERLIBNAMEFORM・TRENAMEFILEFORM・TBEZNAMEFORM
の5件を、Auto-Arrange・DMX Link・Presetsで効いた「公式ヘルプで本来の入口を
確かめてから足りない配線だけ足す」手順で1件ずつ片付けます。
TGETSTATICSPAGENAMEFORM・TSTATICSLOTNAMEFORMは「到達経路も
別途無い」と記録済みで確度は落ちますが、入口の有無を先に確かめます。
TSAVEASMACRODIALOG(Save As Macro#)は9/13に決着した
TSAVEASCUEFORM/TSAVEASCUELISTFORMと同型の「Save As #」家族と
分かっているため、同じ結論(本編のbSaveAsと重複=繋がない)で良いか確認だけ
先に済ませます。TSELECTCUELIST2MODALFORM(Startup Cuelist)も入口の有無を
同じ手順で確認します。
保留のまま進めない分(本人の号令待ち)
TSELECTBGCUEFORM(正体不明の呼び出し元)はヒントが尽きており着手しません。
項目05(BG Cue Mode 残り約490Bの総当たり)は9/13に本人指示で保留と決定済みのため触りません。
項目06のsbChaseMan(間隔計測の土台)・sbFreezeMacro
(フェーダー書き戻しの土台)と、項目07のsbRestart/sbUpdate
(汎用マクロ再生の仕組み自体)は、いずれも新規サブシステムの新設が要る
規模のため着手しません。項目08のTSEQUENCEFORM sb3/sb4
(再生fwd/rev)も同様に新規実装で、作るかどうかは本人判断のままです。
項目08の再生中にsbBackを隠すかどうかは技術的な余地ではなく
見た目の設計判断そのものなので、こちらでは決めません。
項目07のAuto Delayの配分アルゴリズム解読は、項目05と同じ「r5実機で
バイト位置を絞る」実験で白黒つく性質のため、上の5件が片付き次第、時間が許せば着手します。
今後の方針
① 「部品は組めているが呼び出し元が無い」系は、まず公式ヘルプで本来の入口を探してから 足りない配線だけを足す——新規ロジックが要ると分かった時点でその項目だけ保留に戻す (Presets・Auto-Arrangeで実証済みの手順をそのまま横展開)。 ② 実験でバイト位置が白黒つく解読案件(BG Cue Mode・Auto Delay等)と、新規サブシステムの 新設が要る案件(チェイス間隔計測・フェーダー書き戻し・汎用マクロ再生エンジン)は 別枠として扱う——後者は号令が出るまで着手しない。 ③ BG Cue Modeの総当たりは今回も再開しない。次に扱うのは本人が「続ける」と言った時のみ。 ④ 新しく配線した画面は必ず試験を追加し、可能な範囲でr5実機同等の環境で裏取りしてから 「完了」と記録する(in-process検査だけで完了扱いにしない・項目04のPresetsが唯一の例外 として live未検証のまま残っている点は次回持ち越し)。
上の計画を実データに当てて検証した結果 · 2026-09-14
上の計画を、着手前にソースと台帳へ当てて確かめました。根拠は裏が取れましたが、 前提が2点ずれていました。
裏が取れたこと
NameDialogCatalog に9種すべてが登録済み(TGETUSERLIBNAMEFORM・
TRENAMEFILEFORM・TGETSTATICSPAGENAMEFORM・
TSTATICSLOTNAMEFORM・TBEZNAMEFORM・TGETPAGEINFOFORM・
TADDGROUPFORM・TMEGAGROUPCREATEFORM・
TPROFILENAMEOLDSTYLEFORM)。NameInputDialog.Create の呼び出しは
試験からのみで、製品コード(LjStudio.App)には1件も無いことを確認
——「9件は根が1つ」は正しい。
ずれ1: 「全て未コミット」はもう古い
9-13 分はすべてコミット済みです(項目ごとに分割した6本+別セッションの 積み残し3本)。HANDOFF の段階0(コミット方針の確定)は解消済みなので、 以後の計画からこの前提は外してください。
ずれ2: 狙う5件のうち「配線だけで済む」のは2件だけ
項目3・項目4で「配線だけで済む/済まない」を分けたのは書き込み側(バックエンド)の 有無でした。同じ物差しを5件に当てると、次のように割れます。
| ダイアログ | 書き手 | 判定 |
|---|---|---|
TPROFILENAMEOLDSTYLEFORM |
LjFixtureProfileWriter あり(09-10 で新設・実績あり) |
◎ 配線だけで行ける |
TRENAMEFILEFORM |
形式の書き手は不要(ファイル改名+参照更新) | ○ 参照更新の範囲だけ要調査 |
TBEZNAMEFORM |
LjBezierShape.ToBytes() はあるが
LjBezierShapeSet に保存経路が無い |
△ 保存経路の新設が要る |
TADDGROUPFORM |
LjGroupInfo は所属フラグの書き込み API を
意図的に持たない(用途未確定のため読むだけ、とコード自身が明記) |
✗ バイト層が先 |
TGETUSERLIBNAMEFORM |
ライブラリ新規作成に当たる口が存在しない
(LjLibraryWriter は既存フォルダ前提) |
✗ 新設が要る |
TADDGROUPFORM・TGETUSERLIBNAMEFORM は、
TGETPAGEINFOFORM/TMEGAGROUPCREATEFORM を保留に戻したのと
同じ理由(書き込み口が無い)に当たります。計画が避けたいと書いている
「配線するだけの小物ではなかった」を、着手前に2件分先に潰せました。
再計画
段階A(最優先):新しい配線を足す前に、項目02・03・04 の3件を 実機でまとめて裏取りします。3件とも in-process 検査だけで「完了」にしてあり、 未検証の実装が3件たまっています(「直したら必ず実機で確認」は 2026-09-05 に常設と決めた縛り)。コミット済みなので、配布物を1回作れば3件同時に確認できます。
段階B:項目01 は5件でなく2件に絞る
(TPROFILENAMEOLDSTYLEFORM → TRENAMEFILEFORM の順)。
TBEZNAMEFORM は保存経路の見積もりを取ってから可否を決め、
残り2件は保留へ差し戻します。
段階C:上の計画の保留判断(BG Cue Mode の総当たり・新規サブシステム系・
sbBack を隠すかの見た目判断)はそのまま同意。触りません。
mclick)が途中から不安定になった件と、TLJMAINFORM の
アイコンドラッグ・タブ切替の実マウスでの最終確認。これらは次にツール側を
直してから対応します。