Skip to content

About

AI 视觉小说引擎 for Windows:接大模型,她自己挑立绘、配乐和背景。单文件 C++ / GDI+,零第三方依赖。完整程序网盘链接:https://pan.baidu.com/s/1k37At28RYOTXnRJKXQXJSQ?pwd=0721

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

YourReality

Windows 桌面端 AI 视觉小说引擎,单文件 C++,零第三方依赖(只用 Windows SDK + GDI+ + XAudio2)。

接一个 OpenAI 兼容接口,她自己挑立绘、背景和配乐,决定这一轮演什么、什么时候收尾。

一眼看懂

层 做什么
界面 GDI+ 全自绘:背景 / 立绘 / 对话框 / 打字机 / 选项 / 子界面
对话 WinHTTP 调模型,回包是台词 + 演出指令(JSON 契约)
演出 导演状态机:场景、立绘、BGM 都由模型挑,含「本幕何时收尾」
内容 课程大纲(章 + 验收题)与剧情大纲(幕)两种模式
存档 本地 JSON,按角色分目录,另写一份人能直接读的副本
素材 角色包放 assets/char/<id>/,注解与资源扫目录得到,不写死名单
音频 XAudio2 播 WAV,BGM / 音效随场景与情绪切换

构建

用 Visual Studio 打开 YourReality.sln,cl /utf-8 编译 main.cpp 即可(/utf-8 不能省:源码 UTF-8 带 BOM,缺了中文注释会出 C4819,甚至把下一行吞掉)。

没有第三方库要拉,没有自定义头文件——整个工程就一个 .cpp。

跑起来之前要准备的两件事

  1. 角色包。仓库里没有角色包和素材(版权与体积原因,.gitignore 已排除),参考 assets/char/ 下的结构自己放一份:
    assets/char/<id>/
      char.ini      # 元信息 + [Prompt] 人设 + [Memory] 前世记忆 + 素材注解
      sprite/       # 立绘
      bg/           # 背景(可选)
      bgm/          # 音乐(可选)
    
    char.ini 用行首空格续行,[Prompt] 一段就能把人设写全,不用再维护单独的 txt。
  2. 模型接口。在设置里填一个 OpenAI 兼容的 base_url + key。没网络时界面照常画,只是她不开口。

代码怎么读

顺序建议:main.cpp 从上往下就是分层顺序。文件头有两行约定先看:

  • ★ 注释 = 这里曾经出过 bug,写的是「为什么不能那样做」。这类地方的失败模式通常不报错,只表现为「看起来正常、实际不生效」。
  • 推进按钮(课程「明天见」/ 剧情「下一幕」)的规则只在 advance 命名空间:渲染、命中、点击、状态栏、回放统一走 advance::Evaluate()。改阈值只动那一处的 constexpr。

想改「聊几句能走」「台词能不能点亮按钮」,改完跑一下契约自检:

g++ -std=c++17 -DADVANCE_SELF_TEST=1 main.cpp -o advtest && ./advtest
# advance self-test: 42 passed, 0 failed

这条命令在 Linux / macOS 上只能跑 advance 那段逻辑(它没碰 Windows 头); 全量编译请用 MSVC。目前自检覆盖:阶段矩阵、告别词表、按钮文案、存档回放、 「画出来 = 能点」(含打字中不拦、Lesson 里一句「晚安」不能跳过考试)。

几个设计取舍

为什么没有好感度。 情感推进交给大纲的章 / 幕和角色包的 [Memory],引擎不做 0–100 打分——数值分档会把"她对你的态度"锁死成几档,换角色包就得重配。想做数值养成,自己在剧本里写 $好感 += 5,那是剧本的设计,不是引擎强加的。

为什么不写死素材名单。 背景、立绘、音乐全部扫目录,模型只在真实存在的东西里挑。作者改文件名不用动代码,加图就是加文件。

为什么单文件。 早期维护过 src/ 分模块版,靠脚本单向同步,两边时间戳一前一后就分叉:改在这边、跑一次同步就被那边旧内容盖回去。所以现在只有 main.cpp,分区标记 // 模块:xxx 只是阅读用,不是文件名。

许可证

MIT,见 LICENSE。

About

AI 视觉小说引擎 for Windows:接大模型,她自己挑立绘、配乐和背景。单文件 C++ / GDI+,零第三方依赖。完整程序网盘链接:https://pan.baidu.com/s/1k37At28RYOTXnRJKXQXJSQ?pwd=0721

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Packages

Contributors

Languages