インフラスケジュール設定
1996字程度約7分
この文書は機械翻訳です。もし可能であれば、中国語の文書を読んでください。もし誤りや修正の提案があれば、大変ありがたく思います。
resource/custom_infrast/*.json 各フィールドの設定方法と説明
ヒント
JSON ファイルはコメントをサポートしていません。テキスト内のコメントはプレゼンテーション用にのみ使用されます。直接コピーして使用しないでください。
完全なフィールドの一覧
{
"title": "サブ垢スケジュール", // タイトル,オプション
"description": "イロハニホヘト", // 説明,オプション
"plans": [
{
"name": "早朝組", // プランタイトル,オプション
"description": "lol", // 説明,オプション
"period": [ // シフト時間の間隔,オプション
// 現在時刻がこの間隔内にある場合、プランが自動的に選択されます (jsonファイル全体が複数のプランを含む場合もあります)
// このフィールドが存在しない場合は、実行のたびに自動的に次のプランに切り替わります。
// core ではこのフィールドを扱わないので、maa を統合するためにインターフェイスを使用する場合は、このロジックを自分で実装してください。
[
"22:00", // 必須 記述のフォーマットは hh:mm, 日をまたぐ場合はこの例のように記述してください。
"23:59"
],
[
"00:00",
"06:00"
]
],
"duration": 360, // 作業時間(分) 予約項目、未実装 将来的には、シフトを変更時間を告知させるポップアップ時間になるかも? 自動的に変更される機能になる可能性もあり
"Fiammetta": { // “フィアメッタ” がどのオペレーターを配属するか、オプション、記入しない場合は配属しない。
"enable": true, // “フィアメッタ” を使うかな、オプション、デフォルト true
"target": "シャマレ", // ターゲットオペレーター。ここではOCRを使用して行い、対応するクライアント言語のオペレーター名を入力する必要があります
"order": "pre", // 全シフト前またはシフト後に使用、オプション、引数 "pre" / "post", デフォルト "pre"
},
"drones": { // ドローン使用、任意、未記入の場合はドローンを使用しない
"enable": true, // ドローンを使用するかどうか、オプション、デフォルト true
"room": "trading", // 使用する施設、引数 "trading" / "manufacturing"
"index": 1, // 施設番号、tab の番号に対応、引数 [1 - 5]
"rule": "all", // ルール、予約フィールド、未実装。後で使用する可能性がある。
"order": "pre" // オペレーターの交換前後の使用設定、オプション、引数 "pre" / "post", デフォルト "pre" (テキーラなど)
},
"groups":[ // "control" / "manufacture" / "trading" / "recycle" の場合、オペレーターグループを設定できます
{
"name":"A",
"operators":[
"グム",
"シルバーアッシュ",
"メイ"
]
},
{
"name":"B",
"operators":[
"セイリュウ",
"ユーネクテス",
"ウィーディ"
]
}
],
"rooms": { // 部屋情報,必須
// 引数 "control" / "manufacture" / "trading" / "power" / "meeting" / "hire" / "dormitory" / "processing" / "training" / "recycle"
// 1つもないということは、その施設ではシフト変更にデフォルトのアルゴリズムが使用されていることを意味します。
// 施設配列の部屋オブジェクトが実際の部屋数より少ない場合、未設定の最初の部屋からその後の部屋はシフト変更されず、施設全体に対する未設定の通知が 1 件送信されます。
// 施設配列が空の場合(施設キーを明示的に記述したが内容が [] の場合)、その施設全体は現状維持されシフト変更されません。これは施設キーがない場合(デフォルトのアルゴリズムでシフト変更)とは区別されます。応接室の手がかりや訓練室の訓練継続など施設レベルの操作は通常どおり実行されます。
// 部屋オブジェクトを書いたが配置の意思がない(operators/candidates が空または省略、autofill とオペレーターグループも未設定)場合、その部屋は人員交代のみ行わず現在の配置をそのまま維持し、 「部屋は現状維持」 のコールバックを送信します。製品など他のフィールドの処理には影響しません
// skip フィールドはその部屋の人員交代と製品切替の両方をスキップします。ドローンは通常どおり使用されます(部屋の交代がない場合、pre と post に時系列の違いはありません)。応接室の手がかりフローや訓練室の 「訓練継続」 など施設レベルの操作には影響しません。skip はログのみ記録し 「部屋は現状維持」 のコールバックを送信しない点が、配置の意思がない場合との違いです
// 部屋のシフトを変更しない場合は、skip を使用するか、タスク設定 - 基地仕事 で該当施設のチェックを外すだけです。
"control": [
{
"operators": [
"シー", // OCRを使用してこれを行うには、対応するクライアント言語のオペレーター名を渡す必要があります。
"リィン", // JP版なら日本語で入力しろってことですね。
"ケルシー",
"アーミヤ",
"ムリナール"
]
}
],
"manufacture": [
{
"operators": [
"フェン",
"シーン",
"クルース"
],
"sort": false, // ソートするかどうか(上の オペレーター の順番で)、オプション、デフォルトはfalse
// 例:シーン、パラス、シャマレ、などのオペレーター、そして "sort": false を使用すると、オペレーターの順序が乱れ、事前有効の効果が失われる可能性があります。
// "sort": true を使う、この問題を避けることができる
},
{
"skip": true // 現在の施設をスキップするかどうか(配列番号に対応),オプション,デフォルトは false
// true の場合、他のすべてのフィールドを空にすることができる。 オペレーター交代と製品切替の操作が省略され、ドローンの使用は通常どおり行われ、手がかりの交換や訓練室の 「訓練継続」 など施設レベルの操作にも影響しません。
},
{
"operators": [
"Castle-3"
],
"autofill": true, // 残った位置を自動的に埋めるためにオリジナルのアルゴリズムを使用、オプション、デフォルトは false
// operators が空または省略の場合、その部屋は前述の 「配置の意思がない」 場合の扱いに従い現状維持されます
// operators が空でない場合、施設全体の効率ではなく、単一のオペレータの効率のみで考慮されます。
// 後でカスタムシステムと競合する可能性があることに注意してください。たとえば、後で必要な関数がここで使用される場合、注意するか、autofill を最後に置いてください
"product": "Battle Record" // 現在の製造資材、オプション
// 現在の設備がジョブで設定された製品と一致しないことが確認された場合、インターフェースは赤いメッセージでポップアップ表示され、後でより便利になる可能性があります
// 使用可能引数: "Battle Record" | "Pure Gold" | "Dualchip" | "Originium Shard" | "LMD" | "Orundum"
},
{
"operators": [
"ドロシー"
],
"candidates": [ // サブオペレーター,オプション。埋まるまで、誰でも利用可能です
// 他の施設で勤務中のオペレーターは選ばれません(選択段階で除外されます)。
// 体力が基建交代の体力しきい値を下回るオペレーターはスキップされ、
// 宿舎は逆に体力が満タンになったオペレーターだけ休息枠を明け渡し、
// 満たないオペレーター(この宿舎で休息中の者を含む)は選択可能のままです
// autofill=true との互換性はありません。空白でない場合、autofill は false である必要があります。
"アステジーニ",
"フィリオプシス",
"サイレンス"
]
},
{
"use_operator_groups":true, // グループ内の演算子のグループ化を使用するには true に設定します。デフォルトは false です。
"operators":[ // 有効にすると、演算子の名前がグループ名として解釈されます。
"A", // グループ化は気分の閾値と設定順序に従って選択されます
"B" // グループ A に気分がしきい値を下回るオペレーターがいる場合、グループ B が使用されます
// すべてのグループが利用できない場合、候補リスト(candidates)は通常どおり適用されます。候補も autofill も未設定の場合、この部屋は元のまま変更されず、デフォルトのアルゴリズムによる自動選択も行われません
]
}
],
"meeting": [
{
"autofill": true // 応接室は autofill
}
],
"training": [ // 訓練室、訓練枠オペレーターと補助者を設定
{
// 補助者候補、任意。省略時は補助者を選択しません。補助枠には訓練枠のような参加条件はなく、
// どのオペレーターでも配置できますが、汎用の候補欄と同様に他の施設で勤務中の候補は
// 選ばれません(選択段階で除外されます)。補助者候補にも生産施設と同じ意味で
// 基建交代の体力しきい値が適用され、しきい値を下回る候補は選択段階で
// スキップされます。候補がすべて除外された場合、補助者は元のまま変更されます。
// 他の施設で働くオペレーター技能のうち 「基地に同陣営の
// オペレーターが配置されていると効率が上がる」 系の条件を満たす用途にも使えます
// (該当陣営のオペレーターを 1 人 operatorsA に入れるだけで、専門技能とは無関係)。
// 名前の要件は operators と同じ(中国大陸サーバー以外でも簡体字中国語名を
// 指定します。認識結果は簡体字に正規化されてから照合されます)
"operatorsA": ["杜宾"],
// 訓練枠オペレーター候補、任意。省略時は訓練枠のオペレーターを交代しません。
// ゲーム内の選択リストの順で最初に見つかったオペレーターを配置します。
// 配置には訓練枠の参加条件があり、オペレーターは昇進 2 済みかつ専門技能が最大に
// 達していないスキルを残している必要があります。全スキルの専門技能が最大の
// オペレーターは選択リストに表示されず、設定しても実質スキップされます。
// 訓練中は訓練枠がロックされ変更できません。配置するだけで新しい訓練は開始せず、
// 専門技能訓練の開始は引き続き手動で行う必要があります。
// 名前の要件は operators と同じ
"operatorsB": ["银灰"]
// operators/candidates などの汎用フィールドは訓練室には無効で、skip と operatorsA/operatorsB のみ有効
// 「訓練継続」 はスケジュール表とは独立した GUI オプションで、rooms の三状態(空配列 / skip / 配置の意思なし)の影響を受けません。いずれの状態でも訓練継続は通常どおり実行され、人員交代のみスキップされます
// 「訓練継続」 有効時は、交代処理がまず現在のオペレーターの専門技能の継続を試みます。成功すれば
// 訓練枠はそのまま維持され、補助者のみ設定に従って交代します。継続できない場合(素材不足または
// 専門技能が最大)は、設定に従って訓練枠のオペレーターを交代します
}
],
"recycle": [ // 回收站(駐在枠 2 つに役割の区別はなく、製造所と同じ書式、product フィールドは無効)
{
"operators": ["フェン", "クルース"]
}
]
}
},
{
"name": "夜勤組"
// ...
}
]
}サンプル
スケジュール表の拡張プロトコル
MAA の基本スケジュールプロトコルには、オペレーターのシフト情報のみが含まれます。スケジュール表の拡張プロトコルは MAA のスケジュール設定を基に、任意の基地配置 layout、オペレーター情報 operators、生成元とバージョン情報 metadata を追加します。これにより、MAA、明日方舟一图流-スケジュール自動生成ツール、明日方舟一图流-スケジュール収益計算ツールなどのサードパーティーアプリケーションで同じファイルを共有し、双方向にデータを交換できます。拡張フィールドはすべて任意で、サードパーティーアプリケーションの実際の要件に応じて調整できます。
| トップレベルのフィールド | 用途 |
|---|---|
layout | 施設の種類、レベル、位置を含む基地配置を記録 |
operators | オペレーターの昇進段階とレベルの情報を記録 |
metadata | プロトコルのバージョン、生成ツール、モジュールのバージョンなどのデータと、サードパーティーツールが必要とする追加データを記録 |
拡張フィールド一覧
この例は基本プロトコルの plans などと組み合わせて使用してください。育成状況とバージョン番号は説明用の値です。実際の JSON からはコメントを削除してください。
{
// 3 つともトップレベルの任意フィールドで、個別に指定でき、MAA の基本スケジュール実行には影響しない
// ツールはインポート、編集、エクスポート時に拡張情報を保持する
"layout": [ // 建造済みの基地配置全体、任意。省略は配置情報なしを意味する
// 記載のない施設は未建造。plans[].rooms で省略した施設には基本プロトコルの既定の規則を適用
// type:施設の種類、level:施設レベル、position:実際の位置
{ "type": "control", "level": 5 },
// 同じ施設種類の部屋順序は plans[].rooms とドローンの index に対応
{ "type": "trading", "level": 3, "position": "B101" },
{ "type": "trading", "level": 3, "position": "B102" },
{ "type": "trading", "level": 1, "position": "B103" },
{ "type": "manufacture", "level": 3, "position": "B201" },
{ "type": "manufacture", "level": 3, "position": "B202" },
{ "type": "manufacture", "level": 2, "position": "B203" },
{ "type": "manufacture", "level": 2, "position": "B301" },
{ "type": "power", "level": 3, "position": "B302" },
{ "type": "power", "level": 3, "position": "B303" },
{ "type": "meeting", "level": 3 },
{ "type": "processing", "level": 3, "position": "B105" },
{ "type": "hire", "level": 3, "position": "B205" },
{ "type": "training", "level": 3, "position": "B305" },
{ "type": "dormitory", "level": 1, "position": "B104" },
{ "type": "dormitory", "level": 1, "position": "B204" },
{ "type": "dormitory", "level": 1, "position": "B304" },
{ "type": "dormitory", "level": 1, "position": "B404" },
{ "type": "recycle", "level": 1, "position": "B405" }
],
"operators": { // 育成状況、任意。ゲーム内 ID をキーとして使用
// 部屋のオペレーター配置設定を置き換えない
"char_002_amiya": {
"name": "アーミヤ", // オペレーター名、任意
"elite": 2, // 昇進段階:0、1、2
"level": 80 // 現在の昇進段階でのレベル
},
"char_124_kroos": {
"name": "クルース",
"elite": 1,
"level": 55
}
},
"metadata": { // 生成元とバージョンなどの追加情報、任意
"extensionVersion": "1.0", // 拡張プロトコル全体のバージョン文字列、任意。省略時はバージョン情報なし
"generator": { // 元の生成ツールの情報
"id": "yituliu-riic-schedule-generator",
"name": "明日方舟一图流-排班表自动生成工具",
"url": "https://ark.yituliu.cn/tools/scheduleV3"
},
"moduleVersions": { // 生成時のモジュールバージョン。識別子は生成ツールが定義し、generator.id と合わせて解釈
"layout": "v20260924.2314", // 基地配置モジュール
"data": "v20260924.2314", // データモジュール
"team": "v20260928.1118", // チームモジュール
"assembler": "v20260822.2233", // スケジュール組み立て
"yield": "v20261002.1334", // 収益計算
"recommendation": "v20260928.1102" // デバッグ情報
}
}
}