SkyCraft

以 Minecraft 玩家的方式游玩 Skyrim。你以 Minecraft 的物理规则移动,使用 Minecraft 的物品栏和 HUD,并在 Skyrim 的世界里放置和破坏方块。你用 Minecraft 的武器与 Skyrim 的 NPC 战斗,他们也会反击。
两款游戏都没有被重写。Minecraft 运行自己的游戏逻辑,Skyrim 运行它的世界、NPC、任务和存档。一个 Skyrim SKSE 插件和一个 Minecraft Fabric 模组通过共享内存相互通信。Minecraft 在后台隐藏运行,由 Skyrim 负责绘制一切。
状态:早期实验阶段。 可能存在粗糙之处,请备份你的存档。 这是一个粉丝项目,与 Mojang、Microsoft、Bethesda 或 ZeniMax 均无关联,你需要同时拥有两款游戏。
已实现的功能
- 移动: 在 Skyrim 的地形和建筑上实现 Minecraft 式移动,包括行走、疾跑、跳跃、蹲伏、游泳和坠落,Skyrim 的碰撞数据会输入到 Minecraft 自己的碰撞系统中。
- 方块: 在 Skyrim 的任何地方放置和破坏方块。方块在 Skyrim 的画面内渲染,带有它的阳光、阴影、雾气和天气。Minecraft 的光源(火把、岩浆、萤石等)能照亮 Skyrim。
- 挖掘 Skyrim: 像 Minecraft 方块一样挖掘 Skyrim 的地面、岩石、道路和物体。挖出的东西会以对应方块形式掉落(草皮下是泥土,然后是带矿石的石头,最后是基岩),挖出的洞对你、NPC 和物品都是真实存在的。TNT、苦力怕和其他爆炸会在 Skyrim 地表炸出弹坑。室内和洞穴的墙壁后方是实心石头。挖掘结果会保存在你的 Minecraft 世界中。暂停菜单(O)左上角的 Skyrim 破坏:开/关 可以关闭该功能(已挖出的洞会保留)。
- 方块实体: 箱子、床、旗帜、头颅、潜影盒等方块可以显示,活塞可以推动方块。
- 水和岩浆: 它们会在 Skyrim 的地形上流动,Skyrim 的水可以像 Minecraft 的水一样游泳。
- 战斗: 用任何 Minecraft 武器攻击 Skyrim NPC,包括弓、三叉戟和 TNT。伤害根据 NPC 等级缩放,NPC 会反击。
- NPC 会与方块碰撞并绕行寻路。
- 岩浆和火焰会伤害 NPC,NPC 会踩压力板。
- Skyrim 进度系统:
- 你的 Skyrim 技能会通过 Minecraft 玩法升级。剑、锤和工具训练单手武器(One-Handed);斧和矛训练双手武器(Two-Handed);弓和投掷物训练箭术(Archery)。
- 盾牌训练格挡(Block),受到的攻击会根据你穿着的护甲训练轻甲(Light Armor)或重甲(Heavy Armor)。
- 制作装备训练锻造(Smithing),蹲伏即 Skyrim 潜行,可训练潜行(Sneak)技能。
- 视角与死亡: Minecraft 的 F5 视角模式在 Skyrim 中显示你的皮肤和盔甲。死亡时呈现 Skyrim 的死亡镜头,你的 Minecraft 身体会布娃娃化。
- Skyrim 自带动画: 椅子、制作台、床、拉杆、马匹和脚本场景会暂时把控制权交还给 Skyrim,直到动画结束。
- 多人游戏(仅限 Minecraft 侧): 同样运行 SkyCraft 的朋友可以通过互联网加入你的 Minecraft 世界(参见与朋友一起玩)。
系统需求
Skyrim
| Skyrim Special Edition,Anniversary Edition 运行时(1.6.x / 1.7.x) | 在 1.7.104 上开发并测试。不支持 SE 1.5.97,不支持 VR。 |
| SKSE64 | 与你的游戏版本对应 |
| Address Library for SKSE Plugins | “All in one (Anniversary Edition)” 文件 |
强烈推荐:Alternate Start - Live Another Life。 Skyrim 的开场(马车之旅和海根镇)脚本化严重,可能与 SkyCraft 不兼容,导致你卡住。Alternate Start 可以跳过它,让你选择新角色的出生地。否则,请从海根镇之后的存档开始游玩。
Minecraft
你只需要一个拥有 Minecraft: Java Edition 的 Microsoft 账户。SkyCraft 自带其他一切:一个配置好 Minecraft 26.3、Fabric、Fabric API 和 SkyCraft Minecraft 模组的便携版 Prism Launcher。Prism 会自行下载 Minecraft 和 Java。
Minecraft 在 Skyrim 旁边隐藏运行。请预留约 3 GB 额外内存、约 1.5 GB 磁盘空间存放 Minecraft 自身文件,以及一块能运行 Minecraft 26.3 的 GPU。
安装
- 安装
SkyCraft-<version>.zip,使用 Mod Organizer 2 或 Vortex,像安装其他 SKSE 插件一样。 - 通过 SKSE 启动 Skyrim。 首次启动时,SkyCraft 会将其 Minecraft 解压到
%LOCALAPPDATA%\SkyCraft,一个 Prism Launcher 小窗口会要求你登录 Microsoft 账户。Alt-Tab 切换过去登录,然后回到 Skyrim。Prism 会下载 Minecraft、Fabric 和 Java(仅首次需要几分钟),Skyrim 的角落消息会告诉你 Minecraft 何时就绪。 - 之后就是全自动的。 Minecraft 随 Skyrim 启动,无窗口无声音,自动打开它的 SkyCraft 世界(一个在你的电脑上创建的新生存世界),并在 Skyrim 关闭时退出。
更新:将新的 SkyCraft zip 覆盖安装在旧版之上。下次启动时也会更新 Minecraft 侧,并保留你的登录信息和世界。
卸载:移除模组,然后删除 %LOCALAPPDATA%\SkyCraft。该文件夹存放 Prism、你的 Microsoft 登录信息(Prism 的)、Minecraft 文件和你的 SkyCraft 世界。
使用你自己的启动器
Data/SKSE/Plugins/SkyCraft.ini 可以让 SkyCraft 指向你自己的 Prism、MultiMC 或 .bat 文件:
[Minecraft]
bStartWithSkyrim = 1 ; 0: 你自己以任意方式启动 Minecraft
sLauncher = ; 空:使用 SkyCraft 自带的 Minecraft
sArguments = --launch SkyCraft ; 你的启动器启动 SkyCraft 实例所需的参数
你的实例需要 Minecraft 26.3、Fabric Loader 0.19.5 或更新版本、Fabric API、Java 25 和 skycraft-fabric-<version>.jar(来自 release),如果希望一开始就隐藏,还需在其 JVM 参数中加入 -Dskycraft.startHidden=true。如果带该模组的 Minecraft 已在运行,SkyCraft 绝不会启动第二个 Minecraft。它通过 Windows shell 启动 Minecraft,因此在 Mod Organizer 下,Minecraft 位于 MO2 的虚拟文件系统之外,不会锁定 MO2。
与朋友一起玩
每个人都需要自己的 Skyrim 和 SkyCraft。只有 Minecraft 世界是共享的:方块、物品、生物以及彼此。最多支持 100 名玩家。每位玩家保留自己的 Skyrim 世界、NPC 和任务。
- 主机: 按 O(Minecraft 菜单),选择 Open to LAN,然后 Start LAN World。SkyCraft 内置的 e4mc 会在聊天中生成类似
abc-def.e4mc.link的链接。点击复制,然后发给朋友。 - 朋友: 按 T 并输入
/join abc-def.e4mc.link。你的 Minecraft 会离开自己的世界,加入主机的世界。 /leave返回你自己的世界。如果主机关闭了世界,你会自动回到自己的世界。
配合 Discord: 游玩时你的 Discord 状态会显示 SkyCraft。将世界对局域网开放后,状态中会出现 加入(Join) 按钮(还可以从 Discord 聊天中邀请朋友)。已运行 Skyrim 和 SkyCraft 的朋友点击即可加入,无需链接。
按键操作
Minecraft 优先。以下按键仍会发送给 Skyrim:
| 按键 | 功能 |
|---|---|
| G | Skyrim 互动:门、NPC(对话)、容器、拉杆、家具 |
| Esc | Skyrim 菜单(或关闭已打开的 Minecraft 界面) |
| J / M | Skyrim 日志 / 地图 |
| H | Skyrim 等待 |
| F9 | Skyrim 快速读档(读取 Esc 菜单中的存档) |
| ~ | Skyrim 控制台 |
| O | Minecraft 暂停 / 选项菜单 |
其他所有按键都属于 Minecraft:E 物品栏、F5 视角、T 聊天、/ 命令、Shift 蹲伏/潜行,等等。
已知限制
如果出错,
Documents\My Games\Skyrim Special Edition\SKSE\SkyCraft.log会说明原因。提交 bug 报告时,请在SkyCraft.ini中设置bDiagnostics = 1以获取详细日志。卡在"SkyCraft: starting Minecraft…"? 一分钟后 SkyCraft 会说明属于以下哪种情况:
- Prism Launcher 仍在忙碌。Alt-Tab 切换过去:它可能在下载,或需要你登录,或显示错误。
- Minecraft 已关闭。其日志位于
%LOCALAPPDATA%\SkyCraft\Prism\instances\SkyCraft\.minecraft\logs\latest.log。 - Minecraft 在运行但无响应。请连同
SkyCraft.log和该latest.log一起提交报告。
你需要拥有 Minecraft: Java Edition。
Skyrim 的开场(马车和海根镇)可能让你卡住。请使用 Alternate Start 或海根镇之后的存档。
在 Minecraft 驱动玩家时,无法打开 Skyrim 的物品栏、魔法、龙吼和 perk 界面。
Minecraft 的攻击只能命中 NPC,无法命中 Skyrim 物体,例如 Bleak Falls Barrow 中 Arvel 周围的蛛网。目前没有切回原版 Skyrim 的游戏内开关。关闭 Minecraft 会将控制权交还给 Skyrim;Minecraft 保留其最后一次自动保存的内容(每隔几分钟一次)。处理完该物体后,重启 Skyrim 让 Minecraft 回来。
告示牌文字尚未渲染。
所有 Skyrim 室内共享同一个 Minecraft 世界,因此在一个室内放置的方块可能会出现在另一个室内的相同坐标上。
多人游戏只同步 Minecraft 世界。每位玩家有自己的 Skyrim,且访客暂时无法攻击自己 Skyrim 中的 NPC。
同样接管相机的模组(Improved Camera SE、SmoothCam、True Directional Movement)会产生冲突。
从源码构建
你需要 Visual Studio 2026(C++)、CMake 3.25+、Git 和 JDK 25。
git clone --recursive <this repo> skycraft
cd skycraft
git clone https://github.com/microsoft/vcpkg .tools\vcpkg
.tools\vcpkg\bootstrap-vcpkg.bat
cd skse
cmake --preset default
cmake --build --preset release
cd ..\fabric
gradlew build
cd ..
powershell -ExecutionPolicy Bypass -File tools\package.ps1 -NoBuild
tools\package.ps1 构建两部分(去掉 -NoBuild),并将发布文件输出到 dist\。
开发相关:
fabric\gradlew runClient启动一个开发用 Minecraft,Skyrim 关闭后它仍会继续运行。- 设置
SKYCRAFT_DEPLOY_DIR(preset 默认值:MO2 模组文件夹mods\SkyCraft,如果存在),每次插件构建会直接复制进 Mod Organizer。 docs\DESIGN.md介绍两部分如何配合,protocol\skycraft_protocol.h是双方共同遵循的共享内存布局。
| 文件夹 | |
|---|---|
skse/ | Skyrim SKSE 插件(C++,CommonLibSSE-NG) |
fabric/ | Minecraft Fabric 模组(Java) |
protocol/ | 两者之间的共享内存协议 |
tools/ | 打包、测试替身(fake_skyrim.py、fake_guest.py)和诊断工具 |