LJ が保存する各種ファイルの中身を解読し、C# で読み書きできる状態になりました。解読は推測ではなく、LJ 本体に同じデータを読ませて出力を突き合わせる方法で確認しています。
| 対象 | 内容 | 状態 |
|---|---|---|
| Cue(.cue) | シーンの呼び出し単位 | 読み書き可 |
| Sequence(.seq) | シーンの並びと時間 | 読み書き可。時間の扱いも確定 |
| パッチ表(Config.dat) | どの機材が DMX の何番か | 読み書き可。LJ の画面表示と一致 |
| プリセット(Movement.Pre) | 位置プリセット | 解読済み |
| Cue List(.Cl2) | 本番の進行表・タイムコード | 解読済み。一部の単位が未確定 |
| 既定出力(DefaultOut.dat) | 常時出している値 | 解読済み |
| 機材プロファイル(.GS2) | 機材ごとのチャンネル定義 | 1,427 件を確認 |
LJ は Delphi という開発環境で作られており、画面の設計データがプログラム本体の中に格納されています。これを取り出す方法を作ったところ、LJ を一度も起動せずに全画面の構成が読めました。
| 調べ方 | 採れたもの | LJ の起動 | LJ が動かなくなった後も採れるか |
|---|---|---|---|
| プログラム本体から抽出 | 2.7 版 210 画面 / 2.110 版 208 画面。部品の位置・大きさ・表示文字まで完全 | 不要 | 採れる |
| 動作中の LJ を観測 | 42 画面 / 部品 234 個 | 必要 | 採れない |
動作中の観測では、一度も開いていない画面の中身が採れません(表示した時に初めて部品が作られる仕組みのため)。実際、ある画面は動作中は 20 部品しか見えませんでしたが、プログラム本体からは 88 部品が採れました。
画面の設計データから、LJ のキー操作の仕組みが分かりました。
つまり LJ のキー操作は「使う方がご自分で割り当てたもの」が本体であり、人によって全く違います。ここは伺うしかありません(別紙 質問 2)。
次の順で進めます。順番には理由があります。
| 順 | やること | なぜその順か |
|---|---|---|
| 1 | 元のデータが 100% 同じに再生されること | ここが合っていなければ、他が全部できていても使えません。唯一の合否基準とします |
| 2 | 機能が一通りそろうこと | 普段の作業が最後まで通ることを優先します |
| 3 | 操作性を今の LJ と同じにすること | 調査は済ませてありますが、実装は上の 2 つの後にします |
| 4 | 見た目を今風にすること | 操作の位置と順序は変えません。色や文字の見え方だけを新しくします |
データの互換を保ったうえで、次のような拡張を見込んでいます。いずれも従来の操作を奪わずに「足す」形にします。
調査の進み具合から、現時点の見通しは次のとおりです。後半ほど不確かで、とくに最後の 2 つは「目標」とお考えください。
| 時期 | 状態 | 確からしさ |
|---|---|---|
| 2026 年 8 月 | 再生が完全に一致することの確認を完了 | 中 |
| 2026 年 10 月末 | 主要 6 画面で実際の作業が回せる状態 | 中 |
| 2026 年 11 月 | 公開版の初回リリース | 中 |
| 2027 年 2〜3 月 | 現場で本番に使える状態 | 低(目標) |
主要 6 画面 = Cue の一覧 / Sequence 操作 / Cue 操作 / 進行表 / 機材設定 / DMX 出力表示。この 6 つで日常の作業の大半が回ります。
調査を続ければ分かることと、調べても分からないことを分けて整理しました。後者は推測で埋めると必ず外すため、伺わせてください。
| # | 内容 | なぜ調べても分からないか |
|---|---|---|
| 1 | 210 ある画面のうち、実際に使うものはどれか | 使用実態は現場にしかありません |
| 2 | ホットキーに何を割り当てておられるか | 人ごとに違う設定で、プログラム側に「正解」がありません |
| 3 | 本番中によく行う操作の順序 | 取扱説明書には「なぜその順か」が書かれていません |
| 4 | 絶対に変えてほしくない操作 | 「これが変わると事故る」は経験からしか分かりません |
| 5 | 今の LJ で不便な点 | 新しく足す機能の入口になります |
| 6 | Cue やリストの名前の付け方の流儀 | 名前から意味を読み取る解析が成り立つかどうかに関わります |
| 内容 | 状態 |
|---|---|
| 再生が一致しない 20 チャンネルの原因 | 調査中。機材が重なっているアドレス帯に集中 |
| 進行表の時刻の単位(1/100 秒か、映像のコマ数か) | <b>1/100 秒で確定しました(7 月 29 日)。</b>これにより<b>実際のショーデータが最初から最後まで自作プログラムで再生できるようになりました</b> |
| フェードやチェイスの時間の細かい一致 | 500 ミリ秒の精度では一致を確認済み。より細かい確認は今後 |
| LJ の画面から Cue を自動で発火させる仕組み | 直接の自動化は断念し、進行表を自動生成して再生させる方法に切り替えました(実装済み) |
| 未解析のデータファイル 3 種 | 使われていない可能性もあり、優先度は低いと判断 |
| 内容 | 対応 |
|---|---|
| LJ の「Hardware Setup」画面を開くこと | 開くと LJ が停止します。開かない運用で回避しています |
| LJ の電子ヘルプファイルの展開 | 取扱説明書の本文で代替できたため、追いません |
LightJockey を実際に使っておられる方にお尋ねします。専門的な内容は必要ありません。普段の使い方をそのまま教えてください。
「分からない」「使っていない」も立派な答えです。使っていない機能を作らずに済むほど、必要な部分を丁寧に作れます。
LJ には画面が 210 個あります。全部は作りません。別紙 B の一覧に、[よく使う / たまに使う / 使わない / 知らない]の印を付けてください。画面名は LJ の内部の呼び名なので、心当たりが無ければ「知らない」で結構です。
LJ では Cue や Sequence にご自分でキーを割り当てられます(Setup > Hotkeys)。
「まず何を出して、次に何を押して…」といういつもの手順を、そのままお書きください。
「ここが変わったら事故る」という部分です。最優先で守ります。
新しく足せる部分です。どんな細かいことでも構いません。
LightJockey 2.7 に含まれる全 210 画面です。「部品数」は作るときの手間の目安で、多いほど大きな画面です。
「使わない」に印が付くほど、完成が早くなります。上から順に大きい画面が並んでいます。
心当たりの無いものは「知らない」で構いません。
| # | 画面(LJ での表示名) | 内部名 | 部品数 | よく 使う | たまに | 使わ ない | 知ら ない |
|---|---|---|---|---|---|---|---|
| 1 | Generic Fixture Profile | TScanner2DefsForm | 459 | ||||
| 2 | 編集パネル(Cue / Sequence の編集面) | TclEditPanels | 217 | ||||
| 3 | Cuelist | TCuelist2Form | 206 | ||||
| 4 | 2532 Direct Access | TDa2532Form_3 | 126 | ||||
| 5 | DebugForm(開発用。通常は使いません) | TDebugForm | 122 | ||||
| 6 | Generic 8 bit Macro Editor | TCueMacroControlForm | 116 | ||||
| 7 | メイン画面(LJ 本体) | TLJMainForm | 101 | ||||
| 8 | Fixture Configuration | TLinkConfigForm3 | 93 | ||||
| 9 | Define Generic Scanner1 profile | TScanner1DefsForm | 92 | ||||
| 10 | Select Cue | TAdvancedCueForm | 88 | ||||
| 11 | Cue | TCurrentCue | 88 | ||||
| 12 | Global Patch | TGlobalPatchForm | 86 | ||||
| 13 | Offset TimeCode | TTimeCodeOffsetForm | 83 | ||||
| 14 | 2518-RS232 Setup | TForm2518_2 | 77 | ||||
| 15 | Statics | TStatics2Form | 76 | ||||
| 16 | Hardware Setup | THardwareSetupForm2 | 70 | ||||
| 17 | Generic DMX Control | TGenericMegaForm | 64 | ||||
| 18 | System Preferences | TSystemPrefsForm | 59 | ||||
| 19 | 2518 (RS-232) Setup | TSetup2518Form | 56 | ||||
| 20 | Intensity Groups | TIntensityGroupForm | 54 | ||||
| 21 | Fingers Setup | TFingersSetupDialog | 53 | ||||
| 22 | Cue Builder | TCueStackForm | 52 | ||||
| 23 | 2510 Download List | TD2510Form | 51 | ||||
| 24 | Edit Hotkeys | TFunctionsForm | 51 | ||||
| 25 | Statics Preferences | TStatics2PrefsForm | 48 | ||||
| 26 | Customize Fixture Palettes | TFixtureSetupForm | 45 | ||||
| 27 | DMX-In translation | TDMXInValueTranslationForm | 42 | ||||
| 28 | Master Intensity | TMasterIntensityForm | 40 | ||||
| 29 | Fingers | TFingersStatus | 39 | ||||
| 30 | Sequence | TSequenceForm | 39 | ||||
| 31 | Dmx In | TDmxInForm | 38 | ||||
| 32 | Smoke Control | TSmokeForm | 36 | ||||
| 33 | Startup Options | TStartupForm | 36 | ||||
| 34 | CD-ROM (Audio) | TMCICDForm2 | 35 | ||||
| 35 | Static entry properties | TStaticEntryPropertiesForm | 34 | ||||
| 36 | Edit tranlation table | TTranslationEditForm | 34 | ||||
| 37 | Loop Options | TLoopToolsForm | 33 | ||||
| 38 | External Application Link | TExternalAppSetupForm | 31 | ||||
| 39 | Restore User Library | TLibraryRestoreForm | 30 | ||||
| 40 | Background Cue | TBGCueForm | 28 | ||||
| 41 | Save Sequence | TSaveSeqForm | 28 | ||||
| 42 | Define Color Scroller profile | TColorScrolDefForm | 27 | ||||
| 43 | Cue Macro Control | TCueMacroForm | 27 | ||||
| 44 | Insert Scene(s) before current scene | TInsertScenesForm | 26 | ||||
| 45 | Time Control | TCueTimeForm | 25 | ||||
| 46 | Fingers Cue Slot functions | TFingersSlotFunctionListForm | 24 | ||||
| 47 | MCX Setup | TMCXSetupForm | 24 | ||||
| 48 | RGB Palette | TRGBPaletteForm | 24 | ||||
| 49 | Snapshot from DMX Out | TSnapshotSceneForm | 24 | ||||
| 50 | Save Cue | TSaveCueForm | 23 | ||||
| 51 | Custom Fixture Selection Order | TCustomOrderForm | 22 | ||||
| 52 | Download 2510 Binary File | TBinary2510Form | 21 | ||||
| 53 | Channel Configuration | TChannelDefForm | 21 | ||||
| 54 | DMX Output Monitor | TDMXOutForm | 21 | ||||
| 55 | Fan Out | TFanOutForm | 21 | ||||
| 56 | 2532 Color Scheme | TColorScheme2532Form | 20 | ||||
| 57 | Create 2518 Memory-file | TD2518Form | 20 | ||||
| 58 | Set Fade Status | TDefault2Form | 20 | ||||
| 59 | Record to LightCorder file | TLightCorderDialog | 20 | ||||
| 60 | Log TimeCode | TLogTimeCodeForm | 20 | ||||
| 61 | Copy Palettes from | TCopySetupForm | 19 | ||||
| 62 | Save Macro | TSaveMacroDialog | 19 | ||||
| 63 | Copy Fixture | TCloneForm | 18 | ||||
| 64 | TInitForm1 | 18 | |||||
| 65 | Backup User Library | TLibraryBackupForm | 18 | ||||
| 66 | LJ Manager Preferences | TLJManagerPrefsForm | 18 | ||||
| 67 | Pan/Tilt Macro Auto Delay | TAutoDelayForm | 17 | ||||
| 68 | Clear Fixture Data | TCleanUpForm | 17 | ||||
| 69 | Find Channel | TFindChannelForm | 16 | ||||
| 70 | Import Fixture Profile | TFixtureImportForm | 16 | ||||
| 71 | Edit FollowSpot Settings | TFollowSpotForm | 16 | ||||
| 72 | Grid Color Scheme | TMegaGridColorSchemeForm | 16 | ||||
| 73 | Save Background Cue | TSaveBGForm | 16 | ||||
| 74 | Save Custom Selection | TSaveSelectionForm | 16 | ||||
| 75 | Statics Control | TStaticsControlForm | 16 | ||||
| 76 | Calculate addresses | TAutoAddressForm2 | 15 | ||||
| 77 | Download to 2510 | TDownload2510Form | 15 | ||||
| 78 | Desktop Image | TImageSetupForm | 15 | ||||
| 79 | Print 2532 Layout | TPrint2532Form | 15 | ||||
| 80 | Save Cuelist | TSaveCuelist2Form | 15 | ||||
| 81 | User Libraries | TUserLibForm | 15 | ||||
| 82 | Set Cue Trig | TClSetCueTrigForm | 14 | ||||
| 83 | Digital Audio Timecode Scaling | TDATCScaleForm | 14 | ||||
| 84 | Desktop Grid | TGridForm | 14 | ||||
| 85 | PresetForm | TPresetForm | 14 | ||||
| 86 | Save Preset | TSavePresetForm | 14 | ||||
| 87 | Save | TSavePresetForm2 | 14 | ||||
| 88 | Statics replace matrix | TStaticsReplaceForm | 14 | ||||
| 89 | Datafile format update required | TUpdateCl2Form | 14 | ||||
| 90 | AddFixForm2 | TAddFixForm2 | 13 | ||||
| 91 | Apply user profile | TApplyMultiForm | 13 | ||||
| 92 | Select Bitmap | TBitMapPickerForm2 | 13 | ||||
| 93 | Delete Scene(s) | TDeleteSceneForm | 13 | ||||
| 94 | Export Value tables | TExportTableForm | 13 | ||||
| 95 | RGBPack configuration | TRGBPackDefForm | 13 | ||||
| 96 | Save Static | TSaveStaticForm | 13 | ||||
| 97 | Dataformat has Changed | TUpdateForm | 13 | ||||
| 98 | Creating 2510 Download File | TCreate2510Form | 12 | ||||
| 99 | File Already Exists | TFileExistsForm | 12 | ||||
| 100 | Fixture Info | TFixtureInfoForm | 12 | ||||
| 101 | Select Macro | TLoadMacroList | 12 | ||||
| 102 | 2532 Page Names | TName2532PagesForm | 12 | ||||
| 103 | File Exists | TProfileImportModifiedFilesForm | 12 | ||||
| 104 | About LightJockey | TAboutForm2 | 11 | ||||
| 105 | Capture Status Panel | TCaptureForm | 11 | ||||
| 106 | Print Preview | TConfigPrintPreviewForm | 11 | ||||
| 107 | Set Tab Size | TDa2532TabHeight | 11 | ||||
| 108 | 2532 Tab Colors | TDA2532_TabColorsForm | 11 | ||||
| 109 | Select Skin | TFingersSkinSelectForm | 11 | ||||
| 110 | Select Followspot Setting | TFollowListForm | 11 | ||||
| 111 | Enter User Library Name | TGetUserLibNameForm | 11 | ||||
| 112 | Enter New Password | TNewPasswordForm | 11 | ||||
| 113 | BezNameForm | TBezNameForm | 10 | ||||
| 114 | BG Cue - Sequence Mode | TBGCueSequenceModeForm | 10 | ||||
| 115 | Delete Sequences | TDeleteSequencesForm | 10 | ||||
| 116 | Exporting User profile | TExportFixtureForm | 10 | ||||
| 117 | Save Lightcorder File | TSaveLightCorderFileDialog | 10 | ||||
| 118 | USB Interface configuration warning | TUSBConfigWarningForm | 10 | ||||
| 119 | Close Lightjockey ? | TCloseOrSaveForm | 9 | ||||
| 120 | Detecting Hardware | TDetectHardwareForm2 | 9 | ||||
| 121 | Desktop tabs | TLayerManagerForm | 9 | ||||
| 122 | 2510 Memory Test | TMemoryTest2510Form | 9 | ||||
| 123 | Next/Previous Fixture Selection | TNextPrevSelectionForm | 9 | ||||
| 124 | PaletteValueTypeForm | TPaletteValueTypeForm | 9 | ||||
| 125 | RGB Value | TQuickRGBDefForm | 9 | ||||
| 126 | Select Background Cue | TSelectBGCueForm2 | 9 | ||||
| 127 | USB Connection Error | TUSBErrorForm | 9 | ||||
| 128 | Delete Background Cues | TDeleteBGCuesForm | 8 | ||||
| 129 | Delete Cuelists | TDeleteCuelistsForm | 8 | ||||
| 130 | Delete Cues | TDeleteCuesForm | 8 | ||||
| 131 | Delete Generic Macros | TDeleteGenericMacrosForm | 8 | ||||
| 132 | Warning | TFixtureExportWarningDialog | 8 | ||||
| 133 | Fixture Special | TFixtureSpecialForm | 8 | ||||
| 134 | Patch Sub Masters | TInternalIntensityPatchForm | 8 | ||||
| 135 | Re-order Cue Pages | TReorderCuePagesForm | 8 | ||||
| 136 | Save As Cue# | TSaveAsCueForm | 8 | ||||
| 137 | Save as Cuelist# | TSaveAsCuelistForm | 8 | ||||
| 138 | Save as Macro# | TSaveAsMacroDialog | 8 | ||||
| 139 | Select Cuelist | TSelectCuelist2Form | 8 | ||||
| 140 | Notification ! | TShowHardwareWarningForm | 8 | ||||
| 141 | Notification ! | TShowHotKeyWarningForm | 8 | ||||
| 142 | StaticsDebugForm | TStaticsDebugForm | 8 | ||||
| 143 | Unassigned Fixtures | TUnassignedForm | 8 | ||||
| 144 | Warnings | TConfigWarnForm | 7 | ||||
| 145 | Please Confirm.. | TConfirmForm | 7 | ||||
| 146 | Select source fixture | TCopyFromForm | 7 | ||||
| 147 | Creating 2518 Mem File | TCreate2518MemStatusForm | 7 | ||||
| 148 | Creating Auto Restore Data | TCreateDataForm | 7 | ||||
| 149 | Delete Macros | TDeleteMacrosForm | 7 | ||||
| 150 | Configuration Export | TExportConfigForm | 7 | ||||
| 151 | Add New Cue Page | TGetPageInfoForm | 7 | ||||
| 152 | Statics Page | TGetStaticsPageNameForm | 7 | ||||
| 153 | Select Icon Style | TIconStyleForm | 7 | ||||
| 154 | Create Channel Group | TMegaGroupCreateForm | 7 | ||||
| 155 | Sequence Slot Labels | TNameSlotsForm | 7 | ||||
| 156 | Rename File | TRenameFileForm | 7 | ||||
| 157 | Restore Data | TRestoreDataForm | 7 | ||||
| 158 | (表題なし) | TSetSequenceForm | 7 | ||||
| 159 | File Format Update Needed | TUpdateBGCuesForm | 7 | ||||
| 160 | Add Fixture Group | TAddGroupForm | 6 | ||||
| 161 | Striking Lamps | TAutoLampForm | 6 | ||||
| 162 | Launching.. | TAutoLaunchForm | 6 | ||||
| 163 | Backing Up | TBackupForm | 6 | ||||
| 164 | Set Grid Size | TMegaGridSizeForm | 6 | ||||
| 165 | Position Options | TMovementOptionsForm | 6 | ||||
| 166 | Oldstyle profile name | TProfileNameOldStyleForm | 6 | ||||
| 167 | Select Background Cue | TSelectBGCueForm | 6 | ||||
| 168 | Static Slot Name | TStaticSlotNameForm | 6 | ||||
| 169 | Applying Default DMX - please wait | TApplyDefaultDMXForm | 5 | ||||
| 170 | 2532 Function List | TButtonFunctions2532Form | 5 | ||||
| 171 | ExportAllForm | TExportAllForm | 5 | ||||
| 172 | Find profile.. | TFindProfileForm | 5 | ||||
| 173 | Error | TFingersErrorForm | 5 | ||||
| 174 | Warning | TFreezeWarnForm | 5 | ||||
| 175 | Get Bitmap | TGetBitmapForm | 5 | ||||
| 176 | Select Function | THotkeyFunctionDialog | 5 | ||||
| 177 | Select Cue | TModalSelectCueForm | 5 | ||||
| 178 | Warning | TOfflineWarningForm | 5 | ||||
| 179 | Update to Patch Configuration | TPatchUpdateForm | 5 | ||||
| 180 | Restoring data to library | TRestoreLibProgressForm | 5 | ||||
| 181 | SandNet status | TSandNetStatusForm | 5 | ||||
| 182 | Select Startup Cuelist | TSelectCuelist2ModalForm | 5 | ||||
| 183 | Checking, please wait.. | TSeqUsedForm | 5 | ||||
| 184 | WARNING ! | TUSBWarningForm | 5 | ||||
| 185 | Auto-Arrange Icons | TAutoArrangeForm | 4 | ||||
| 186 | Cuelist Link or Import ? | TCuelistLinkOrImportForm | 4 | ||||
| 187 | Edit 2532 Text | TEdit2532TextForm | 4 | ||||
| 188 | Fingers F1-F10 function list | TFingersFunctionListForm | 4 | ||||
| 189 | Fingers fader page function list | TFingersPageFunctionListForm | 4 | ||||
| 190 | Fingers Scroll button function list | TFingersUDFunctionListForm | 4 | ||||
| 191 | WARNING | TStatusWarningForm | 4 | ||||
| 192 | Updating Files | TUpdateFileForm | 4 | ||||
| 193 | Updating LightJockey Installation - please wait | TUpdateProgramForm | 4 | ||||
| 194 | Error importing translation tables | TValueTableImportErrorForm | 4 | ||||
| 195 | Fixture Profile Notes | TFixtureNotesForm | 3 | ||||
| 196 | System Memory | TMemoryViewForm | 3 | ||||
| 197 | Please Wait... | TRebuildSetupForm | 3 | ||||
| 198 | Restoring Files | TRestoreProgressForm | 3 | ||||
| 199 | Startup Status | TStartupStatusWindow | 3 | ||||
| 200 | TadaOForm | TTadaOForm | 3 | ||||
| 201 | Compressing Restore Data - Please Wait | TCompressRestoreDataForm | 2 | ||||
| 202 | Copying Files - please wait.. | TCopyingFilesForm | 2 | ||||
| 203 | Fingers Datawheel function list | TFingersJogFunctionListForm | 2 | ||||
| 204 | WM_CPOPYDATA DEBUG | TMsgDebugForm | 2 | ||||
| 205 | Notes | TNoteForm | 2 | ||||
| 206 | TPrintWaitForm | 2 | |||||
| 207 | ProgressForm | TProgressForm | 2 | ||||
| 208 | Sorting Timecodes | TSortTimeCodeForm | 2 | ||||
| 209 | HiddenFixtureForm | THiddenFixtureForm | 1 | ||||
| 210 | (表題なし) | TLJFingersMainForm | 1 |