Kirikiri Z:原生跨平台的开发主力
Kirikiri Z 是什么
Kirikiri Z(简称 krkrz)是 W.Dee 在 Kirikiri 2 之后亲自开发的原生跨平台版本。它不是模拟器,而是从源码层面重新实现的引擎,可以直接编译成 Windows EXE 和 Android APK。
与原版 krkr2 的关系
| 方面 | Kirikiri 2 | Kirikiri Z |
|---|---|---|
| 平台 | Windows only | Windows + Android |
| 渲染 | 软件渲染 | 软件 + 硬件加速(OpenGL ES) |
| 脚本系统 | KAG 3 + TJS2 | KAG 3 + TJS2(兼容原版) |
| 架构 | 传统 C++ | 现代 C++(模块化) |
| 作者 | W.Dee | W.Dee |
| 定位 | 经典主力 | 新项目主力 |
Kirikiri Z 和原版 krkr2 共享同一套 KAG 3 + TJS2 脚本——你为原版写的 scenario 大部分能直接跑在 Kirikiri Z 上。
跨平台设计思路
Kirikiri Z 解决移动端性能问题的核心思路:
硬件渲染管线
原版 krkr2 用纯软件渲染(CPU 画每一个像素),在 Windows 上没问题,但在 Android 上性能堪忧。Kirikiri Z 新增了硬件加速渲染路径:
原版 Layer(软件) → 继续支持,老项目不变
新增 GL Layer → OpenGL ES 2.0 / 3.0 硬件加速
Android 硬件加速
Android 原生编译的 Kirikiri Z:
- Android 4.4+ 都能跑
- OpenGL ES 3.0 推荐,2.0 也能跑(会降级)
- 针对 GPU 优化了纹理上传、背景切换、立绘动画
- 自动检测设备 GPU 能力选择最优渲染路径
平台原生组件
Kirikiri Z 直接集成了平台原生能力:
- 触摸屏事件(不是模拟鼠标)
- 原生窗口(不是嵌入式)
- 原生音频播放
- 原生文件选择器
主要新特性
OpenGL ES 硬件渲染
// 检查硬件加速是否可用
if (Engine.hasGLSupport) {
// 创建 GL 图层(硬件加速)
var glLayer = Layer.createGL();
glLayer.loadImage("bg/school.tlg");
} else {
// 降级到软件渲染
var swLayer = Layer.create();
}
更好的跨平台兼容
- 自动处理不同 DPI 的屏幕
- 触摸手势(长按、双指缩放、滑动翻页)
- 窗口自适应旋转
内置更多功能
Kirikiri Z 把以前需要插件的功能直接内置了:
| 功能 | 原版 krkr2 | Kirikiri Z |
|---|---|---|
| Live2D | 需外部插件 | 内置 Live2D Cubism 扩展 |
| 视频解码 | WMV/MPG 原生 | 原生 MP4 + WebM |
| 3D 渲染 | 无 | 基础 3D 支持 |
| 网络功能 | 需插件 | 内置 HTTP/WebSocket |
版本演进
| 版本 | 平台 | 状态 |
|---|---|---|
| KiriKiri Z 1.x | Windows | 早期跨平台 |
| KiriKiri Z 2.x | Windows + Android | 当前主力,硬件加速完整 |
| 后续 | 计划中 | iOS、macOS(配合社区) |
目前 Kirikiri Z 的活跃版本是 2.x,Windows 和 Android 都有稳定可用的正式版。
如何获取
- 官方文档:krkrz.github.io(日语 + 部分中文/英文翻译)
- GitHub:搜索
krkrz能找到相关仓库 - SDK:和原版 krkr2 一样,绿色免安装,解压即用
和 KrKr2 Next 的关系
这两个项目不是竞争关系,而是互补:
| Kirikiri Z | KrKr2 Next | |
|---|---|---|
| 开发方 | W.Dee 本人 | 社区 |
| 目标 | 新项目开发 | 老项目跨平台运行 |
| Android 支持 | 原生编译 APK | 模拟器模式 |
| iOS/macOS/Linux | 暂未原生 | ✅ 原生 |
| 图形 API | OpenGLES | Vulkan / Metal / OpenGLES |
| UI | 原生窗口 | Flutter 壳 |
开发新项目 → Kirikiri Z(脚本兼容 + 硬件加速 + 原生 APK 编译)运行老项目 → KrKr2 Next(全平台 + 现代体验)
兼容性注意事项
从 krkr2 迁移到 Kirikiri Z 时,需要注意:
已有的外部插件
大部分原版 krkr2 的插件(特别是 C++ DLL 编译的)在 Kirikiri Z 上可能不兼容——因为内部架构有调整。Kirikiri Z 内置了新版插件接口,老插件需要重新编译。
TJS2 脚本的细微差异
Kirikiri Z 的 TJS2 实现和原版基本一致,但极少数边缘行为可能不同。建议:
- 从原版 krkr2 项目迁移后做一轮完整测试
- 特别注意存档格式、随机数种子、异常处理等边缘逻辑
窗口尺寸和分辨率
原版 krkr2 常写死窗口尺寸(比如 800×600)。Kirikiri Z 建议用自适应方案:
// 支持窗口缩放
Engine.enableAutoResize(true);
// 支持全屏切换
Engine.enableFullscreenToggle(true);
路径分隔符
原版假设 Windows 路径分隔符是 \。Kirikiri Z 跨平台后建议统一用 /(TJS2 内部自动处理):
// ✅ 推荐用正斜杠
Image.load("image/bg/school.tlg");
// ⚠️ 避免硬编码反斜杠(Android 上会出问题)
Image.load("image\\bg\\school.tlg");
商业游戏案例
已经有商业游戏用 Kirikiri Z 开发并原生发布 Android 版:
- ATRI -My Dear Moments-:Frontwing × 枕,同时上架 Steam、DMM、iOS、Android
- Summer Pockets RB:Key/VisualArt's,Android 版用 Kirikiri Z 移植
- 更多中小型独立游戏
总结
Kirikiri Z 是吉里吉里2 家族最新、最现代化的原生跨平台引擎。它保持了和原版 KAG 3 + TJS2 的脚本兼容性,同时带来了硬件加速、原生 Android 编译、内置更多功能。如果你在做一个新的 AVG 项目,直接选 Kirikiri Z——它是现在最好的选择。