如何使用 JavaScript 在 3DEXCITE 中控制人体运动

2025年2月13日 阅读时间:6分钟
分享

键盘控制的 3DEXCITE人体运动

3DEXCITE Creative Experience 应用程序中,您可以让 角色 在按下键盘按键时沿着预定义的路径移动。要实现这一点,我们首先需要设置动作行为,然后编写事件脚本,最后在故事叙述中配置场景。在本指南中,我们将引导您完成在 3DEXCITE,从而实现对角色动作的精确控制。

让我们一步一步地来!

步骤 1:导入人体模型

首先,我们需要在场景中引入一个人类角色。.

  1. 在 Creative Experience中打开你的场景。.
  2. 然后,点击 “导入” 选择 人体模型 从可用资源中
  3. 模型导入后,您应该将人物放置在您希望他们开始的位置。.

步骤 2:添加运动行为

现在人体模型已经建立,我们可以将重点转移到添加运动行为上。.

  1. 首先,选择 人物对象 场景中的
  2. 然后,转到 “属性” 卡。
  3. 之后,点击 “添加库” ,然后选择 “人体运动行为”
  4. 将该行为分配给人类模型。.

因此,人类将能够按照我们预先设定的事件沿着路径移动。.

图 1:人体运动行为—— Creative Experience

步骤三:为人类创造道路

在开始编写动作脚本之前,我们先来定义一下人将要遵循的路径。.

  1. 首先,转到 “基本信息” 卡。
  2. 然后,单击 “路径” ,开始在场景中绘制路径。
  3. 如有必要,调整路径形状以确保平滑移动。.
  4. 最后,保存路径并确保它已正确连接到场景。.

当脚本触发时,该路径将作为移动引导线。.

图 2:为人类创造路径

3DEXCITE中键盘输入的 JavaScript 技术

第四步:创建脚本演员

此时,我们需要设置一个 脚本角色 来处理键盘输入并触发人的动作。

图 3:创建 JavaScript 脚本 Actor
  1. 选择“ 创建脚本参与者”逻辑
  2. 将以下 JavaScript 代码复制并粘贴到脚本编辑器中:

var TriggerEventClass = function () {
EP.Event.apply(this, arguments);
};

TriggerEventClass.prototype = Object.create(EP.Event.prototype);
TriggerEventClass.prototype.constructor = TriggerEventClass;
TriggerEventClass.prototype.type = 'TriggerEventType';

if (!STU.TriggerEvent) {
STU.TriggerEvent = TriggerEventClass;
}

if (!EP.EventServices.getEventByType(TriggerEventClass.prototype.type)) {
EP.EventServices.registerEvent(TriggerEventClass);
}

beScript.onStart = function () {
// 脚本启动时要执行的代码。
};

beScript.onStop = function () {
// 当体验停止时要执行的代码。
};

beScript.execute = function (context) {
// 每帧执行一次。//
'context.deltaTime' 提供自上一帧以来经过的时间。
};

beScript.onAllKeyboardRelease = function (iEvent) {
// 取消注释以下行以调试按键释放事件。
// console.log(iEvent.key);

if (iEvent.key === this.KeyCode) {
let newEvent = new STU.TriggerEvent();
this.actor.dispatchEvent(newEvent);
}
};

 

步骤五:理解 JavaScript 代码

让我们来分析一下这个脚本的作用以及它在 Creative Experience中的工作原理。.

1️⃣ 创建自定义事件

var TriggerEventClass = function () {
EP.Event.apply(this, arguments);
};

的自定义事件类 TriggerEventClass。它扩展了 EP.Event 基类,使其在 Creative Experience。

2️⃣ 搭建活动原型

TriggerEventClass.prototype = Object.create(EP.Event.prototype);
TriggerEventClass.prototype.constructor = TriggerEventClass;
TriggerEventClass.prototype.type = 'TriggerEventType';

在这里,我们基于 EP.Event ,并设置自定义事件类型 TriggerEventType

3️⃣ 注册自定义活动

if (!STU.TriggerEvent) {
STU.TriggerEvent = TriggerEventClass;
}

if (!EP.EventServices.getEventByType(TriggerEventClass.prototype.type)) {
EP.EventServices.registerEvent(TriggerEventClass);
}

为了确保功能正常,此程序首先检查 STU.TriggerEvent 是否存在。如果不存在,则将其赋值为我们自定义的 TriggerEventClass 。此外,它还会确保 TriggerEventType 中注册 事件服务 ,以便稍后能够触发。

4️⃣ 事件生命周期函数

beScript.onStart = function () {
// 脚本启动时要执行的代码。
};

beScript.onStop = function () {
// 当体验停止时要执行的代码。
};

beScript.execute = function (context) {
// 每帧执行一次。//
'context.deltaTime' 提供自上一帧以来经过的时间。
};

这些函数定义了 脚本的生命周期

  • onStart:脚本启动时运行。
  • onStop:当体验停止时运行。
  • execute:每帧运行(适用于连续动作)。
5️⃣ 处理键盘输入

beScript.onAllKeyboardRelease = function (iEvent) {
// 取消注释以下行以调试按键释放事件。
// console.log(iEvent.key);

if (iEvent.key === this.KeyCode) {
let newEvent = new STU.TriggerEvent();
this.actor.dispatchEvent(newEvent);
}
};

此函数在按键释放时触发。它会检查释放的按键是否与我们的 KeyCode。如果匹配,则创建一个自定义事件 (STU.TriggerEvent) 的新实例,并将其分发给 Actor。

步骤 6:配置传感器

接下来,为了检测按键事件,我们需要配置一个传感器。.

  1. 首先,转到 “传感器”选项卡 并创建一个新传感器。
  2. 然后,将 类型EVENT
  3. 之后,将 IDTriggerEventType
  4. 设置 别名Executed
  5. 点击 播放图标 激活传感器。
图 4:创建传感器
定义 KeyCode 属性

换句话说,要指定哪个键触发该动作:

  1. “属性”选项卡,单击 “添加新属性”
  2. 设置 名称密钥代码
  3. 类型整数
  4. 设置 73 (对应于 “I”键 JavaScript API 指南中的
图 5:创建键码属性

步骤七:创建故事场景

设置好传感器后,我们现在要定义人对该事件的反应。.

  1. 点击 “创建场景” 下, “故事讲述”
  2. 添加一个新的 “每次脚本角色执行时” 代码块。
  3. 将操作设置为 人工激活
  4. 然后,添加另一个用于 “人类跟随路径”的
  5. 将它们连接起来,以便当事件发生时,人就能激活并沿着路径前进。.
图 6:创建故事场景

步骤 8:运行体验

一切就绪!现在,让我们来测试一下:

  • 点击 “播放” 运行模拟。
  • 按下 I 键 键盘上的
  • 之后,这个人就应该 开始沿着这条路走

结论

在本教程中,我们逐步讲解了以下步骤:

  • 将人体模型导入场景。.
  • 添加运动行为以实现移动。.
  • 为人类创造一条可以遵循的道路。.
  • 编写一个 JavaScript 脚本来检测键盘输入。.
  • 配置传感器以触发事件。.
  • 最后,利用讲故事的方式来促使人们按下“I”键。.

此外,这种方法还可以扩展,以创建更复杂的交互,例如触发动画、控制多个角色或集成其他事件。.

最后,在下一篇 博客,我们将探讨如何 姿势和手势的 使用 JavaScript

 3DEXCITE中的人体姿态

Hanen Bdioui
订阅
通知
客人

1 评论
最老
最新 最受欢迎
内联反馈
查看所有评论
引用通告

在之前的博客中,我们探讨了如何使用 JavaScript 让用户沿着预定义的路径移动。如果您错过了,请继续阅读……

1
0
欢迎留言分享您的想法