Add formal enemies, remaining formal partners and synthesized UI SFX
- UI SFX v3: procedurally synthesized one-shots (Tools/synth_ui_sfx.py) wired to buttons, rewards, errors and red dots via UiSfx, gated by the SFX setting. - Five formal enemies (Hornlet, Dashlet, Shellhorn, HornCaptain, GreatHorn): Hunyuan 50k -> 2000-tri XPbr, DGXA TokenRig, Idle/Walk/Attack, nested per type in PrototypeArena; PrototypeBattle.Enemy gains presentation-only Moving/Strikes. - Formal partners for all ten pets in the arena and portraits, including new VineSprite, ThunderLeopard and TideWhale. - Pipeline fixes: reject local TokenRig fallback, drop loose mesh islands, configurable Unity run_script timeout, companion static stage. - Also includes concurrent work from another tool in this working tree (FlameLion, enemy combat FX, challenge mode, home explorer, server updates). - Resources registered in Doc/ResDesc_*.md; verified on isolated :18081. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# G3 经济样例
|
||||
|
||||
由 `Tools/economy_sample.py` 读取 `Config/Gameplay/greenfield.json` 生成。不计弹珠自然恢复。弹珠台按五个落区等概率取均值:糖果 20、金币 52。实际单次受路径影响。
|
||||
|
||||
## 对照设计稿
|
||||
|
||||
`GameDesign` 8.2 的首日上限是 **67** 枚弹珠:初始 20、签到 10、每日任务 15、免费补给 5、前五关首通 17。按同一口径合计得到 **67**。现行 1-1~1-5 首通弹珠合计是 **17**,与稿一致。
|
||||
|
||||
稿中「10 发预计糖果 200、金币 520、券 1」。现行均值为糖果 200、金币 520、券 1,与稿一致。
|
||||
|
||||
## 首日获取上限
|
||||
|
||||
假设当天领完邮件、签到、三个每日任务、免费补给和教学目标,打通 1-1~1-5 并打开已掉落的绿野补给箱与碎片自选箱。自选箱只给碎片,不进下表钱包。溪口大礼箱要先通过 1-5,打开后另有金币 150、糖果 80、弹珠 5、券 1,未计入本表。
|
||||
|
||||
| 来源 | 到账 |
|
||||
| --- | --- |
|
||||
| 初始弹珠 | 弹珠20 |
|
||||
| 欢迎邮件 | 弹珠5、糖果20 |
|
||||
| 七日签到第1天 | 弹珠10 |
|
||||
| 完成3次弹珠发射 | 弹珠5 |
|
||||
| 完成1场冒险 | 弹珠5 |
|
||||
| 与伙伴互动1次 | 弹珠5 |
|
||||
| 每日免费补给 | 弹珠5 |
|
||||
| 教学目标(通过1-1) | 弹珠5 |
|
||||
| 首通 1-1 | 弹珠3、糖果40、金币80 |
|
||||
| 首通 1-2 | 弹珠3、糖果50、金币90 |
|
||||
| 首通 1-3 | 弹珠3、糖果60、金币100 |
|
||||
| 首通 1-4 | 弹珠3、糖果70、金币110 |
|
||||
| 首通 1-5 | 弹珠5、糖果100、金币200 |
|
||||
| 打开绿野补给箱(1-1掉落) | 弹珠2、糖果30、金币60 |
|
||||
| 打开伙伴碎片自选箱(1-3掉落) | 无资源 |
|
||||
|
||||
合计:**弹珠 79、糖果 370、金币 640、捕捉券 0**。这是获取上限,不是要求当天花完。
|
||||
|
||||
## 七日回访
|
||||
|
||||
不打新关、不发射。每日未领奖励过期,下表按七天都当天领完。签到不循环。
|
||||
|
||||
| 来源 | 到账 |
|
||||
| --- | --- |
|
||||
| 七日签到全部领取 | 弹珠65 |
|
||||
| 七日每日任务全部领取 | 弹珠105 |
|
||||
| 七日免费补给 | 弹珠35 |
|
||||
|
||||
合计:**弹珠 205、糖果 0、金币 0、捕捉券 0**。
|
||||
|
||||
## 卡在 1-5 之前
|
||||
|
||||
已通过 1-1~1-4,打不过溪口大角王。当天可领来源如下,不含为了拿糖果而发射的弹珠台产出。
|
||||
|
||||
| 来源 | 到账 |
|
||||
| --- | --- |
|
||||
| 初始弹珠 | 弹珠20 |
|
||||
| 欢迎邮件 | 弹珠5、糖果20 |
|
||||
| 签到第1天 | 弹珠10 |
|
||||
| 完成3次弹珠发射 | 弹珠5 |
|
||||
| 完成1场冒险 | 弹珠5 |
|
||||
| 与伙伴互动1次 | 弹珠5 |
|
||||
| 免费补给 | 弹珠5 |
|
||||
| 教学目标 | 弹珠5 |
|
||||
| 首通 1-1 | 弹珠3、糖果40、金币80 |
|
||||
| 首通 1-2 | 弹珠3、糖果50、金币90 |
|
||||
| 首通 1-3 | 弹珠3、糖果60、金币100 |
|
||||
| 首通 1-4 | 弹珠3、糖果70、金币110 |
|
||||
| 打开绿野补给箱 | 弹珠2、糖果30、金币60 |
|
||||
|
||||
合计:**弹珠 74、糖果 270、金币 440、捕捉券 0**。
|
||||
|
||||
- 训练到建议 Lv.5 需要糖果 300。账上差 30,按均值再发射 2 次可补上。主线不另扣体力。
|
||||
- 进化需要金币 500。账上差 60,按均值再发射 2 次可补上。通过 1-1 后商店每天还能用金币换糖果,那是把金币换成糖果,不增加总资源。
|
||||
- 进化需要碎片 40。1-3 自选箱提供 10,还差 30。重复伙伴每次 20 片,不能把碎片换回捕捉券。
|
||||
|
||||
训练、进化和再抽一只伙伴都能从免费来源走到,碎片比糖果和金币更慢。
|
||||
@@ -0,0 +1,28 @@
|
||||
# G3 性能预算
|
||||
|
||||
对应 `GameDesign` 第 13 节。本文件固定验收口径;微信真机数字还没测,不能把编辑器帧率写成已达标。
|
||||
|
||||
| 项目 | 预算 |
|
||||
| --- | --- |
|
||||
| 帧率 | 目标机持续 30 FPS。60 FPS 只给高画质档,不作为 P0 通过线 |
|
||||
| 战斗同屏 | 伙伴最多 6。每关 3 波共 9 个敌人,可见敌人不超过 40 |
|
||||
| 营地 | 休息区最多展示已选伙伴,未出场模型不进当前战斗加载 |
|
||||
| 渲染 | URP 一盏主光。设置「流畅」走最低质量档,「标准」走中间档,「精细」走最高档 |
|
||||
| 加载 | 页面与战场异步加载。音效和主界面音乐按功能持有,不在首屏加载全部伙伴 |
|
||||
| 包体 | 微信主包只放壳和启动资源,玩法与美术走热更。尚未构建 Player,没有包体实测 |
|
||||
|
||||
画质三档已由 `PrototypeClientPrefs.Quality` 映射到 `QualitySettings`。桌面构建不振动;微信或手机上再验振动与音频解锁。
|
||||
|
||||
## 编辑器诊断(2026-10-21)
|
||||
|
||||
`VerifyG3.Play` 在隔离 18081 新账号上走通首页引导「发射第一枚弹珠」,进入 1-1 后主动放弃。结算文案含「建议:可调整前后排后免费重试」。流畅档采样 90 帧,见 `editor_frame_sample.json`。
|
||||
|
||||
| 项 | 实测 |
|
||||
| --- | --- |
|
||||
| 环境 | Unity 编辑器,Windows 11,RTX 3060,画质流畅 |
|
||||
| 平均帧率 | 55.3 FPS(最短帧 15.51 ms,最长帧 143.68 ms) |
|
||||
| 同屏 | 伙伴 2,采样窗口内敌人 1。上限检查为伙伴 ≤6、敌人 ≤40 |
|
||||
|
||||
这组数字只说明编辑器开场能跑。最长帧有一次超过 100 ms。不能当作微信目标机已达到 30 FPS。
|
||||
|
||||
未完成:微信真机帧率、内存、主包体积、首屏加载时间。
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"config": "Config/Gameplay/greenfield.json",
|
||||
"ignored": [
|
||||
"natural marble recovery",
|
||||
"pinball path variance beyond bin average"
|
||||
],
|
||||
"pinballAverage": {
|
||||
"candy": 20.0,
|
||||
"coins": 52.0,
|
||||
"perTenShots": {
|
||||
"candy": 200,
|
||||
"coins": 520,
|
||||
"tickets": 1
|
||||
}
|
||||
},
|
||||
"designDay1Balls": 67,
|
||||
"designFormulaWithLiveNonStageSources": 67,
|
||||
"configFirstFiveStageBalls": 17,
|
||||
"day1": {
|
||||
"coins": 640,
|
||||
"candy": 370,
|
||||
"balls": 79,
|
||||
"tickets": 0
|
||||
},
|
||||
"sevenDaysWithoutClears": {
|
||||
"coins": 0,
|
||||
"candy": 0,
|
||||
"balls": 205,
|
||||
"tickets": 0
|
||||
},
|
||||
"stuckBefore1_5": {
|
||||
"walletBeforePinball": {
|
||||
"coins": 440,
|
||||
"candy": 270,
|
||||
"balls": 74,
|
||||
"tickets": 0
|
||||
},
|
||||
"trainToLevel5Candy": 300,
|
||||
"candyGap": 30,
|
||||
"pinballShotsToCloseCandy": 2,
|
||||
"evolveCoins": 500,
|
||||
"coinGap": 60,
|
||||
"pinballShotsToCloseCoins": 2,
|
||||
"evolveShards": 40,
|
||||
"shardsFromChoiceChest": 10,
|
||||
"shardGap": 30
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"device": "Unity Editor Windows 11 (10.0.22631) 64bit / NVIDIA GeForce RTX 3060",
|
||||
"quality": "流畅",
|
||||
"note": "Editor sample only. Does not satisfy the WeChat 30 FPS target.",
|
||||
"frames": 90,
|
||||
"averageFps": 55.3,
|
||||
"minFrameMs": 15.51,
|
||||
"maxFrameMs": 143.68,
|
||||
"heroes": 2,
|
||||
"enemies": 1,
|
||||
"advice": "1-1 · 营地初守\n岩团团前排、火喵后排,先熟悉防线\n本次未获得通关奖励\n建议:可调整前后排后免费重试"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"account": "g3loop_9f56cda384794f2c9f073f40c47ec821",
|
||||
"note": "Teaching loop only. Mail, sign-in, daily claims, shop and stages 1-2 through 1-5 are not included, so this is not the 79-ball day ceiling.",
|
||||
"shots": 2,
|
||||
"extraShotsAfterTicket": 1,
|
||||
"shotCandy": 40,
|
||||
"shotCoins": 80,
|
||||
"balls": 26,
|
||||
"candy": 50,
|
||||
"coins": 160,
|
||||
"tickets": 0,
|
||||
"level": 2,
|
||||
"budBudOwned": true,
|
||||
"cleared": true,
|
||||
"goalClaimed": true,
|
||||
"dailyReady": 1,
|
||||
"homeAfterGoal": "1项奖励可领取"
|
||||
}
|
||||
Reference in New Issue
Block a user