第四章:用jMonkeyBuilder转化j3o

简介

jMonkeyBuilder 是由 JME3 的白俄罗斯用户 @javasabr 制作的开源美术工具,专为 JME3 量身打造,下文简称 JMB 。

JMB的功能非常强大,拥有粒子编辑器、地形编辑器、材质编辑器、Shader Node着色器插件,转换j3o只是它诸多功能之一。

JMB不是Java开发工具,它是一个美术工具。它可以用来编写材质、着色器,但不要妄图用它来写Java代码。对于程序员来说,应该把JMB和IDE配合起来使用。

作者正在开发一个IDEA插件,可以在 IDEA 中自动集成jME3,并使用 JMB 来制作和管理游戏资产。也许将来开发JME3程序会比现在简单得多。

创建资产目录

如何下载、安装JMB我就不介绍了。JMB提供了安装包,直接根据提示点“下一步”即可。无需担心语言问题。我已经汉化了JMB的大部分界面。如果下载 1.4.0 或更高版本,JMB的界面将会直接显示成中文。

启动 JMB 后,界面可能是这样的:

JMB没有“创建工程”之类的概念,你需要先手动建立资产目录,然后再把它设定为JMB的工作目录。这样做的好处,是可以让 JMB 直接使用 JME3 工程的资产目录,让两个工具在同一目录下工作。

我在 F:\ 盘创建了 assets 目录,并在其中JME3标准资产目录结构。同时,我把 monkey.blendDiffuseMap.png 也拷贝到了 Textures/Monkey 目录中。

在JMB中,点击菜单 文件 -> 打开资源目录,然后选择 F:\assets 目录。这是,左侧的 资源 导航面板将显示完整的资产目录结构。

鼠标左键双击 DiffuseMap.png,可以预览这个纹理。

转换j3o

鼠标右键单击 monkey.blend,在弹出菜单中选择 转换 -> 将 .blend 转换为 .j3o

这时将弹出“模型转换”对话框,可以修改转换后生成的文件名,以及文件保存的目录。

现在不需要修改任何内容,直接点击“转换”按钮即可。

结果:

鼠标左键双击 monkey.j3o 文件,可以预览这个模型。点击窗口上方 monkey.j3o 标签中的 x,可以关闭这个预览窗口。

3D预览窗口的操作说明:

  • 前后滑动鼠标滚轮(中键),可以改变摄像机视野;
  • 按住鼠标中键(滑轮)不放,左右拖动鼠标,可以改变摄像机视角;
  • 按住鼠标中键(滑轮)不放,再按键盘上的 WASD 键,可操作摄像机飞行。

鼠标右键单击 Models 目录,在弹出窗口中选择 新建 -> 新建目录,创建 Monkey 目录。

monkey.j3o 拷贝到 Models/Monkey 目录中。

你可以按 delete 键删掉 Textures/Monkey 中的 .blend 文件和 .j3o 文件。但我建议你先留着 .blend 文件,等确认不需要之后再干掉它。

删掉 Textures/Monkey/monkey.j3o,重新打开 Models/Monkey/monkey.j3o 之前,最好通过菜单 其他 -> 清空资源缓存 来清除 JMB 中缓存的模型数据。

调整模型属性

JMB可以用来调整 j3o 模型的属性。

双击打开 Models/Monkey/monkey.j3o 模型,在 JMB 右侧的 物体 面板中,将会显示这个 j3o 模型的内部结构。

点击三角形图标可以展开/收起结构树。

与 Blender 中的原始结构比较,会发现几乎是一样的。

节点重命名

鼠标以较慢的速度双击任意节点,节点名称将变成可编辑状态。输入名称后按回车键,重命名即可生效。

这个 j3o 模型的根节点是根据转换之前的路径来命名的,我将其改成了 Models/Monkey/monkey.j3o

移除节点

这个模型中的 LampCamera 节点,保存了我在 Blender 中的灯光和摄像机数据,对 JME3 程序本身没有什么意义,可以删掉。

右键单击 Lamp 节点,选择 移除。左键选中节点,然后按 delete 键也能实现同样的操作。

如果你误删了什么数据,按 Ctrl + Z 可以撤销操作。

我删除了 LampCamera 节点,并干掉了节点中自带的光源,现在结构是这样的。

编辑节点属性

目前这个模型的节点有4层:Models/Monkey/monkey.j3oSceneSuzanneSuzanne1。鼠标左键点击任意一个节点,可以查看节点的属性。

注意,最后一个节点 Suzanne1 的图标与前三个不一样,它是JME3中的几何体(Geometry),保存了三角网格和材质数据。

点击材质节点,可以查看这个模型的材质属性,这些属性是根据 .blend 中的材质转换成的。

还记得我在 Blender 中把猴头的高光硬度设成了8,并关联了 DiffuseMap 纹理吗?在这里都可以调整。

高光硬度(Shinniess)改成 32.0,高光颜色(Specular)改成白色(#ffffff),“油腻”的猴子头就出现了。

不过我不太喜欢油腻,按两次 Ctrl + Z 撤销这两个操作。

移动节点

鼠标左键选中一个节点或几何体,可以在3D预览窗口中调节它的空间变换:平移、旋转、缩放。

选择一种变换方式,然后用鼠标拖拽箭头即可。

使用任何一种变换操作后,右边的属性面板都会显示结果。例如:平移变换后,将会显示节点现在的位置坐标。

若想把节点恢复到原点处,用鼠标拖拽显然不是一个好主意。可以直接在属性面板中编辑节点的位置,把坐标改成 0.0, 0.0, 0.0 即可。

同理,想让模型绕Y轴旋转90°,可以直接把旋转改成 0.0, 90.0, 0.0

不过我并不需要移动猴子头,所以改回了默认值:

  • 位置 0.0, 0.0, 0.0
  • 缩放 1.0, 1.0, 1.0
  • 旋转 0.0, 0.0, 0.0