OpenMMO房屋装修完整指南:墙面、屋顶与地板的17种材质自定义
【免费下载链接】OpenMMO项目地址: https://gitcode.com/GitHub_Trending/open/OpenMMO
OpenMMO(Open MMORPG)是一款 AI 代理与人类玩家平等共存的开源 MMORPG,内置模块化房屋装修系统:你可以自由组合房间,并为墙面、屋顶、地板分别指定材质纹理,从红砖石墙到茅草屋顶,一次成型。本文带你走完从购买建筑卷轴、摆放房屋,到逐面定制材质与庭院地板的完整装修流程,附 4 张实机参考图与官方设计文档路径,零基础也能照着做出一栋自己的木屋。
🏠 一分钟看懂:OpenMMO的模块化房屋装修
OpenMMO 的房子不是"一张贴图",而是由**房间(Room)**拼装成的数据模型。每栋HouseData由若干RoomData组成,而每个房间都独立记录三类材质索引:
| 装修部位 | 数据字段 | 可选项 |
|---|---|---|
| 墙面 | WallConfig.texture | 17 种材质之一(按 1m 墙段逐段设置) |
| 地板 | RoomData.floor_texture | 17 种材质之一 |
| 屋顶 | RoomData.roof_texture+roof_type | 17 种材质之一 + 平顶 / 双坡 / 陡坡 |
| 门窗 | WallConfig.variant | 实心 / 带门 / 带窗 / 开敞 |
- 房间尺寸 1~6m,按 1m 网格吸附摆放,最多支持4 层
- 墙高默认 3.0m,墙厚 0.1m;相邻房间的共享墙面会自动打通
- 走进屋内时,面向你的前墙与屋顶会自动隐藏,露出内部
设计细节见官方文档 HOUSING_SYSTEM.md,房屋购买与建造流程见 HOUSE_BUILDING.md。
🧱 17种装修材质库:石、木、屋顶三分法
全部材质集中在 housing-textures.ts 的HOUSING_TEXTURES目录中,每种都带 PBR 贴图(颜色、法线、粗糙度),按用途分组如下:
墙面 / 地板通用材质
| 分组 | 材质名称 | 适合风格 |
|---|---|---|
| 石材 | Stone、Brick、Red Brick、Medieval Stone、Sandstone、Stone Path | 城堡、地牢风、石板庭院 |
| 大理石 | Marble | 贵族宅邸 |
| 涂料 | Plaster Wall、Plaster & Wood | 北欧白墙木骨架(Plaster & Wood 会额外生成木柱横梁框架) |
| 木材 | Wood、Plank、Dark Wood、Weathered、Log Wall、Shutter、Plank Wall、Linen | 乡村木屋、酒馆 |
屋顶专属材质
| 材质 | 特点 |
|---|---|
| Clay Roof / Clay Roof 2 | 两种橙红陶瓦,纹理放大 3 倍呈现大片瓦面 |
| Grey Roof | 灰色石板瓦,冷峻风格 |
| Reed Roof | 茅草屋顶,最贴近中世纪村屋 |
💡 小技巧:选
Plaster & Wood作为墙面材质时,系统会为该房间自动加上木柱、横梁和 X 形斜撑框架(fitSegment模式),直接获得图 1 中那种"白墙木骨"的经典外观。
🔨 4步装修流程:从建筑卷轴到入住
第 1 步:购买建筑卷轴在村中向建筑家 Rowan 购买房屋卷轴,共 5 种固定户型(Rica 的商店、Karl 的家、Aldwin 的家、旅馆、Rowan 的家)。户型快照保存在 />
🪴 延伸玩法:庭院地板材质与路径涂装
房子盖好只是开始。购买 Rowan 出售的调景师工具盒(Landscaper's Toolbox,50 银币,不消耗可重复使用),打开后有三个装修相关页签:
| 页签 | 功能 | 说明 |
|---|---|---|
| 地板 | 用笔刷为领地地面涂材质 | 默认解锁 Meadow Grass + Rocky Trail,另有 7 种"调景样本集"(各 10 银币)一次解锁永久可用 |
| 路 | 两点之间涂路径 | 宽度 1~20 格 |
| 栅栏 | 木栅栏安装 / 回收 | 安装消耗、回收返还 |
- 只有自己领地里的部分会被涂装,越过边界的部分自动忽略,服务器会逐次校验所有权
- 涂地板会按规则清除范围内的草与树,但不会改变地形高度
- 地板材质(如 Meadow Grass)是地表贴图层,与后续"种植"功能是两回事
规则详见 LAND_SYSTEM.md 第 4 节与 FENCE_PLACEMENT.md。
⚠️ 装修避坑清单
- 每个角色只能拥有 1 栋房,且拆除不退款——摆之前想好位置
- 拆除入口在工具盒的
House页签:选中世界里的自家房屋、确认边界线标记后执行 - 门窗是服务器权威状态:按 E 键交互,开关请求发给服务器后广播给所有玩家,窗户即使打开也不能作为通道,门打开后才会解锁通行格
- 上层地板必须有支撑:二楼房间不能悬空,编辑时删除下层房间会被服务器拒绝
- 屋顶按整体足迹计算:同一层多个房间若共用屋顶类型与坡度,系统会把它们拼成一整片屋顶,不用担心缝隙
📂 相关资料速查
| 资料 | 路径 |
|---|---|
| 房屋系统总设计(数据模型、屋顶、碰撞、材质) | doc/HOUSING_SYSTEM.md |
| 建筑卷轴购买与摆放校验流程 | doc/HOUSE_BUILDING.md |
| 领地装修:地板 / 路 / 栅栏规则 | doc/LAND_SYSTEM.md |
| 17 种装修材质目录(含 PBR 加载逻辑) | client/src/lib/utils/housing-textures.ts |
| 建筑编辑面板 UI(墙 / 地板 / 屋顶材质选择器) | client/src/lib/components/map-editor/HousingEditorPanel.svelte |
| 5 种房屋模板快照 | data-src/house-templates/ |
| 共享房屋数据结构 | shared/src/housing.rs |
照着上面的流程走一遍:先买卷轴定好地基,再在编辑面板里为四面墙、地板和屋顶各挑一种材质,最后用调景师工具盒把门前小径铺成石板——一栋独一无二的 OpenMMO 小宅就完工了 🏡
【免费下载链接】OpenMMO项目地址: https://gitcode.com/GitHub_Trending/open/OpenMMO
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考