All tutorials

把你的prop带入Engine

Intermediate 15 min engine

把你已贴图的asset导入一个场景,为它添加物理组件,在Play模式中测试,并且无需离开应用即可把它送回去修改。

你将学到什么#

你将把prop放进Engine里的一个真实场景,为它添加物理效果,在Play模式中测试,并使用往返功能把它送回SculptPigment进行修改。

开始之前#

  • 完成在Pigment中为你的prop贴图,或者准备好任意一个已贴图的mesh。
  • Engine是一个通过众筹解锁的模块。浏览器支持WebGPU时使用WebGPU,不支持时回退到WebGL2,因此不论哪种情况都能打开。
  • 值得了解:Engine是一个完整的游戏引擎。一个场景就是Scene Graph里的一棵实体树,每个实体是一组组件(Transform、Model、Light、Camera、RigidBody、Collider、Script)。

步骤#

  1. 打开Engine,选择从空场景开始,或者加载一个demo模板,直接获得一个地面和灯光。

    **警告:**demo场景不会被保存。如果你在demo场景基础上搭建内容,离开之前请把它保存为你自己的项目。

  2. 导入你的prop。从Pigment把它发送过来,或者直接导入.glb文件。它会作为一个实体到达,并且已经带有Transform和Model组件。

  3. Scene Graph中选中该实体,在inspector里检查它的Transform。现在就把它放到地面上,并设置一个合理的缩放,因为下游的一切都会继承这个设置。

  4. Add Component添加一个Collider。没有它,prop就只是一个看得见、但物理系统碰不到的形状。

    **提示:**让collider匹配实际用途。一个近似prop形状的简单形状,在运行时比精确的mesh collider开销更小,而且对于一块石头,没人会看出区别。

  5. 如果prop需要受物理影响,就添加一个Rigidbody。对于永远不会移动的场景物件则不加,因为静态几何体的开销更低。

  6. 按下Play。在这个模式下,物理是真实运行的,所以一个带有Rigidbody和collider的prop会下落、落地并稳定下来。

  7. 观察它落地时发生了什么。一个会穿过地板下沉、抖动,或者奇怪地弹跳的prop,是在告诉你它的collider或质量设置有问题。

  8. 按下停止并进行调整。Play模式是用来测试的,不是用来创作的。

  9. 无需离开Engine即可修正建模问题:在Scene Graph中右键点击prop,用Edit inSculptPigmentRetopo中打开它。你的修改会被送回来,并原地更新这个prop。

    **提示:**你可以用Shift+点击,或者在Mac上用Cmd+点击进行多选,并把多个对象合并成一个发送出去。在Mac上,Ctrl+点击会打开上下文菜单,而不会改变选中状态。

  10. 保存场景,并使用Save to Cloud,让项目跟随你的账号。

结果#

你的prop现在存在于一个可玩的场景中:它有了物理存在感,能在真实物理下正常表现,并且你可以随时把它送回上游进行修改,完全不需要导出或重新导入任何东西。

进一步探索#

  • 用脚本赋予prop行为。Engine暴露了startupdate(dt)onCollisiononTrigger等生命周期钩子,其API横跨50个命名空间,共538个成员。
  • 如果你更想用可视化的方式而不是写代码来搭建逻辑,可以试试Blueprints
  • 探索地形编辑器和Sky & Atmosphere面板,为你的prop搭建一个环境。