Add TownSquare scene assets, resource production docs, and model pipeline updates.
Bring in plaza props/prefabs, ZhaoYun source GLB, design originals, and Hunyuan/Blender tooling used to produce them. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -6,13 +6,14 @@
|
||||
{ActorName}_base.png # RGB albedo, A=AO/透明
|
||||
{ActorName}_mix.png # RG sphere-normal, B=metallic, A=roughness
|
||||
{ActorName}.mat # Test/XPbr
|
||||
concept.png # 可选
|
||||
{ActorName}.prefab # Unity 菜单生成
|
||||
|
||||
概念图留在 Doc/Design/Character/,不要拷进 Bundles。
|
||||
|
||||
兼容旧五通道烘焙目录(_color/_normal/_ao/_metallic/_roughness)。
|
||||
|
||||
用法:
|
||||
python Tools/install_character_bundles.py -a MaleExplorer -b Tools/output/actor_game/actor_xpbr -c ref.png
|
||||
python Tools/install_character_bundles.py -a MaleExplorer -b Tools/output/actor_game/actor_xpbr
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -116,19 +117,13 @@ def install(
|
||||
shutil.copy2(meta, Path(str(target) + ".meta"))
|
||||
copied.append(str(target.relative_to(_repo_root())).replace("\\", "/"))
|
||||
|
||||
concept_rel = None
|
||||
if concept is not None:
|
||||
concept = concept.expanduser().resolve()
|
||||
if not concept.is_file():
|
||||
raise FileNotFoundError(f"概念图不存在: {concept}")
|
||||
target = dest / "concept.png"
|
||||
if not dry_run:
|
||||
shutil.copy2(concept, target)
|
||||
concept_rel = str(target.relative_to(_repo_root())).replace("\\", "/")
|
||||
copied.append(concept_rel)
|
||||
|
||||
mode = "xpbr" if "base" in sources else "legacy_pbr"
|
||||
return {
|
||||
result = {
|
||||
"ok": True,
|
||||
"actor": actor,
|
||||
"mode": mode,
|
||||
@@ -139,6 +134,9 @@ def install(
|
||||
f"生成挂 XPbr 的 {actor}.prefab;并登记 Doc/ResDesc_Model.md"
|
||||
),
|
||||
}
|
||||
if concept is not None:
|
||||
result["design"] = str(concept.relative_to(_repo_root())).replace("\\", "/")
|
||||
return result
|
||||
|
||||
|
||||
def main(argv: list[str] | None = None) -> int:
|
||||
@@ -150,7 +148,12 @@ def main(argv: list[str] | None = None) -> int:
|
||||
required=True,
|
||||
help="model_lowpoly_bake 的 *_xpbr 目录,或旧五通道 bake 子目录",
|
||||
)
|
||||
p.add_argument("--concept", "-c", default=None, help="可选概念图,复制为 concept.png")
|
||||
p.add_argument(
|
||||
"--concept",
|
||||
"-c",
|
||||
default=None,
|
||||
help="设计原稿路径(仅校验存在,不拷进 Bundles;应放在 Doc/Design/)",
|
||||
)
|
||||
p.add_argument("--dry-run", action="store_true")
|
||||
args = p.parse_args(argv)
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user