跳转至

口袋里的吉里吉里2

PocketKrKr 双鱼 Logo

PocketKrKr 是一个基于 FlutterANGLE(Metal / Vulkan)重构的 KiriKiri2(吉里吉里2) 视觉小说引擎运行环境, 专注移动端:iOS + Android(macOS 保留为 Apple 开发/调试目标)。

它完全兼容原版游戏脚本,通过 ANGLE 离屏渲染 + IOSurface / SurfaceTexture 零拷贝纹理共享实现硬件加速, 并在渲染性能与脚本执行效率上做了大量优化。

特性

  • 原生兼容

    内置高精度 TJS2 解析器,完全兼容原版 KiriKiri2 游戏脚本;支持 PSB 动画、Live2D Cubism、PSD 素材与 LayerEx 扩展。

  • 零拷贝渲染

    ANGLE 离屏渲染(iOS/macOS 用 Metal 后端,Android 用 Vulkan 后端),经 IOSurface / SurfaceTexture 直达 Flutter 原生纹理,低功耗告别卡顿。

  • 移动优先

    iOS 与 Android 为主目标;无 Mac 也能在 Windows 上构建 Android APK,iOS 打包走 GitHub Actions 的 macOS runner。

架构

C++ 引擎 (cpp/core, TJS2) ──engine_api C ABI──> Dart FFI (flutter_engine_bridge)
        │ ANGLE EGL/GLES2 离屏渲染                     │ Flutter Texture
        └─ iOS/macOS: IOSurface ──┐
        └─ Android:  SurfaceTexture ─┴──────────────────┘ 显示

采用 「C++ 引擎 + Flutter 壳」 架构:C++ 引擎离屏渲染到 IOSurface(iOS/macOS)或 SurfaceTexture(Android), Flutter 以原生纹理零拷贝显示,UI 完全由 Flutter 构建。桥接层 bridge/engine_api 提供稳定 C ABI, Dart 优先走 FFI,MethodChannel 为兜底。

平台状态

平台 状态 图形后端 纹理共享 引擎形态
iOS 主目标,开发中 Metal IOSurface 静态库链接进 Runner
Android 主目标,开发中 Vulkan SurfaceTexture libengine_api.so 打包进 APK
macOS 开发目标 Metal IOSurface dylib 打包进 Frameworks

快速开始

./build.sh ios release     # 构建 iOS(需 macOS + Xcode,或走 CI)
./build.sh android debug   # 构建 Android APK(任意主机)
./build.sh macos debug     # 构建 macOS(开发)

文档地图

致谢

本项目基于 KrKr2-Next 二次开发而成,感谢所有上游作者与贡献者。 本项目以 GPL-3.0 协议开源。