[{"data":1,"prerenderedAt":837},["ShallowReactive",2],{"docs-doc-zh-CN-ccm-package":3,"docs-list-zh-CN":739},{"doc":4,"locale":736,"available":737},{"id":5,"title":6,"body":7,"description":725,"extension":726,"group":727,"meta":728,"navigation":729,"order":730,"path":731,"section":727,"seo":732,"stem":733,"updated":734,"__hash__":735},"docs_zh\u002Fdocs\u002Fccm-package.md","CCM 压缩包标准",{"type":8,"value":9,"toc":713},"minimark",[10,34,51,54,59,66,76,173,176,227,230,236,257,260,273,375,395,398,405,443,447,453,543,549,552,555,586,589,674,677,680],[11,12,15],"callout",{"color":13,"icon":14},"success","i-lucide-lightbulb",[16,17,18,22,23,27,28,33],"p",{},[19,20,21],"strong",{},"新作品推荐按星际枢纽标准打包。"," CCM 格式在这里只作兼容旧作的说明：星际枢纽能识别、能安装，但它表达不了类型、启动器地图、封面与文档，安装位置只能从 ",[24,25,26],"code",{},"title"," 反推。改按",[29,30,32],"a",{"href":31},"\u002Fdocs\u002Fscnexus-package","星际枢纽压缩包标准","打包，清单是明确的 JSON，字段与落点一一对应；已经用 CCM 发过的旧作不必重做。",[16,35,36,42,43,46,47,50],{},[29,37,41],{"href":38,"rel":39},"https:\u002F\u002Fgithub.com\u002F7thAce\u002FSC2CCM",[40],"nofollow","CCM","（SC2 Campaign Manager）是《星际争霸II》战役包的另一套管理工具，它用一份 ",[24,44,45],{},"metadata.txt"," 描述作品，把战役放在游戏的 ",[24,48,49],{},"Maps\u002FCustomCampaigns"," 目录下。星际枢纽的导入与扫描都能读这种包，按 CCM 的约定安装，因此同一份作品可以同时给两种工具使用。",[16,52,53],{},"本页说明 CCM 侧的约定，以及星际枢纽读取时补上的判定。",[55,56,58],"h2",{"id":57},"metadatatxt-的格式","metadata.txt 的格式",[16,60,61,62,65],{},"文件内容是一行一个 ",[24,63,64],{},"键=值","，键名固定为小写：",[67,68,74],"pre",{"className":69,"code":71,"language":72,"meta":73},[70],"language-text","title=远征军之遗\ndesc=三章的单人战役，含自定义模组\nauthor=示例作者\nversion=1.2.0\ncampaign=WOL\n","text","",[24,75,71],{"__ignoreMap":73},[77,78,79,95],"table",{},[80,81,82],"thead",{},[83,84,85,89,92],"tr",{},[86,87,88],"th",{},"键",[86,90,91],{},"必填",[86,93,94],{},"说明",[96,97,98,111,124,136,148],"tbody",{},[83,99,100,105,108],{},[101,102,103],"td",{},[24,104,26],{},[101,106,107],{},"是",[101,109,110],{},"作品名称，同时决定安装目录名",[83,112,113,118,121],{},[101,114,115],{},[24,116,117],{},"desc",[101,119,120],{},"否",[101,122,123],{},"作品简介，缺省为空",[83,125,126,131,133],{},[101,127,128],{},[24,129,130],{},"author",[101,132,120],{},[101,134,135],{},"作者署名，缺省为空",[83,137,138,143,145],{},[101,139,140],{},[24,141,142],{},"version",[101,144,120],{},[101,146,147],{},"版本号，缺省为空",[83,149,150,155,157],{},[101,151,152],{},[24,153,154],{},"campaign",[101,156,107],{},[101,158,159,162,163,162,166,162,169,172],{},[24,160,161],{},"WOL","、",[24,164,165],{},"HOTS",[24,167,168],{},"LOTV",[24,170,171],{},"NCO"," 之一",[16,174,175],{},"解析规则：",[177,178,179,202,205,208,222],"ul",{},[180,181,182,183,186,187,190,191,193,194,197,198,201],"li",{},"逐行读取，每行以",[19,184,185],{},"第一个"," ",[24,188,189],{},"="," 分隔键与值，两侧空白会被去掉；所以值里可以再出现 ",[24,192,189],{},"（",[24,195,196],{},"desc=x=y"," 读到的简介是 ",[24,199,200],{},"x=y","）。",[180,203,204],{},"键区分大小写，必须写成小写；不认识的键会被忽略，不会报错。",[180,206,207],{},"文件按 UTF-8 解码，允许带 BOM；不是合法 UTF-8 时按 GB18030 再解一次，早年用 GBK 保存的包也能读。两种都解不出来时按清单损坏处理。",[180,209,210,211,213,214,217,218,221],{},"文件名是 ",[24,212,45],{},"（大小写不敏感），单个文件不超过 1 MiB，且不能放在 ",[24,215,216],{},".SC2Map"," \u002F ",[24,219,220],{},".SC2Mod"," 组件目录里面。",[180,223,224,226],{},[24,225,154],{}," 缺失或不在四个值里，整个包判为无效——CCM 格式只描述战役，没有别的类型。",[55,228,229],{"id":229},"目录布局",[67,231,234],{"className":232,"code":233,"language":72,"meta":73},[70],"远征军之遗.zip\n├─ metadata.txt\n├─ Campaign.SC2Map           # 入口地图\n├─ Mission01.SC2Map\n├─ Mission02.SC2Map\n├─ evolution\u002F                # 虫群之心专用\n│  └─ Evolution01.SC2Map\n└─ Mods\u002F\n   └─ Retribution.SC2Mod\n",[24,235,233],{"__ignoreMap":73},[177,237,238,243,254],{},[180,239,240,242],{},[24,241,45],{}," 与地图文件同级，放在压缩包根目录。",[180,244,245,246,249,250,253],{},"地图直接摆在根部，不要再套一层 ",[24,247,248],{},"Maps\u002F","；模组放在 ",[24,251,252],{},"Mods\u002F"," 里。",[180,255,256],{},"与星际枢纽标准一样，压缩包外再套一层文件夹是可以的，应用会向下找到唯一一组文件；出现两套同级内容时无法判断，会判为不支持。",[55,258,259],{"id":259},"落点怎么算",[16,261,262,263,162,266,269,270,272],{},"打包时不用写 ",[24,264,265],{},"maps",[24,267,268],{},"mods"," 清单，落点由文件名和 ",[24,271,154],{}," 推导：",[77,274,275,285],{},[80,276,277],{},[83,278,279,282],{},[86,280,281],{},"包内位置",[86,283,284],{},"目标",[96,286,287,320,335,349,361],{},[83,288,289,295],{},[101,290,291,292],{},"根部的 ",[24,293,294],{},"X.SC2Map",[101,296,297,298,300,301,304,305,300,307,304,310,300,312,304,315,300,317],{},"该战役的地图区域：",[24,299,161],{}," → ",[24,302,303],{},"Maps\u002FCampaign\u002F","，",[24,306,165],{},[24,308,309],{},"Maps\u002FCampaign\u002Fswarm\u002F",[24,311,168],{},[24,313,314],{},"Maps\u002FCampaign\u002Fvoid\u002F",[24,316,171],{},[24,318,319],{},"Maps\u002FCampaign\u002Fnova\u002F",[83,321,322,330],{},[101,323,324,326,327],{},[24,325,165],{}," 包里的 ",[24,328,329],{},"evolution\u002FX.SC2Map",[101,331,332],{},[24,333,334],{},"Maps\u002FCampaign\u002Fswarm\u002Fevolution\u002F",[83,336,337,344],{},[101,338,339,326,341],{},[24,340,168],{},[24,342,343],{},"voidprologue\u002FX.SC2Map",[101,345,346],{},[24,347,348],{},"Maps\u002FCampaign\u002Fvoidprologue\u002F",[83,350,351,356],{},[101,352,291,353],{},[24,354,355],{},"X.SC2Mod",[101,357,358,360],{},[24,359,252],{},"，包内路径原样保留",[83,362,363,370],{},[101,364,365,367,368],{},[24,366,252],{}," 下的 ",[24,369,220],{},[101,371,372,374],{},[24,373,252],{}," 下同样位置",[177,376,377,385,392],{},[180,378,379,380,162,382,384],{},"组件形式的地图或模组（以 ",[24,381,216],{},[24,383,220],{}," 结尾的目录）按整个目录处理，内部文件不逐个判断。",[180,386,387,388,391],{},"写在别的子目录里的地图不会被规划到任何位置，例如 ",[24,389,390],{},"Campaign\u002FLevel1.SC2Map","；想让地图生效，就摆在根部或上面列出的战役子目录里。",[180,393,394],{},"目标是按扩展名和文件名认的，改文件名等于改落点，所以重命名地图前要确认战役里的引用。",[55,396,397],{"id":397},"安装后放在哪",[16,399,400,401,404],{},"星际枢纽不按上一节的规划把地图写进 ",[24,402,403],{},"Maps\u002FCampaign","，而是按 CCM 自己的约定安装：",[177,406,407,421,431,437],{},[180,408,409,410,413,414,416,417,420],{},"整个包解压到",[19,411,412],{},"CCM 管理目录","下与 ",[24,415,26],{}," 同名的子目录里，包内相对路径保持不变。默认位置是 ",[24,418,419],{},"\u003C游戏目录>\u002FMaps\u002FCustomCampaigns","，可以在「设置」里改。",[180,422,423,424,427,428,430],{},"其中的模组会",[19,425,426],{},"另外复制","到游戏 ",[24,429,252],{},"，因为游戏按路径加载模组，留在管理目录里没用。",[180,432,433,434,436],{},"因此 CCM 包不会覆盖官方战役的地图文件；卸载或取消激活时只清理管理目录，已经复制进 ",[24,435,252],{}," 的模组不会被删除，也不会恢复被它替换过的同名模组。导入时界面会明确提示这一点：「CCM 导入时即安装 Mods，后续取消激活和卸载不会删除或恢复这些 Mods。」",[180,438,439,440,442],{},"已经存在于 CCM 管理目录里的作品，扫描时会被重新识别并出现在战役管理里；目录里只要有一份 ",[24,441,45],{}," 就够。",[55,444,446],{"id":445},"目录名由-title-生成","目录名由 title 生成",[16,448,449,450,452],{},"管理目录下的子目录名不是原样复制 ",[24,451,26],{},"，而是先清洗成能跨平台使用的名字：",[77,454,455,464],{},[80,456,457],{},[83,458,459,462],{},[86,460,461],{},"处理",[86,463,94],{},[96,465,466,478,494,502,535],{},[83,467,468,475],{},[101,469,470,471,474],{},"去掉 ",[24,472,473],{},"\u003C>:\"\u002F|?*"," 与控制字符",[101,476,477],{},"这些字符在文件名里不安全",[83,479,480,486],{},[101,481,482,483],{},"去掉首尾空白，空白替换为 ",[24,484,485],{},"_",[101,487,488,300,491],{},[24,489,490],{},"远征军之遗 改",[24,492,493],{},"远征军之遗_改",[83,495,496,499],{},[101,497,498],{},"去掉结尾的点",[101,500,501],{},"Windows 不允许目录名以点结尾",[83,503,504,507],{},[101,505,506],{},"拒绝保留名",[101,508,509,162,512,162,515,162,518,162,521,524,525,162,528,524,531,534],{},[24,510,511],{},"con",[24,513,514],{},"prn",[24,516,517],{},"aux",[24,519,520],{},"nul",[24,522,523],{},"com1","–",[24,526,527],{},"com9",[24,529,530],{},"lpt1",[24,532,533],{},"lpt9"," 不能作为目录名",[83,536,537,540],{},[101,538,539],{},"长度上限",[101,541,542],{},"255 字节（UTF-8）以内",[16,544,545,546,548],{},"名字洗成空串、撞上保留名或超过长度上限时，导入会失败并提示标题无法组成可用的目录名——换一个 ",[24,547,26],{}," 再试。同一目录已存在同名子目录时，按「已安装」处理，需要先卸载或改名。",[55,550,551],{"id":551},"星际枢纽怎么识别这类包",[16,553,554],{},"导入或扫描时，客户端按下面的顺序找描述文件：",[556,557,558,568,574,580],"ol",{},[180,559,560,561,564,565,567],{},"找到 ",[24,562,563],{},"package.json"," 与 ",[24,566,45],{}," 中最外层的那一份。同一层里出现多份描述文件无法判断用哪个，判为不支持。",[180,569,570,571,573],{},"两份都在且作品类型不同时，会让你选择按哪一种安装；类型相同则优先用 ",[24,572,563],{},"。",[180,575,576,577,579],{},"只有 ",[24,578,45],{}," 时按 CCM 包处理，类型固定为战役。",[180,581,582,583,585],{},"两份都没有时，看包内有没有 ",[24,584,403],{}," 目录：有按战役处理，没有按自制作品处理。",[55,587,588],{"id":588},"与星际枢纽标准的差别",[77,590,591,602],{},[80,592,593],{},[83,594,595,598,600],{},[86,596,597],{},"项目",[86,599,32],{},[86,601,6],{},[96,603,604,619,630,641,652,663],{},[83,605,606,609,614],{},[101,607,608],{},"清单文件",[101,610,611,613],{},[24,612,563],{},"（JSON）",[101,615,616,618],{},[24,617,45],{},"（键值对）",[83,620,621,624,627],{},[101,622,623],{},"能描述的作品",[101,625,626],{},"战役、自制作品、共享模组包",[101,628,629],{},"只有战役",[83,631,632,635,638],{},[101,633,634],{},"安装位置",[101,636,637],{},"由清单逐项声明",[101,639,640],{},"按约定推导，落在 CCM 管理目录",[83,642,643,646,649],{},[101,644,645],{},"版本校验",[101,647,648],{},"结构校验 + 发布时语义化版本检查",[101,650,651],{},"只当作文本，不做版本比较",[83,653,654,657,660],{},[101,655,656],{},"多语言、图片、说明文档",[101,658,659],{},"支持",[101,661,662],{},"不支持",[83,664,665,668,671],{},[101,666,667],{},"编辑器提示与 Schema",[101,669,670],{},"有",[101,672,673],{},"无",[16,675,676],{},"需要多语言条目、封面图、说明文档或依赖包时，用星际枢纽标准；只是把已有的 CCM 作品交给玩家，保持原样即可。",[55,678,679],{"id":679},"自检清单",[556,681,682,690,693,705,710],{},[180,683,684,686,687,689],{},[24,685,45],{}," 与地图同级，键名全小写，",[24,688,154],{}," 是四个值之一。",[180,691,692],{},"文件用 UTF-8 保存；从旧工具导出的 GBK 文件也能读，但新作品不要再依赖这一点。",[180,694,695,696,162,699,702,703,573],{},"地图摆在根部（或 ",[24,697,698],{},"evolution\u002F",[24,700,701],{},"voidprologue\u002F","），模组放在 ",[24,704,252],{},[180,706,707,709],{},[24,708,26],{}," 里没有路径分隔符之类的字符，也不会撞上保留名。",[180,711,712],{},"导入后核对规划出来的目标文件，再进游戏确认章节能正常加载。",{"title":73,"searchDepth":714,"depth":714,"links":715},3,[716,718,719,720,721,722,723,724],{"id":57,"depth":717,"text":58},2,{"id":229,"depth":717,"text":229},{"id":259,"depth":717,"text":259},{"id":397,"depth":717,"text":397},{"id":445,"depth":717,"text":446},{"id":551,"depth":717,"text":551},{"id":588,"depth":717,"text":588},{"id":679,"depth":717,"text":679},"CCM 用 metadata.txt 描述战役的键值格式、目录布局与安装落点，以及星际枢纽读取这类包时的处理方式。","md","reference",{},true,20,"\u002Fdocs\u002Fccm-package",{"title":6,"description":725},"docs\u002Fccm-package","2026-11-01","CZLY1lk1FwTJST8F237bjmLU4hsx1WYjYVI14lSjRWA","zh-CN",[736,738],"en",[740,747,752,756,762,766,768,769,773,777,782,786,791,796,801,806,811,816,821,826,832],{"path":741,"title":742,"description":743,"order":744,"group":745,"section":746,"contentLocale":736},"\u002Fdocs\u002Feditor","创作流程概览","从在《星际争霸II》编辑器中制作，到打包、分发与更新，说明星际枢纽在创作流程里承担的环节。",1,"start","editor",{"path":748,"title":749,"description":750,"order":744,"group":745,"section":751,"contentLocale":736},"\u002Fdocs\u002Foverview","快速开始","「星际枢纽」是一款专为星际社区服务的枢纽应用","app",{"path":753,"title":754,"description":755,"order":744,"group":727,"section":727,"contentLocale":736},"\u002Fdocs\u002Freference","概述","收录导入、安装与分发内容时依赖的压缩包与安装源约定。",{"path":757,"title":758,"description":759,"order":760,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Fcampaign","战役管理","把自制战役导入战役库、激活到游戏，并随时恢复官方战役",10,"usage",{"path":763,"title":764,"description":765,"order":760,"group":761,"section":746,"contentLocale":736},"\u002Fdocs\u002Fpackaging","打包安装包","把编辑器产出的地图、模组与 package.json 组织成一个能被星际枢纽自动识别并安装的压缩包。",{"path":31,"title":32,"description":767,"order":760,"group":727,"section":727,"contentLocale":736},"星际枢纽作品包的目录结构、package.json 清单字段、地图与模组资源声明、启动器与包内资料的写法。",{"path":731,"title":6,"description":725,"order":730,"group":727,"section":727,"contentLocale":736},{"path":770,"title":771,"description":772,"order":730,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Fcustomize","自制作品","把地图与模组直接装进游戏，指定启动器地图后一键启动",{"path":774,"title":775,"description":776,"order":730,"group":761,"section":746,"contentLocale":736},"\u002Fdocs\u002Ftoolbox","创作工具 · 编码转换","把中文等非 ASCII 文本转成 Galaxy 代码里可用的转义写法，可选直接转码、字符串、文本与触发调试四种输出。",{"path":778,"title":779,"description":780,"order":781,"group":727,"section":727,"contentLocale":736},"\u002Fdocs\u002Fgithub-source","GitHub 安装源标准","把公开 GitHub 仓库当作安装源时，仓库需要满足的清单与结构要求，以及地址与分支的写法。",30,{"path":783,"title":784,"description":785,"order":781,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Fweekly-mutations","每周突变","查看本周突变的地图、因子与社区评分，并查阅全部突变因子",{"path":787,"title":788,"description":789,"order":790,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Freplays","录像管理","按星际资料与录像类型索引录像，支持去重、批量导出与对局数据查看",40,{"path":792,"title":793,"description":794,"order":795,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Fworkshop","创意工坊","浏览社区作品、查看详情并下载已审核的发布版本",50,{"path":797,"title":798,"description":799,"order":800,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Fcreator","创作者中心与上传管理","创建作品、维护资料、上传新版本并跟踪上传任务",60,{"path":802,"title":803,"description":804,"order":805,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Fdownloads","下载管理","从 GitHub 或创意工坊取回内容，确认后安装到游戏",70,{"path":807,"title":808,"description":809,"order":810,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Ftools","创作工具","编码转换等本地辅助工具，输入不会上传也不会保存",80,{"path":812,"title":813,"description":814,"order":815,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Fai-assistant","智能助手","把本地数据与本机 AI 客户端连起来的受控 MCP 服务",90,{"path":817,"title":818,"description":819,"order":820,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Faccount","账号与个人中心","登录、资料与等级成长，以及两步验证的开启与维护",100,{"path":822,"title":823,"description":824,"order":825,"group":761,"section":751,"contentLocale":736},"\u002Fdocs\u002Fsettings","设置","语言、游戏目录、功能开关与日志隐私，四个标签页逐项说明",110,{"path":827,"title":828,"description":829,"order":830,"group":831,"section":751,"contentLocale":736},"\u002Fdocs\u002Fcontributing","参与开发","参与「星际枢纽」开发的方式：仓库分工、开发环境、提交前检查、代码与文档约定、行为准则，以及安全问题的报告渠道。",200,"contribute",{"path":833,"title":834,"description":835,"order":836,"group":831,"section":751,"contentLocale":736},"\u002Fdocs\u002Flocalization","贡献翻译","界面翻译文件的位置与键名规则、提交流程、本地验证方法，以及新增一门界面语言需要改动的代码位置。",210,1793550745232]