プロジェクトのグリッド
グリッドには、プロジェクトのターゲットごとに 1 行が表示され、選択した任意の設定を列として追加できます。ターゲットの多いプロジェクトや、複数のターゲットに適用する変更に使用します。



設定の列を 2 つ追加し、プロパティパネルを開いたグリッド
ビューの切り替え
ビューを切り替えるには、右上の「キャンバス」と「グリッド」の切り替えボタン、「表示 > キャンバス」と「表示 > グリッド」(Ctrl+Shift+C / Ctrl+Shift+G、macOS では Cmd+Shift+C / Cmd+Shift+G)、またはコマンドパレットの「表示: キャンバス」と「表示: グリッド」を使用します。キャンバスが既定のビューです。Babel Desktop は、プロジェクトごとのビューをこのコンピューター上に記憶します。ビューを切り替えても、プロジェクトファイルは変更されず、変更済みとしてもマークされません。
行を選択する操作はノードをクリックする操作と同じで、プロパティパネルはどちらのビューでも同じように動作します。グリッドでは、ツールバーのビュー切り替えの横に「実行結果」が加わり、2 行目に「ターゲットを絞り込む」、「フローでグループ化」、「パブリック難読化を設定」、「マージを設定」が表示されます(セットアップコマンドを参照してください)。
行と列
各行は 1 つのターゲットです。ターゲットにマージされたアセンブリに独自の行はなく、そのターゲットの「入力」タブに表示されます。ツールバーの右端の件数は、たとえば「7 ターゲット」、ターゲットが別のターゲットにマージされている場合は「1 ターゲット · 10 件マージ済み」、フィルター適用中は「3 / 12 ターゲット」のように表示されます。
| 列 | 内容 |
|---|---|
| 「#」 | プロジェクトの順序における位置 |
| 「状態」 | 「準備完了」、「実行中」、「完了」、「警告ありで完了」、「失敗」、「入力なし」のいずれか |
| 「ファイル」 | 入力ファイル。詳細を開くシェブロンもここにあります |
| 「詳細」 | 「マージ 3 · 埋め込み 1 · 参照 2」のような概要、または実行後の警告数 |
| 「出力」 | ターゲットに設定された出力ファイル。ターゲットが既定の BabelOut フォルダーに書き出す場合は空です |
| 「進行状況」 | 実行中のターゲットの進行状況。実行の終了後も表示されたままになります |
列の選択
表示する列を選択するには、列ヘッダーを右クリックするか、ヘッダー上でメニューキーまたは Shift+F10 を押します。既定の列に加えて、「フロー · ステップ」、「後に実行」、「入力パス」と、「String Encryption」や「Control Flow Obfuscation」などプロパティパネルの任意の設定を追加できます。「既定値に戻す」で既定の列に戻ります。「ファイル」は常に表示されます。



表示する列の選択
列を移動するには、ヘッダーをドラッグするか、ヘッダー上で Alt+← / Alt+→ を押します。列の構成と順序はこのコンピューター上に記憶され、すべてのプロジェクトに適用されます。
並べ替え、絞り込み、グループ化
ヘッダーをクリックするとその列で並べ替えられ、もう一度クリックすると降順になります。並べ替えで変わるのは表示だけで、実行順序は変わりません。「#」をクリックすると「プロジェクトの順序」に戻ります。
「ターゲットを絞り込む」に入力すると、テキストが一致する行だけが表示されます。「フローでグループ化」は、各フローの行を「フロー 1」、「フロー 2」という見出しの下にまとめます。「フロー · ステップ」列と「後に実行」列を追加すると、何が何より先に実行されるかがグリッドでわかります。



フローごとにグループ化した行
選択と編集
行の選択とセルの編集は、スプレッドシートと同じように、マウスでもキーボードだけでも行えます。
| 操作 | 方法 |
|---|---|
| 行を選択する | 行をクリックするか、矢印キーで移動します |
| 選択に行を追加する、選択から行を外す | Ctrl+クリック(macOS では Cmd+クリック)、またはフォーカスのある行で Ctrl+Space |
| 範囲を選択する | Shift+クリック、または Shift を押しながら矢印キー |
| 表示されているすべての行を選択する | Ctrl+A(macOS では Cmd+A)。フィルターの適用中は、一致する行だけが選択されます。 |
| セル間を移動する | 矢印キー、Home、End、Page Up、Page Down |
| セルを編集する | Enter、F2、ダブルクリック、または入力を始める |
| 編集を確定またはキャンセルする | Enter または Tab で確定、Esc でキャンセル |
設定のセルは、プロパティパネルと同じコントロール(チェックボックス、リスト、テキストフィールド、ファイル選択ダイアログ)で編集します。複合設定には「オン · goto, switch」や「3 フィルター」のような概要が表示され、エディターはポップオーバーで開きます。



ポップオーバーでの複合設定の編集
編集は選択したすべての行に適用されます。値を受け付けないターゲットがある場合、Babel Desktop はそれらを「選択したすべてのターゲットには適用されませんでした:」の下に一覧表示し、ほかのターゲットには新しい値が保持されます。
実行中は設定を変更できません。「#」、「状態」、「ファイル」、「詳細」、「進行状況」、「フロー · ステップ」、「入力パス」は読み取り専用です。
実行順序
プロジェクトの順序で表示した行の並びは、プロジェクトファイル内のターゲットの順序です。これを変更するには、まず「#」で並べ替えてから、行をドラッグするか、Alt+↑ / Alt+↓ を押すか、行メニューの「上へ移動」または「下へ移動」を使用します。これらの操作は選択した行に適用され、新しい順序はプロジェクトと一緒に保存されます。
「後に実行」セルには、このターゲットが待つターゲットが一覧表示されます。このセルを編集すると、ほかのターゲットがそれぞれチェックボックス付きで一覧表示されます。ターゲットにチェックを付けるとそのターゲットからこのターゲットへのフローエッジが追加され、チェックを外すとエッジが削除されます。このターゲットがマップを読み込む元のターゲットはチェックが付いた状態で、ここでは外せません。代わりにマップリンクを削除してください。
ターゲットは、この場合もフローエッジとマップリンクに従って実行されます。行を移動しても、ターゲットが待っているターゲットより先に実行されることはありません。「設定 > 難読化 > 独立したフローを並列実行する」がオフの場合、ターゲットはその制約の範囲内で行の順序で実行されます。オンの場合、独立したフローを同時に実行できます。
ターゲットの詳細
「ファイル」セルのシェブロン、または行メニューの「詳細を表示」または「詳細を隠す」を使うと、行の下に 5 つのタブが開きます。各タブには件数が表示されます。
| タブ | 内容 |
|---|---|
| 「入力」 | マージ、埋め込み、参照されたアセンブリ。それぞれに「アクション」リスト(「マージ」、「埋め込み」、「参照」)があります。存在しないファイルには「ファイルが見つかりません。」と表示されます。 |
| 「ルール」 | XML ルールファイル |
| 「マップ」 | ターゲットが読み込むマップファイル。プロジェクト内の別のターゲットが書き出したマップには、そのターゲットの名前とともに「から」と表示されます。 |
| 「プラグイン」 | エンジンプラグインの DLL |
| 「検索フォルダー」 | エンジンが参照先のアセンブリを探すフォルダー |



ターゲットの入力
タブの右にある + アイコンでは、ファイルまたはフォルダーの選択ダイアログから項目を追加します。「入力」タブでは、「マージするアセンブリを追加…」、「埋め込むアセンブリを追加…」、「アセンブリ参照を追加…」、「依存関係を自動的に追加…」を選択できます。項目のゴミ箱アイコンをクリックすると、その項目が削除されます。「ルール」または「マップ」の項目を右クリックして「すべてのターゲットに適用」を選択すると、そのファイルがまだ追加されていないすべてのターゲットに追加されます。



別のターゲットが書き出したマップ
ファイルのドロップ
ファイルマネージャーからグリッドにファイルをドロップできます。
- アセンブリを空き領域にドロップすると、ターゲットが作成されます。行またはその「入力」タブにドロップすると、そのターゲットにマージされます。
.snkまたは.pfxファイルを行にドロップすると、そのターゲットのキーファイルになります。その行が選択に含まれている場合は、選択したすべての行に設定されます。.xmlファイルを「ルール」タブまたは「マップ」タブにドロップするとルールファイルまたはマップファイルとして追加され、.dllファイルを「プラグイン」タブにドロップするとプラグインとして追加されます。.babelファイルをドロップすると、そのプロジェクトが開きます。
その他のファイルは、「これらのファイルはここにドロップできません。」と表示されて拒否されます。
行メニュー
行を右クリックするか、メニューキーまたは Shift+F10 を押すと、その行のメニューが開きます。1 行の場合、メニューはノードのメニューと同じコマンドで始まります。複数の行を選択している場合は「ターゲットを削除」で始まります。削除には確認が必要です。



行のメニュー
| コマンド | 効果 |
|---|---|
| 「難読化レベルを設定」 | 選択した行に「レベル: 軽量」、「レベル: バランス」、「レベル: 最大」のいずれかを適用します。保護レベルを参照してください。 |
| 「設定をコピー」 | この行の保護設定を記憶します |
| 「設定を貼り付け」 | 選択した行の保護設定を、コピーした設定に置き換えます |
| 「上へ移動」、「下へ移動」 | 選択した行をプロジェクトの順序の中で移動します |
| 「詳細を表示」、「詳細を隠す」 | 選択した行の下のタブを開くか閉じます |
「設定を貼り付け」では、コピー元の行で設定されていない保護も解除されるため、ターゲットの保護は同じになります。パス、依存関係、パスワード、マップとログの設定、プラグインの引数、インライン XML ルールはコピーされません。
多数のターゲットの操作
大きなプロジェクトをすばやく設定するには、次のような方法があります。
- 1 つのターゲットを設定してから、その行で「設定をコピー」を選択し、ほかの行を選択して「設定を貼り付け」を選択します。
- 「ターゲットを絞り込む」に名前の一部を入力し、
Ctrl+A(macOS ではCmd+A)を押して一致する行を選択してから、設定の列を一度編集して、すべての行に適用します。 - 行を選択し、「難読化レベルを設定」で出発点となる設定を適用してから、列ごとに個々の設定を調整します。
- 1 つのターゲットにルールファイルまたはマップファイルを追加し、その項目で「すべてのターゲットに適用」を使用します。
- 実行前に「フロー · ステップ」列と「後に実行」列を追加し、「フローでグループ化」をオンにして、順序を確認します。