Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,10 @@ jobs:
if ($LASTEXITCODE -ne 0) { throw 'Zelda lifecycle validation failed' }
python tests/plugins/zelda_replay.py
if ($LASTEXITCODE -ne 0) { throw 'Zelda input replay failed' }
python tools/plugins/validate.py plugins/yuru-camp
if ($LASTEXITCODE -ne 0) { throw 'Yuru Camp lifecycle validation failed' }
python tests/plugins/camp_replay.py
if ($LASTEXITCODE -ne 0) { throw 'Yuru Camp input replay failed' }
python tools/plugins/preview.py
if ($LASTEXITCODE -ne 0) { throw 'CPU preview failed' }
build/plugins/Release/plugin-surface-probe.exe build/plugins/Release/miucs-plugin-worker.exe plugins build/plugin-fixture.json
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

> 预览使用合成音乐与按键输入,经正式 Lua/Skia 绘制器生成;GIF 无声,不是桌面录屏。

## 五个桌面伙伴
## 六个桌面伙伴

| 插件 | 效果 | 详细说明 |
| --- | --- | --- |
Expand All @@ -19,8 +19,9 @@
| 牛来 | 牛蹄响应按键,上方角色随音乐和打字运动 | [牛来](plugins/niulai-keyboard/README.md) |
| 平次与和叶 | 平次随打字挥木剑,和叶随节拍转身 | [平次与和叶](plugins/heiji-kazuha/README.md) |
| 塞尔达 | 林克随按键挥剑、举盾,守护者随拍点发射激光 | [塞尔达](plugins/zelda-guardian/README.md) |
| 摇曳露营 | 抚子随打字吃面,凛随音乐捧杯轻啜,篝火随拍点轻跳 | [摇曳露营](plugins/yuru-camp/README.md) |

[查看五个插件的动态预览](docs/plugin-previews.md)。首次启动默认选择奶牛猫;之后记住你的选择。每个插件分别保存位置和大小,切换不重启输入采集。
[查看六个插件的动态预览](docs/plugin-previews.md)。首次启动默认选择奶牛猫;之后记住你的选择。每个插件分别保存位置和大小,切换不重启输入采集。

## 构建与启动

Expand All @@ -41,15 +42,15 @@ open dist/Miucs.app

## 常用操作

- **可视化**:切换五个桌面伙伴,奶牛猫排在首位。
- **可视化**:切换六个桌面伙伴,奶牛猫排在首位。
- **显示 / 隐藏画面**:控制浮窗显示。
- **画面大小、不透明度**:等比缩放,调整 10%~100% 不透明度。
- **调整位置与大小**:拖动画面或右下角缩放,完成后恢复鼠标穿透;也可悬停 3 秒点击小锁。
- **托盘猫摇头**:应用自己的猫图标,独立于当前插件。

## 插件与隐私

应用内置五个 Lua 5.4/Skia 插件,也可安装自己编写的插件。首次构建自动下载并校验运行库依赖。开发和调试见 [插件开发指南](docs/plugin-development.md) 与 [插件工作台](docs/plugin-lab.md)。
应用内置六个 Lua 5.4/Skia 插件,也可安装自己编写的插件。首次构建自动下载并校验运行库依赖。开发和调试见 [插件开发指南](docs/plugin-development.md) 与 [插件工作台](docs/plugin-lab.md)。

音频与物理按键只在本机分析,不依赖网络模型;应用不保存真实音频、屏幕或输入文字。

Expand Down
2 changes: 1 addition & 1 deletion apps/windows/WindowsSmokeTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public static void Run(string output)
private static void VerifyPluginRendering()
{
using var host = new PluginHost(new AudioChannel(), new KeyboardChannel());
foreach (string id in new[] { "pixel-keyboard", "muffin-puppies", "niulai-keyboard", "heiji-kazuha", "zelda-guardian" })
foreach (string id in new[] { "pixel-keyboard", "muffin-puppies", "niulai-keyboard", "heiji-kazuha", "zelda-guardian", "yuru-camp" })
{
if (!host.Views.ContainsKey(id)) throw new InvalidOperationException("Missing bundled plugin: " + id);
using var view = new PluginView(host, id);
Expand Down
23 changes: 23 additions & 0 deletions docs/concepts/yuru-camp/camp-props-prompt.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Tool: built-in image_gen; transparent_background=true
Reference: skin-concept-v1.png

Use case: stylized-concept. Production sprite atlas of CAMPFIRE and TYPING MITTENS for the approved cozy Yuru Camp keyboard skin. Match reference's bold organic black contour, soft flat hand-colored cel shading, warm orange/coral and muted navy-blue. Draw NO people, keyboard, screen, scenery or text.

One square transparent atlas with exactly FOUR columns and FOUR rows = SIXTEEN equal square cells. True transparent background. SMALL sprites in central 55% of each cell, HUGE transparent gutters at least 18% on all sides. Fixed scale and local anchors throughout. No grid, numbering, labels, logos, shadows outside individual cells or watermark.

TOP TWO ROWS, frames1-8: one small camping campfire in a dark charcoal metal shallow bowl with crossed short legs, as seen between characters in reference. Bowl and legs EXACTLY stationary, same size and position in every frame, ground baseline at local y78%. Draw a gentle single fire flicker pulse in sequence:
1 low quiet warm flame.
2 flame gathers at center.
3 center flame stretches up.
4 bright tallest flame with one tiny close ember.
5 flame leans gently to right, second lobe curls.
6 flame settles and curls left.
7 near idle smaller flame.
8 EXACT same low quiet flame as frame1.
Only flame shapes, orange/yellow layers and the one close ember change. No explosions, no sparks far outside cell. The low fire must remain visibly lit in idle. Dark bowl below flame must always be visible, not hidden by a huge fire.

THIRD ROW, frames9-12: LEFT mitten hand ONLY, rounded CORAL RED knitted mitten, cream ribbed sleeve cuff, thumb on viewer RIGHT in ALL FOUR cells, fingers point upward, cuff at bottom. Same cuff anchor local x50%, y75%. Four press poses: relaxed hovering mitten; bends toward key; compressed mitten pressing invisible key; rebounds to relaxed stance. Mitten is one rounded finger pocket plus one thumb, NOT separated fingers.

FOURTH ROW, frames13-16: RIGHT mitten hand ONLY, muted NAVY BLUE knitted mitten, cream ribbed sleeve cuff, thumb on viewer LEFT in ALL FOUR cells. Same four sequential press poses as row3. Same orientation within a row, do NOT mirror the last column. Keep sleeve cuffs identical size and place, no long arms or extra objects. No actual keycaps. Hands are near-overhead view as in reference, clear at 35px rendered size.

No sprites may touch adjacent cells. Exactly eight fire poses, four coral left-mitten poses and four blue right-mitten poses.
Loading
Loading