128
www.vrplatform.com VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介......................................................................................................................... 3 2 SDK 编程结构....................................................................................................... 3 2.1 VRP 脚本编程VRP-SDK 编程的相同点和区别 ..................................... 3 2.1.1 VRP 脚本编程的交互特点 .............................................................. 3 2.1.2 VRP-SDK 编程的特点 .................................................................... 4 2.2 VRP-SDK 编程结构 ................................................................................... 4 3 SDK - OCX控件导入............................................................................................. 5 3.1 建立对话框的工程并将OCX嵌入到对话框之中...................................... 5 3.2 在程序中产生VRP OCX 对象代码 ........................................................... 9 3.3 VRP OCX 消息大全 ................................................................................. 14 4 VRP-SDK 编程步骤 ........................................................................................... 17 4.1 在程序初始化的时候注册ocx对象 .......................................................... 17 4.2 在自己的应用程序中创建vrp对象........................................................... 18 4.3 使用vrp 对象向vrp场景中发送脚本 ....................................................... 18 4.4 vrp场景消息回调函数中接收消息....................................................... 20 5 VRP-SDK 程序打包 ........................................................................................... 21 5.1 概述 ............................................................................................................ 21 5.2 VS2005 建立打包工程的方法 ................................................................. 22 6 VRP-SDK 制作项目案例简介 ........................................................................... 29 6.1 华东勘测院水坝开挖过程仿真项目 ........................................................ 29 6.2 VRP在工业控制领域的应用 .................................................................... 31 6.2.1 电力行业仿真机三维可视化方面.................................................. 31 6.2.2 工控DCS三维可视化方面.............................................................. 32 联系电话 010-82038328, 8329, 7337 1

VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf · VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

  • Upload
    others

  • View
    22

  • Download
    1

Embed Size (px)

Citation preview

Page 1: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

VRP-SDK 使用教程

——中视典数字科技有限责任公司

1 简介.........................................................................................................................3

2 SDK 编程结构.......................................................................................................3

2.1 VRP 脚本编程VRP-SDK 编程的相同点和区别 .....................................3

2.1.1 VRP 脚本编程的交互特点 ..............................................................3

2.1.2 VRP-SDK 编程的特点 ....................................................................4

2.2 VRP-SDK 编程结构 ...................................................................................4

3 SDK - OCX控件导入.............................................................................................5

3.1 建立对话框的工程并将OCX嵌入到对话框之中......................................5

3.2 在程序中产生VRP OCX 对象代码 ...........................................................9

3.3 VRP OCX 消息大全 .................................................................................14

4 VRP-SDK 编程步骤 ...........................................................................................17

4.1 在程序初始化的时候注册ocx对象 ..........................................................17

4.2 在自己的应用程序中创建vrp对象...........................................................18

4.3 使用vrp 对象向vrp场景中发送脚本 .......................................................18

4.4 在vrp场景消息回调函数中接收消息.......................................................20

5 VRP-SDK 程序打包 ...........................................................................................21

5.1 概述 ............................................................................................................21

5.2 VS2005 建立打包工程的方法 .................................................................22

6 VRP-SDK 制作项目案例简介 ...........................................................................29

6.1 华东勘测院水坝开挖过程仿真项目 ........................................................29

6.2 VRP在工业控制领域的应用 ....................................................................31

6.2.1 电力行业仿真机三维可视化方面..................................................31

6.2.2 工控DCS三维可视化方面..............................................................32

联系电话 010-82038328, 8329, 7337 第 1 页

Page 2: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

6.2.3 工业三维设备属性管理方面..........................................................32

6.2.4 工业零部件拆装训练......................................................................33

6.2.5 工业生产线模拟仿真......................................................................34

6.2.6 工业设备操作培训..........................................................................35

7 VRP-SDK脚本简介 .............................................................................................35

7.1 初始化命令 ................................................................................................36

7.2 调试 ............................................................................................................37

7.3 VRP窗口 ....................................................................................................41

7.4 网络VRP ....................................................................................................42

7.5 文件操作 ....................................................................................................44

7.6 多通道和分屏 ............................................................................................45

7.7 脚本文件 ....................................................................................................48

7.8 游戏外设 ....................................................................................................55

7.9 相机操作 ....................................................................................................56

7.10 获取信息.................................................................................................59

7.11 相机控制.................................................................................................62

7.12 悬浮窗口.................................................................................................71

7.13 音乐.........................................................................................................74

7.14 材质操作.................................................................................................76

7.15 動画命令.................................................................................................80

7.16 骨骼动画.................................................................................................85

7.17 模型操作.................................................................................................90

7.18 查找.........................................................................................................96

7.19 数据库.....................................................................................................98

7.20 杂项.......................................................................................................104

7.21 导航图...................................................................................................112

7.22 天气.......................................................................................................114

7.23 形状.......................................................................................................119

7.24 远程控制...............................................................................................124

联系电话 010-82038328, 8329, 7337 第 2 页

Page 3: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

1 简介

VRP-SDK 是 VRP 面向各种应用程序(包括 VC, VB, C#和 Delphi)的接口,

让其他的应用程序得以通过 VRP-SDK 和 VRP 三维场景结合起来,实现程序级

别的场景控制方式,弥补了单纯的在 VRP 编辑器里面使用脚本控制场景的不足,

大大提高了 VRP 场景与用户的交互程度。程序和 VRP 场景结合后,VRP 场景的

一切动作都可以由程序发出,实现了高度控制的效果。脚本是 VRP 的 API,您

的程序将是驱动 API 工作的引擎。将你的程序处理和 VRP 脚本结合起来将威力

无穷 !

2 SDK 编程结构

2.1 VRP 脚本编程 VRP-SDK 编程的相同点和区别

2.1.1 VRP 脚本编程的交互特点

VRP 脚本编程是在 VRP 编辑器中使用组合使用各种 VRP 脚本去控制场景,

从而使三维场景产生交换动态的特点。主要的动态交换特点是使用鼠标触发,键

盘触发和距离触发,驱动场景去播放某个动画或者执行预先设定的事件或者动

作,进而让用户产生与三维场景交互的感觉,这种方式所产生交换是单向性的,

即只有用户去主动影响场景。

VRP 脚本

VRP 三维场景运行窗口

联系电话 010-82038328, 8329, 7337 第 3 页

Administrator
附注
Page 4: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

2.1.2 VRP-SDK 编程的特点

VRP-SDK 编程主要是将 VRP 场景以 OCX 控件的方式嵌入到其他的应用程

序中,用户通过操作这个嵌入的 OCX 对象实现对 VRP 三维场景的控制同时三维

场景还会将发生的事件以消息的方式传递回来,例如返回鼠标双击消息,鼠标左

键按下弹起事件,发送命令脚本然后返回有用信息,在 VRP 中的一些脚本专门

是为 SDK 编程设计的,因为那些返回信息在非编程环境下的 VRP Builder 是很

难处理的。

2.2 VRP-SDK 编程结构 VRP-SDK 在用户的系统中主要起着一个中介的角色。采用 VRP-SDK 的用

户大多数都是想将自己的领域的系统赋予三维场景化的能力,用户本身的业务系

统(例如某发电厂系统)作为整个软件架构的核心逻辑中,而 VRP 三维场景只

是表现层。VRP-SDK 则将用户的业务系统和 VRP 三维场景联系起来。

VRP-SDK 具有双向沟通能力

VRP-SDK 程序

VRP 三维场景运行窗口

VRP 脚本

VRP-SDK 在整个客户系统的位置,该客户的系统主要是处理自己的业务的系

统。

联系电话 010-82038328, 8329, 7337 第 4 页

Page 5: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

通过以上的介绍,用户可以在设计自己的系统的时候,考虑一下 VRP-SDK

所在程序中的位置,在搭建自己的系统的时候有所考虑。下面将开始 VRP-SDK

编程之旅。

3 SDK - OCX 控件导入

VRP-SDK 编程的第一步是将 OCX 对象导入到编程环境中,用户所有的操

作都是在这个对象的基础上进行的。这里就有个限定条件了,即客户的程序应该

是基于对话框的,能够嵌入控件工具的程序模式。

举 VC 中的 MFC 为例子来讲解嵌入 OCX 对象步骤,VB,C#使用方式和它

相类似,细节将参照 SDK 其他的小型文档。

3.1 建立对话框的工程并将 OCX 嵌入到对话框之中

联系电话 010-82038328, 8329, 7337 第 5 页

Page 6: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

联系电话 010-82038328, 8329, 7337 第 6 页

Page 7: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

2,选中工程中对话框的资源

3,在对话框里面添加 vrp ocx 控件,该控件和普通的工具箱里面的按钮,编辑

框和下拉列表等控件的概念是一样的。如果你的系统上没有装 VRP-OCX 控件,

需要先在编程开发环境里面注册。

联系电话 010-82038328, 8329, 7337 第 7 页

Page 8: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

1,选择 Insert ActiveX Control 点击【OK】按钮后,对话框出现一个黑色的窗口,

联系电话 010-82038328, 8329, 7337 第 8 页

Page 9: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

该窗口就是我们的 VRP 窗口,也就是 VRP 控件的对象。我们使用的编程对象就

是它了。

至此 VRP-OCX 控件已经被加入到我们的程序中了。我们必须让这儿对象产生出

它在程序中对应的类以及类对象的代码。

3.2 在程序中产生 VRP OCX 对象代码

上一节说明了如何给基于对话框的应用程序加入一个 OCX 控件,现在我们

要使用该控件产生 VRP 对象,并让该对象能够与我们的代码产生交互。

首先要在控件的基础上产生一个 OCX 对象

联系电话 010-82038328, 8329, 7337 第 9 页

Page 10: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

在控件上单击右键,选择类向导,该类向导主要作用是在控件的基础上产生一个

对象

联系电话 010-82038328, 8329, 7337 第 10 页

Page 11: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

选中控件所属的 ID 然后在该 ID 的基础上添加对象

由于 OCX 是一个特殊的 VC 外来的控件对象,因此它一般都会产生自己的接口

代码,便于用户调用使用 OCX 对象。产生类名, 头文件和源文件。头文件里

面定义了 OCX 对象所能提供的所有功能。其他语言也能够从 OCX 控件内自动

的参数原代码

联系电话 010-82038328, 8329, 7337 第 11 页

Page 12: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

定义 OCX 对象的名字和类型。

打开 OCX 对象查看其生成的源文件代码。

打开 VC 对话框头文件可以看到刚才通过对话框创建的 VRP 对象是 CActiveVrp

m_wndActiveVrp ; CActiveVrp 就是 VRP 的 OCX 类,该类的文件是 activevrp.h

和 activevrp.cpp ,这两个文件都是从 OCX 控件对象创建后生成出来的。打开

activevrp.h 文件可以看到如下代码:

class CActiveVrp : public CWnd

{

protected:

DECLARE_DYNCREATE(CActiveVrp)

联系电话 010-82038328, 8329, 7337 第 12 页

Page 13: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

public:

CLSID const& GetClsid()

{

static CLSID const clsid

= { 0xa9def5e7, 0x51d5, 0x4ac2, { 0xb5, 0x30, 0x62, 0x73, 0xcc, 0xf5,

0x98, 0xda } };

return clsid;

}

virtual BOOL Create(LPCTSTR lpszClassName,

LPCTSTR lpszWindowName, DWORD dwStyle,

const RECT& rect,

CWnd* pParentWnd, UINT nID,

CCreateContext* pContext = NULL)

{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect,

pParentWnd, nID); }

BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,

const RECT& rect, CWnd* pParentWnd, UINT nID,

CFile* pPersist = NULL, BOOL bStorage = FALSE,

BSTR bstrLicKey = NULL)

{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect,

pParentWnd, nID,

pPersist, bStorage, bstrLicKey); }

// Attributes

public:

// Operations

public:

联系电话 010-82038328, 8329, 7337 第 13 页

Page 14: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

CString ExecuteVrpScript(LPCTSTR cmd_line);

CString GetVrpMsgDesc(long vrp_msg_id, long p1, long p2, long p3, long p4);

long Create3dWorld();

long Destroy3dWorld();

long LoadVrpFile(LPCTSTR file);

};

GetClsid 是获取 VRP-OCX 对象的注册 ID,ID 主要是用于系统的注册 OCX 控

件,用户不需要去使用这个函数。

Create 函数主要是用于在对话框中创建 OCX 窗口对象,并将该对象和 ID 给绑

定在一起,这个函数也不需要用户去调用。

LoadVrpFile 函数是加载 VRP 场景,一般使用 VRP 脚本里的 “打开场景,

vrp_file_path ” 也可以实现相同的功能。

Create3dWorld 函数是创建 3d 场景,在 VRP-OCX 控件世界里面不需要使用这

个函数,OCX 控件放到对话框里面成为一个对象后它自己就已经创建了 3d 场景

了。

Destroy3dWorld 函数是销毁 3d 场景,同样用户也不需要去销毁 3d 场景。

ExecuteVrpScript 函数是用户用得 多的函数,这个函数是 SDK 程序向 VRP

场景对象发送脚本的接口,各种不同的脚本经过程序处理,数字转换为字符,

后串接为一个字符串然后使用这个函数将脚步以命令的方式发送到 VRP 场景对

象中, VRP 场景对象会得到用户发送的脚本并加以解释执行。

GetVrpMsgDesc 函数是获取 VRP 场景对象信息的函数,VRP 场景在运行的时

候会返回信息,用户则可以通过这些返回信息知道场景中发生了什么事情,并对

场景加以及时的处理。

3.3 VRP OCX 消息大全 vrp_msg_id 是场景发生事件的消息 ID,VRP-SDK 消息 ID 有如下:

消息 ID 消息含义

VMSG_FILE_LOADED vrp 文件加载完毕

联系电话 010-82038328, 8329, 7337 第 14 页

Page 15: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

VMSG_FILE_CLOSED 关闭所有文件

VMSG_USER_STR 用户自定义的字符串

VMSG_MOUSE_DBCLICK 在 VRP 场景中鼠标左键双击事

件,参数 1 为操作模型名称,参

数 2 为操作模型的选中状态

VMSG_CAMPOS_CHANGED 相机坐标改变

VMSG_HOT_MODEL_LBTN_DOWN 鼠标在热点模型上左键按下

VMSG_HOT_MODEL_LBTN_UP 鼠标在热点模型上左键弹起

VMSG_HOT_MODEL_MBTN_DOWN 鼠标在热点模型上中键按下

VMSG_HOT_MODEL_MBTN_UP 鼠标在热点模型上中键按下

VMSG_HOT_MODEL_RBTN_DOWN 鼠标在热点模型上右键按下

VMSG_HOT_MODEL_RBTN_UP 鼠标在热点模型上右键按下

VMSG_HOT_MODEL_MOUSE_ENTER 鼠标移入热点模型范围

VMSG_HOT_MODEL_MOUSE_LEAVE 鼠标移出热点模型范围

VMSG_HOT_PANEL_LBTN_DOWN 鼠标在热点面板上左键按下

VMSG_HOT_PANEL_LBTN_UP 鼠标在热点面板上左键弹起

VMSG_HOT_PANEL_MBTN_DOWN 鼠标在热点面板上中键按下

VMSG_HOT_PANEL_MBTN_UP 鼠标在热点面板上中键按下

VMSG_HOT_PANEL_RBTN_DOWN 鼠标在热点面板上右键按下

VMSG_HOT_PANEL_RBTN_UP 鼠标在热点面板上右键按下

VMSG_HOT_PANEL_MOUSE_ENTER 鼠标移入热点面板范围

VMSG_HOT_PANEL_MOUSE_LEAVE 鼠标移出热点面板范围

BEGIN_FRAME_MSG 渲染循环的消息开始

VMSG_BEFORE_RENDER_FRAME 开始渲染

VMSG_AFTER_RENDER_FRAME 结束渲染

联系电话 010-82038328, 8329, 7337 第 15 页

Page 16: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

END_FRAME_MSG 渲染循环的消息结束

VMSG_FULLSCREEN Troggle 全屏显示

VMSG_MOUSEEVENT 鼠标事件,为了传递给 OCX 控件

获取消息使用

VMSG_MODELS_ADDED 模型增加

VMSG_MODELS_REMOVED 模型删除

VMSG_MEASURE_POINTS_CHANGE 测量工具中模型测量发生变化的

消息通知

VMSG_PATH_POINTS_CHANGE 路径设置工具的选择点发生变化

VMSG_MEASURE_CRTL_POINT 用户在点测量模式下点击点后的

消息,p1 为模型名称,p2 为点坐

VMSG_MEASURE_LENGTH 点距离测试时返回的测量结果。

VMSG_HOT_PATH_ARRIVAL_SIGNAL 到达事件

VMSG_TRIGGER_ENTER 距离触发进入

VMSG_TRIGGER_LEAVE 距离触发离开

VMSG_MMO_READY 场景已经准备好,可以 Enter 了

VMSG_MMO_ENTER_RESULT 场景 Enter 的结果

VMSG_MMO_ONLINE_USER_COUNT 在线用户的数量

VMSG_MMO_ONLINE_USER 某个在线用户的信息

VMSG_MMO_ONLINE_USER_DIRTY 需要更新在线用户列表了

VMSG_MMO_CHANNEL_CHAT_CONTENT 有一个频道聊天文本发送过来了

VMSG_MMO_PRIVATE_CHAT_CONTENT 有一个私聊文本发送过来了

VMSG_MMO_CONNECT_RESULT 服务器连接结果

联系电话 010-82038328, 8329, 7337 第 16 页

Page 17: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

在三维场景中鼠标跟踪是 经常出现的消息,因为很多东西都被图形化了,用户

只需要在这个三维场景中点物体或者是点击二维面板就可以实现丰富的交互操

作了。在 VC, VB, C#里面都使用一个枚举类型将所有 SDK 消息编号囊括其中。

p1 一般都是物体的名称。

VRP 嵌入对话框程序的一般界面:

4 VRP-SDK 编程步骤

4.1 在程序初始化的时候注册 ocx 对象 ActiveVrp.ocx 文件必须放在程序同目录路径下

//自动注册activevrp插件,在需要的时候可以开启

CString vrp_ocx_file = filefun2::get_module_path(0) + _T("ActiveVrp.ocx");

联系电话 010-82038328, 8329, 7337 第 17 页

Page 18: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

COcxRegister::reg_ocx(vrp_ocx_file);

注册 OCX 控件是非常必要的事情,当你的程序运行在没有装 OCX 控件机器上

时,一开要先注册 OCX,后来才能很好的运行。

4.2 在自己的应用程序中创建 vrp 对象 在主对话框窗口中声明 vrp 对象,当 OCX 控件被嵌入到窗口中,并生成了

CActiveVrp 类,我们就可以使用该类来声明我们 VRP 窗口的对象了。

CActiveVrp m_vrp;

4.3 使用 vrp 对象向 vrp 场景中发送脚本 一般都需要使用【打开发动机】的按钮(如上图所示)以供用户使用程序去

加载 VRP 场景。

void CActiveVrpTestDlg::OnButtonOpenModel()

{

//load vrp file

m_vrp.ExecuteVrpScript("打开场景, ..\\测试案例\\sdk\\motor.vrp");

}

通过使用函数 ExecuteVrpScript 去执行打开场景的脚本,和在编辑器中使用脚本

的方式基本上是一样的,但是由于 ExecuteVrpScript 内的字符串是可以由程序去

控制使用的因此大大增强了使用 vrp 场景对象的灵活性。

在和场景交互的时候需要提前知道 vrp 场景文件中定义了哪些自定义函数,可以

在程序中直接使用,非常方便。

联系电话 010-82038328, 8329, 7337 第 18 页

Page 19: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

在程序中使用该自定义函数:

void CActiveVrpTestDlg::OnButtonRunMode()

{

m_vrp.ExecuteVrpScript("执行内部函数, mode_run");

}

一般比较灵活的脚本编写方式是:

void CActiveVrpTestDlg::OnButtonRunScript()

{

CString str_cmd ;

// str_cmd 可以被程序员灵活的使用

str_cmd = _T("执行内部函数, mode_run");

m_vrp.ExecuteVrpScript(str_cmd);

}

联系电话 010-82038328, 8329, 7337 第 19 页

Page 20: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

4.4 在 vrp 场景消息回调函数中接收消息 在 vc 中双击 vrp ocx 控制对象既可给为程序添加 vrp 场景回调函数,以供程

序从场景中得到通知。

程序生成的回调函数的代码:

void CActiveXVrpTestDlg::OnVrpEventActivevrpctrl1(long vrp_msg_id, long p1,

long p2, long p3, long p4)

{

// TODO: Add your control notification handler code here

}

用户可以在里面填写响应消息的代码,例如用户想得到场景中被选中物体的三维

坐标可以拦截场景双击的消息。

void CActiveXVrpTestDlg::OnVrpEventActivevrpctrl1(long vrp_msg_id, long p1,

long p2, long p3, long p4)

{

// TODO: Add your control notification handler code here

if ( vrp_msg_id == VMSG_MOUSE_DBCLICK)

{

CString str_cmd = _T("得到所选物体名称");

CString select_model = m_vrp.ExecuteVrpScript(str_cmd);

str_cmd = _T("得到包围盒的中心坐标," + select_model + " , 1, 0");

联系电话 010-82038328, 8329, 7337 第 20 页

Page 21: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

CString model_pos = m_vrp.ExecuteVrpScript(str_cmd);

// 拿到了模型坐标知道了 3d 空间的物体信息

}

}

好了到这里,我们已经搭建好和 VRP 场景交互的程序代码了。它 终的结构是:

SDK 程序的主

体 按钮 1,按钮 2

VRP 三维运行场景 Vrp 脚本

VRP 消息回调函数

具体示例请参照 SDK 里面的 ActiveVrpTest_vc6 示例。VB, C#程序在 SDK 里面

有相应的示例。

程序打包

5.1

VS2005 可以直接建立打包工程,并将所有需

要的文件都放入打包工程里面。

SDK 目录下的文件:

5 VRP-SDK

概述

在VRP-SDK程序在发布的时候需要将SDK目录下的 demo 下的所有文件都

和用户自己发布的 EXE 程序放在一个目录下面。并且在程序里面写上注册

ActiveVrp.ocx 控件的代码。使用

联系电话 010-82038328, 8329, 7337 第 21 页

Page 22: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

5.2 VS2005 建立打包工程的方法 本文方法完全引用网上的一篇原文,但担心链接失效,所以将原文链接和原文一

起放在下面:

原文链接:

http://hi.baidu.com/i_am_neo/blog/item/e8fa055169d8f21e377abece.html

原文:

1:新建安装部署项目

联系电话 010-82038328, 8329, 7337 第 22 页

Page 23: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也

一样),然后点击确定.(详细见下图)

此主题相关图片如下:

2:安装向导

关闭后打开安装向导,点击下一步,或者直接点击完成.

3:开始制作

安装向导完成后即可进入项目文件夹:

双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程

序的可执行文件和相应的类库和组件添加进来.

联系电话 010-82038328, 8329, 7337 第 23 页

Page 24: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边

的"用户的'程序'菜单"和"用户桌面"中.

这样安装程序安装安装完成后会在 "开始->所有程序"和"桌面"上生成程序的快

捷方式.

联系电话 010-82038328, 8329, 7337 第 24 页

Page 25: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

然后右击左边的"应用程序文件夹"打开属性对话框:

将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,

不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装

解决方案名称";

然后打开解决方案管理器,右击你的解决方案名称,选择属性:

在打开的属性页中,选择"系统必备",

在打开的系统必备页中,选中如下中的选择项,这个很重要!!!!!1!!!!!

选上以后,在生成的安装文件包中包含.netframework组件.(这个选项默认是没有

选中的)

联系电话 010-82038328, 8329, 7337 第 25 页

Page 26: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

好了,这样就完成 99%了,然后点击"生成->生成解决方案",哈,生成成功!

4:制作完成

现在打开解决方案文件夹下的debug文件夹,就可以看到生成的安装文件了.

【续】关于"卸载"功能的添加

上面的文章只介绍了简单的生成安装的方法,

但是在vs.net2005 下并没有直接生成卸载程序的功能,

所以我们只好用msi来实现了,

原理我就不讲了,网上一搜一堆,我只讲操作,

【1】:在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,

这个文件在c:\windows\system32 文件夹下,

联系电话 010-82038328, 8329, 7337 第 26 页

Page 27: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

添加进去以后,为了让他更像个卸载程序,把他的名字改成"Uninstall.exe",

当然这个关系不大,改不改都行的.

然后给他创建一个快捷方式,放到桌面或者"开始-程序"中,

我选择放在了开始菜单中,然后下面我们要的做的就是查找这个部署项目的

ProductCode 了,

鼠标左键单击项目名称,记住是左键单击,然后点击属性标签,注意:不是右击的属

性,

这个区别很大,这时你就可以看到 ProductCode 了,

联系电话 010-82038328, 8329, 7337 第 27 页

Page 28: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

然后打开你创建的那个快捷方式的属性对话框,

在 Aguements 属性中输入"/x {ProductCode}",

联系电话 010-82038328, 8329, 7337 第 28 页

Page 29: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

好了,然后点击"生成解决方案"即可生成带有卸载功能的安装程序了.

6 VRP-SDK 制作项目案例简介

6.1 华东勘测院水坝开挖过程仿真项目 该项目仿真模拟了白鹤滩大坝坝肩的开挖过程。整个开挖过程根据华东勘测

院提供的开挖数据信息实时计算,如果提供的施工数据发生了变化,计算和仿真

结果也随之改变,可以很方便地制定和演示开挖方案。华东勘测院提供了 4 套开

挖方案数据,保存在 access 数据库文件中。每个开挖方案的工期,开挖强度,运

渣路线,开挖面积都不一样。

通过仿真程序读取并计算开挖过程,可以非常形象和直观地看到动态的开挖

过程。

项目技术特点:

1. 数据实时驱动的动态仿真模拟。仿真结果是由华东勘测院提供的工程施

工数据计算得到的。输入多种施工数据,就可以仿真得到多种施工过程。

方便用户制定和查看不同方案间的区别。

2. 和数据库紧密结合。客户提供的工程施工数据可以是保存在数据库中的

数据。由 vrp 去连接数据库读取。数据保存在数据库内也便于更新和修

改。

3. 根据用户需要定制开发规划功能,例如点,距离,面积,体量的测量工

具,标注工具,实时高程查询功能。

4. 高度真实感的场景。三维场景按照勘测院提供的场景数据按照真实比例

1:1 制作,并采用了高清晰的航拍图片,感觉十分真实。

华东勘测院提供的 4 套开挖方案:

联系电话 010-82038328, 8329, 7337 第 29 页

Page 30: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

数据库里的施工数据:

下图为模拟出来的开挖过程:(红色部分为当前施工区域的高亮显示,场景

的贴图采用了高清晰航拍图片,因此视觉上非常逼真。)

联系电话 010-82038328, 8329, 7337 第 30 页

Page 31: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

项目运行总界面

6.2 VRP 在工业控制领域的应用

6.2.1 电力行业仿真机三维可视化方面

三维系统通过数据库接口获取设备状态,实时显示仿真机系统的开关、刀闸

联系电话 010-82038328, 8329, 7337 第 31 页

Page 32: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

等设备的状态;并且可通过数据库接口实现二维仿真控制系统与三维系统交互控

制。典型应用在变电站 GIS 培训方面。

6.2.2 工控 DCS 三维可视化方面

通过 OPC 方式,开发客户端程序,读取服务器端实时数据,以改变三维场景

中对应物体状态,实时模拟设备工作状态。典型应用在石油化工处理仿真系统方

面。

6.2.3 工业三维设备属性管理方面

通过模拟三维设备场景,连接数据库实现三维设备查询管理系统,以实现三

维可视化条件下的对设备属性,配件属性查询与管理。典型应用在中海油平台设

联系电话 010-82038328, 8329, 7337 第 32 页

Page 33: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

备属性管理。

6.2.4 工业零部件拆装训练

通过制作出设备的三维模型,可进行零部件的拆装,以熟悉设备的结构,可

增加设备的拆装顺序控制,以实现设备的拆装培训;也可模拟设备工作运转状态,

加深对设备的了解。典型应用 GIS 变电站设备拆装。

联系电话 010-82038328, 8329, 7337 第 33 页

Page 34: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

6.2.5 工业生产线模拟仿真

通过对工业生产线的设备模拟、生产工序的拆分与逻辑控制,实现虚拟生产

线的模拟与控制。典型应用宝钢虚拟生产线培训。

联系电话 010-82038328, 8329, 7337 第 34 页

Page 35: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

6.2.6 工业设备操作培训

通过模拟工业设备工作环境与操作面板,将虚拟的工作场景与实际操作面板

结合,实现复杂操作设备的低成本培训。典型应用中联重工吊车培训。

以上结合实际工程项目,针对 VRP 在工业控制领域不同方面的应用进行简要

归纳总结,便于推广应用。

7 VRP-SDK 脚本简介

VRP 设计理念是所见即所得的概念,因此很多脚本都是顾名思义的,脚本是

VRP-SDK 编程的核心,是 VRP 的语言,和 VRP 沟通都是通过脚本以及脚本返

回信息进行交流。

联系电话 010-82038328, 8329, 7337 第 35 页

Page 36: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

这里仍然列出来以供查阅。

7.1 初始化命令

初始化VRP窗口(vc)(该函数属sdk的函数)

/*指定一个VC控件,将其初始化为一个VRP窗口,该函数仅用于VC中!,该脚本

主要供VRP-SDK 用户使用。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: VC控件的HWND(是handle to window缩写,属VC控件的窗口句柄)

初始化VRP窗口(neobook)(该函数属neobook控件函数)

/*指定一个neobook控件,将其初始化为一个VRP窗口,该函数仅用于neobook中!,

该脚本主要供VRP-SDK 用户使用。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: neobook矩形控件(Rectangle)

销毁VRP窗口(该函数属sdk的函数)

/*销毁 VRP 窗口,仅 VC 和 Neobook 中可用! 该脚本主要供 VRP-SDK 用户使

用。*/

返回值: 0=不成功,1=成功

参数个数

设置vrp窗口坐标(该函数属sdk的函数)

/*设置 VRP Player 窗口的坐标,用此控制 VRP 窗口的大小和位置,该脚本主

要供 VRP-SDK 用户使用。 */

返回值: 0=不成功,1=成功

联系电话 010-82038328, 8329, 7337 第 36 页

Page 37: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数个数:1

参数一: 窗口的左上右下坐标,用/分隔,如 0/0/300/200

7.2 调试

设置 vrp 渲染窗口始终刷新

/* VRP 场景是始终自动刷新,还是人工强制刷新,“否”可以降低 CPU 占用率

*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=否(CPU 占用率低);1=是(CPU 占用率高)

显示/隐藏地面

/*设置 VRP 场景中默认地面是否显示*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=隐藏;1=显示

显示/隐藏 FPS

/*窗口坐下角是否显示 FPS, Frame 和渲染状态等信息*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=隐藏;1=显示

显示/隐藏调试信息

/*窗口中是否以字符串方式显示调试信息,该调试信息主要描述了场景中发生的

事情,或者脚本执行的返回结果,例如你执行了平移某个物体的脚本,而场景中

又没有这样的脚本,那么调试信息里面会提示找不到改物体的提示。*/

联系电话 010-82038328, 8329, 7337 第 37 页

Page 38: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=隐藏;1=显示

设置线框模式

/*设置场景的渲染模式,可以设置实体渲染,线框渲染和实体加上线框渲染。有

什么需要观察物体背后的一些信息,可以使用线框渲染,这样的渲染使得场景中

没有遮挡关系。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=实体;1=线框;2=实体+线框;3=点

显示/隐藏选择框

/*显示/隐藏物体被选中的选择框,该选择框是一个白色的长方体形线框包围着物

体,也就是物体的包围盒。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=隐藏;1=显示

显示/隐藏鼠标触发框

/*显示鼠标触发时的物体边框,如果在编辑器里面定义了物体的鼠标事件,那么

场景运行起来的时候,鼠标放在物体上,会有一个绿色的长方体形线框包围着物

体,这就是物体的鼠标触发框。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=隐藏;1=显示

显示/隐藏所有界面

/*显示/隐藏所有二维界面, 在 VRP 编辑器里面的二维界面包括按钮, 导航图,

联系电话 010-82038328, 8329, 7337 第 38 页

Page 39: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

图片, 色块, 开关, 画中画和北指针。这些界面在 VRP 中都是以二维方式展

现。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=隐藏;1=显示

设置窗口非活跃时是否保持画面刷新

/*设置窗口非活跃时是否保持画面刷新,当窗口被其他窗口遮挡住一部分后,画

面是否也不断刷新,设置为刷新会占用 CPU 的计算。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=否;1=是

设置 vrp 窗口活跃状态

/*设置VRP窗口是否处于活跃状态,让VRP窗口在 小化的情况下转换为正常的

窗口状态。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=否;1=是

设置 小刷新间隔

/*设置画面的 小刷新间隔,对应播放刚体或者骨骼动画的流畅程度有影响。刷

新间隔短,动画播放的就流畅。刷新间隔长,动画播放可能会有跳跃的现象。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 参数;0=否;1=是

s

突出显示

联系电话 010-82038328, 8329, 7337 第 39 页

Page 40: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

/*使用一个包围线框来突出显示物体,该包围线框的颜色可以自己去定义。*/

返回值: 0=不成功,1=成功

参数个数:1

参数一: 模型或者组的名

参数二: 颜色,格式R/G/B,如 0/128/255

显示插件信息

/*如果VRP中加载了一些插件的话,将这些插件的信息给显示出来。插件都是根

据用户定义的需求去开发的,例如普通的数据库插件。*/

返回值: 0=不成功,1=成功

参数个数:0

自动抗锯齿

/*软件抗锯齿,当相机离物体特别近的时候,绘制的物体容易产生锯齿现象,使

用 2-4 次的线性差值绘画物体可以消除明显的锯齿现象,但也会在每帧画面的渲

染的时候加大画面生成的计算量。*/

返回值: 0=不成功,1=成功

参数一: 抗锯齿系数, 2 倍, 3 倍,系数越高计算量就越大

参数二: 画面静止多长时间后开启,有 200 毫秒,400 毫秒,600 毫秒,800 毫秒

和 1000 毫秒。当场景本来就处于剧烈运动的状态下开启抗锯齿是没有意义的,

因为每帧画面存在时间非常短,人的眼睛来不及辨别。只有静止的画面,软件抗

锯齿才有它存在的意义。

设置可视距离

/*设置场景中所有物体的可视距离,唯一的参数可视距离是设置的相机离物体的

距离与物体的长度比*/

返回值: 0=不成功,1=成功

参数一: 可视距离 ,含义相机离物体的距离和物体长度的比。例如物体长 100

毫米,可视距离设置为 10,那么当相机离物体的距离大于 1000 毫米的时候,物

联系电话 010-82038328, 8329, 7337 第 40 页

Page 41: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

体在屏幕中将看不到。

7.3 VRP 窗口

设置全屏显示

/*设置VRP 为全屏幕运行方式还是窗口方式,并且可以在这两者之间进行切换

这个设置在VRP运行的时候有效。*/

返回值: 0=不成功,1=成功

参数一: 0=关闭全屏模式,1=全屏模式,2=在全屏模式和窗口模式之间切换。

小化 VRP 窗口

/*设置 小化VRP窗口*/

返回值: 0=不成功,1=成功

参数无

恢复 VRP 窗口

/*将VRP窗口由 小化恢复为正常窗口显示的状态*/

返回值: 0=不成功,1=成功

参数无

刷新视图

/*刷新VRP运行的画面*/

返回值: 0=不成功,1=成功

参数无

输出截图

/*向文件中输出VRP运行场景的画面*/

返回值: 0=不成功,1=成功

联系电话 010-82038328, 8329, 7337 第 41 页

Page 42: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数一: 大小比例,指定生成的图片是场景运行画面的大小比例。

参数二: 抗锯齿系数,指定在截图时启动抗锯齿的系数设置,系数越高画面抗锯

齿的能力就越强。

参数三: 指定输出图片的路径。

参数四: 是否需要在输出图片的过程中预览图片。

7.4 网络 VRP

网络 VRP 脚本都是在 VRPIE-SDK 中使用。

vrp_open_webvrp_file

/*打开VRPIE 的文件 */

返回值: 0=不成功,1=成功

参数一: VRPIE文件所在的位置。

参数二: html网页所在的位置。

导入 VRPIE 文件

/*导入VRPIE 零散文件,将两个vrp 场景给合在一个场景中显示。*/

返回值: 0=不成功,1=成功

参数一: vrpie 零散的文件所在的位置。

显示隐藏下载进度

/*设置显示或者隐藏VRPIE文件的下载进度*/

返回值: 0=不成功,1=成功

参数一: 是否显示,0=隐藏,1=显示。

获取 vrpie 下载

/*获取vrpie 文件的下载量,通常用于判断VRPIE 文件是否下载完毕。*/

返回值: 数字a/数字b/数字c, 数字a,0 表示零的下载量 1 表示下载完成。数字b

联系电话 010-82038328, 8329, 7337 第 42 页

Page 43: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

表示已经下载的量,数字c 表示要下载文件的总大小。

参数无

停止下载 vrpie 文件

/*停止下载vrpie文件*/

返回值: 0=不成功,1=成功

参数无

设置 LOD 切换距离

/*设置LOD 的切换距离,VRP 中的LOD 算法是采用三级划分的方法,第一级

是靠近相机的一层,第二级是相机视景体内中间一带的区域,第三级是中间地带

之后到无穷远的地方。*/

返回值: 0=不成功,1=成功

参数一: LOD级别,1=第一级,2=第二级,3=第三级

参数二: 距离范围,设置一个数字表示它的距离。

开启 LOD

/*设置是否开启LOD算法*/

返回值: 0=不成功,1=成功

参数一: 0=关闭,1=开启

下载文件

/*设置需要下载文件的URL,一般都是vrpie的零散文件,同时设置vrpie下载完成

的触发函数。一旦该文件下载完成后就执行触发函数。*/

返回值: 0=不成功,1=成功

参数一: 下载的文件的URL路径

参数二: 下载完成通知函数,设置VRP中响应下载完后执行的函数。

联系电话 010-82038328, 8329, 7337 第 43 页

Page 44: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

7.5 文件操作

打开场景

/*打开一个 VRP 场景文件,一般在 SDK 程序里面使用,VRP 编辑器里面很少使

用。*/

返回值: 0=不成功,1=成功

参数一: vrp 文件位置,指定要打开 vrp 文件的绝对路径。

保存场景

/*保存VRP场景文件,一般也是在SDK程序中调用*/

返回值: 0=不成功,1=成功

参数一: vrp 文件位置,指定要保存的 vrp 文件的绝对路径。

参数一: 选项,0=保存全部场景,1=保存选中物体集的场景。

合并场景

/*将当前的 VRP 文件与另外一个 VRP 场景文件进行合并,即使场景中有模型的

名字相同也不会发生问题。*/

返回值: 0=不成功,1=成功

参数一: vrp 文件位置,指定要合并 vrp 文件的绝对路径。

参数二: 贴图目录,指定 vrp 场景文件所需要的贴图的目录,当不填写该选项的

时候,则使用默认的目录,也就是和 VRP 文件在同一目录下的贴图文件。

参数三: 编组名称,填写将要被合并的场景模型所应该在的编组名称。

关闭场景

/*关闭当前场景,只在SDK程序中使用。*/

返回值: 0=不成功,1=成功

参数无

重新开始

联系电话 010-82038328, 8329, 7337 第 44 页

Page 45: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

/*重新开始开始VRP场景,也就是将VRP场景恢复到刚刚加载进来时的状态。*/

返回值: 0=不成功,1=成功

参数无

关闭程序

/*关闭VRP播放器的程序,一般在VRP编辑器里面使用。*/

返回值: 0=不成功,1=成功

参数无

参数一: 是否显示确认对话框,0=不显示,1=显示

参数二: 提示信息,指定确认对话框上显示的字符串信息。

7.6 多通道和分屏

该脚本主要是和硬件设备相关联的,如果没有相应的硬件(例如:多通道和环

幕)那么不需要使用该脚本。

弹出多通道配置窗口

/*弹出多通道配置窗口*/

返回值:无

参数个数:0

建立多通道服务器

/*建立多通道服务器*/

返回值:

参数个数:0

建立多通道客户端

/*建立多通道客户端*/

返回值:

联系电话 010-82038328, 8329, 7337 第 45 页

Page 46: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数个数:0

关闭多通道

/*关闭多通道*/

返回值:无

参数个数:0

打开多通道配置文件

/*打开多通道配置文件,读出配置信息*/

返回值:

参数个数:1

参数一: 配置文件

显示调整网格

/*显示调整网格*/

返回值:无

参数个数:1

参数一: 参数;0=隐藏;1=显示

显示融合区

/*显示融合区*/

返回值:无

参数个数:1

参数一: 参数;0=隐藏;1=显示

设置单眼模式

/*设置单眼模式*/

返回值:无

参数个数:1

联系电话 010-82038328, 8329, 7337 第 46 页

Page 47: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数一: 参数;0=显示所有通道;1=仅显示左眼通道;2=仅显示右眼通道

设置分屏模式

/*设置分屏模式,可以是水平分屏,也可以是垂直分屏*/

返回值:无

参数个数:1

参数一: 参数;0=单屏;1=水平分屏;2=垂直分屏

设置物体显示的屏幕

/*设置物体显示的屏幕,在分屏模式开启后有效*/

返回值:无

参数个数:3

参数一: 物体类型;0=组;1=模型;3=二维面板;4=角色模型

参数二: 物体名称

参数三: 显示于...;3=主屏+副屏;1=仅主屏;2=仅副屏

开启/关闭曲面校正

/*开启/关闭曲面校正*/

返回值:无

参数个数:1

参数一: 参数;0=关闭;1=开启

发送脚本到客户端

/*发送脚本到客户端*/

返回值:无

参数个数:1

参数一: 脚本命令行

开启/关闭多通道效果

联系电话 010-82038328, 8329, 7337 第 47 页

Page 48: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

/*开启/关闭多通道效果*/

返回值:无

参数个数:1

参数一: 参数;0=关闭;1=开启

开启副屏界面

/*开启/关闭副屏界面*/

返回值:无

参数个数:1

参数一: 参数;0=关闭;1=开启

7.7 脚本文件

执行脚本文件

/*执行一个写了脚本的文件,该文件内写的都是VRP脚本*/

返回值: 0=不成功,1=成功

参数一: VRP 脚本文件,用户可能会将 VRP 脚本全部都写在一个文件里面,使

用这个脚本就可以执行文件内所有的 VRP 脚本。

执行内部函数

/*执行VRP 内部的函数,VRP内部函数指的是VRP编辑器里面支持的三大类函

数,分别是系统函数,触发函数,自定义函数。这些函数也是由VRP脚本组成,

只是我们可以将这些脚本组合在一起形成一个块。*/

返回值: 0=不成功,1=成功

参数一: 函数名称,内部函数的函数名。

执行 Exe 程序

/*指定一个exe ,和一个输入参数,VRP调用windows执行函数的函数去执行这

联系电话 010-82038328, 8329, 7337 第 48 页

Page 49: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

个exe。那个输入参数一般都是文件路径之类的。这个执行的EXE程序是独立的

程序,与VRP程序没有直接的关系。*/

返回值: 0=不成功,1=成功

参数一: Exe 程序位置,指定可执行程序的位置

参数二: 参数,指定被 exe 执行程序所需要的参数。。

打开网页

/*使用微软的IE浏览器来打开用户输入的url,同上面那个脚本一样,html是独立

运行的与VRP程序没有直接的关系。*/

返回值: 0=不成功,1=成功

参数一: 网页网址,例如( www. Vrplatform.com).

打开任意文件

/*使用和指定文件相匹配的WINDOWS默认关联的程序去打开该文件,例如指定

一个doc 文件,那么就用Msword程序去打开。如果连系统都不认识该文件,那

么弹出选择程序的对话框供用户选择一个合适的程序去打开那个文件。文件搜索

的顺序是:1,绝对路径 2,vrp场景所在目录 3,VRP-Player 播放器所在的目

录。*/

返回值: 0=不成功,1=成功

参数一: Exe程序位置,指定可执行程序的位置

定义变量

/*定义一个VRP可以解释的变量,就像很多开发语言所说的变量是一个意思。变

量一般都是用于保存某种数据状态的结果,便于后来的脚本读取和使用,VRP 变

量都是字符串型的变量。*/

返回值: 0=不成功,1=成功

参数一: 变量名称

联系电话 010-82038328, 8329, 7337 第 49 页

Page 50: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

删除变量

/*删除一个 VRP 可以解释的变量 */

返回值: 0=不成功,1=成功

参数一: 变量名称

变量赋值

/*给 VRP 变量进行赋值,主要是用于传递信息并保存到变量里去。*/

返回值: 0=不成功,1=成功

参数一: 变量名称

参数二: 所需要赋值的内容,如果填写为<last_output> 指的是 VRP 其他脚本

后执行后返回的结果,比如数据库查询脚本的脚本刚刚执行完。那么这

个 <last_output> 就是数据库查的信息。

#比较变量值

/*将一个 VRP 变量和一个字符串进行比较。*/

返回值: 0=不成功,1=成功

参数一: 变量名称

参数二: 变量比较值,指定一个需要比较的字符串。如果要让当前变量和另外一

个变量进行比较,那么使用 $other_variable 来进行比较。” $ “ 符号在

VRP 中指的是取这个变量里面的内容出来。

#比较物体的状态值

/*比较 VRP 场景中物体的状态,在 VRP 场景中可以给物体加上一个整数值来代

表物体的状态。当用户点击物体的时候,它可以改变自己的状态从而达到记录用

户操作的目的。 常用的物体的状态是 0 和 1。例如一扇门,打开门的时候状态

为 1,关闭的时候状态为 0,我们可以在门状态为 0 并且用户点击到了门的时候

播放门打开的刚体动画。*/

返回值: 0=不成功,1=成功

参数一: 模型名称

联系电话 010-82038328, 8329, 7337 第 50 页

Page 51: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数二: 比较的状态值,一般是一个整数。

#否则

/*VRP 中简单的逻辑控制标签,和很多语言的 else 同意,只不过是中文而已。

*/

返回值: 无

参数无

#结束

/*VRP 中简单的逻辑控制标签,它代表比较结束块的地方,它不能单独使用。

使用方式:

(1)#比较变量值,counter, 1

……

#结束

(2)#比较变量值,counter, 1

……

#否则

……

#结束

*/

返回值: 无

参数无

设置物体的状态值

/*给物体设置一个整数代表物体的状态*/

返回值: 0=不成功,1=成功

参数一: 物体的名称

参数二: 一个整数的状态值。

联系电话 010-82038328, 8329, 7337 第 51 页

Page 52: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

切换物体的状态值

/*切换物体的状态值,只会让模型的状态在 0 和 1 之间来回的切换,不能切换为

其他的数值。*/

返回值: 0=不成功,1=成功

参数一: 物体的名称

取得物体的状态值

/*将代表物体状态的整数取回来,如果场景中不存在着这个物体那么,返回的值

为 0 */

返回值: 返回物体的状态值

参数一: 物体的名称

添加脚本函数

/*给场景中动态的添加一个脚本函数,即这个被添加的脚本函数在 VRP 编辑器

运行以后增加的。一般在 SDK 里面用得比较多,因为 SDK 里面可以使用程序

灵活的给场景中添加物体,并且在这个被动态添加进来的物体上捆绑脚本。*/

返回值: 0=不成功,1=成功

参数一: 函数的名称

修改脚本函数

/*修改脚本函数可动态的修改 VRP 某个函数,这个函数也是在 SDK 里面所以使

用。例如可以场景的状态 1 情况每次执行一个距离触发播放动画的脚本,在场景

的状态变成 2 的时候将距离触发反方向播放动画的脚本*/

返回值: 0=不成功,1=成功

参数一: 函数的名称

参数二: 修改函数的内容,因为即使是修改函数的内容,也是有若干条脚本组成,

因此可能出现脚本逗号重复现象,如下所示:

修改脚本函数, change_model_state, 模型改名, model1, model2, 0

VRP 是依靠逗号来识别脚本,这样的脚本 VRP 无法识别,因此需要将

联系电话 010-82038328, 8329, 7337 第 52 页

Page 53: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

脚本里面的逗号进行转意,<br><n> 表示换行,<next>, <c> 表示逗号。

脚本修改为:

修改脚本函数, change_model_state, 模型改名<c>model1<c>model2, 0

参数一: 追加模式,0=完全更新,1=追加内容。

应用脚本修改

/* 将修改后的脚本函数立刻生效,在 SDK 程序里面可能会批量的增加脚本,如

果每加一条跟新一次,这样的效率就会非常的低,使用这个脚本可以在修改大量

的脚本后一次提交完成修改。*/

返回值: 0=不成功,1=成功

参数无

删除脚本函数

/*删除 VRP 场景中现有的 VRP 函数*/

返回值: 0=不成功,1=成功

参数一: 函数的名称

修改触发函数

/*修改物体的距离触法函数,修改内容包括“是否开启”, “距离触发”的距离

设置,触发模型。*/

返回值: 0=不成功,1=成功

参数一: 模型名称,拥有距离触发事件的模型的名称。

参数二: 开启,是否开启距离触发,1=触发,0=不触发

参数三: 触发距离,离物体有多远的时候会触发,距离单位和场景是同一个单位。

参数四: 触发模型,触发物体的对象可以是相机,也可以是具用刚体动画的物体。

当相机或者刚体动画的物体靠近有距离触发事件的时候,就会触发物体

调用事件函数。

联系电话 010-82038328, 8329, 7337 第 53 页

Page 54: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

统计脚本行数

/*统计一个 VRP 脚本函数里面到底有多少行脚本。*/

返回值: 脚本的函数

参数一: VRP 函数的名称。

取指定行脚本内容

/*首先用户可以先取的脚本函数里面的脚本行数,然后指定序号, 将获取到该

序号对应的脚本是什么脚本

例如:

脚本函数:

Box01.鼠标左键按下

{

发送字符串到二次开发程序,Box01,

开启雨雪, 1

开启雾效, 1

}

“取指定行脚本内容, 2 , 1 ” 脚本返回的内容是 “开启雨雪, 1”。

*/

返回值: 返回指定行脚本内容,如果该行为无效的脚本,那么返回值为 NULL。

参数一: 函数名称, 指定要获取 VRP 脚本函数的名称。

参数二: 行号, 从 0 开始的行, 空白也算一行。

变量递增

/*将变量进行递增,该变量需要是整形。*/

返回值: 0=不成功,1=成功

参数一: 变量名称

联系电话 010-82038328, 8329, 7337 第 54 页

Page 55: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数二: 变量递增值(整型),整形变量增加多少。

矢量加法

/*矢量加法,让一个格式为 x/y/z 的变量加上另外一个矢量 a/b/c , 后得到得

结果为 (x+a)/(y+b)/(z+c) */

返回值: 0=不成功,1=成功

参数一: 变量名称

参数二: 矢量递增值,矢量值(x/y/z)。

7.8 游戏外设

启动游戏外设

/*启动游戏外设,游戏设备包括方向盘,飞行手柄和 XBOX 手柄。*/

返回值: 0=不成功,1=成功

关闭游戏外设

/*关闭游戏外设*/

返回值: 0=不成功,1=成功

设置游戏外设模式

/*设置游戏外设模式,是方向盘,还是飞行手柄,并针对方向盘或者飞行手柄设

置误差限和旋转速度系数。*/

返回值: 0=不成功,1=成功

参数一: 参数,0=方向盘,1=飞行手柄

参数二: 误差限,设置 0~200,如果方向盘发生漂移,就加大误差限。

参数三: 旋转速度系数,默认=1。

联系电话 010-82038328, 8329, 7337 第 55 页

Page 56: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

弹出游戏外设配置窗口

/*弹出游戏外设的配置窗口*/

7.9 相机操作

切换相机(通过名称)

/*切换相机,通过该相机的名称。常用于在一个 DEMO 中通过单击一个按钮快

速切换到某一个相机镜头 如:在应用该脚本函数之前,用户需要在当前 DEMO

的二维界面上创建一个按钮,然后通过给按钮添加 一个【切换相机(通过名称)】

脚本函数,这样用户在执行 EXE 时,通过单击该按钮可以快速地切换到某一个

相机镜头*/

联系电话 010-82038328, 8329, 7337 第 56 页

Page 57: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

返回值: 0=不成功,1=成功

参数一: 相机名称

设置相机循环模式

/*使用这个脚本可以循环的切换场景中的相机,达到一种连续播放的效果,在演

示场景的各个角落的时候使用得比较多。*/

返回值: 0=不成功,1=成功

参数一: 选项,0=所以相机,1=仅对当前相机,2=组内的相机

参数二: 相机组名,该参数只有当参数一填写 2 的时候才会有效。

切换相机

/*切换相机,通过一步一步的进行切换。*/

返回值: 0=不成功,1=成功

参数一: 选项,0=上一个,1=下一个

切换至動画相机(通过序号)

/*切换动画相机,通过相机的序号来进行切换,相机的序号指的是相机在编辑器

中被创建的先后顺序,普通的相机是一组,二动画相机是另外一组。例如先创建

了两个行走相机,再创建一个动画相机,那么动画相机的序号还是 1*/

返回值: 0=不成功,1=成功

参数一: 动画相机的序号,序号是从 1 开始,往上增大。

切换至定点相机(通过序号)

/*通过序号去切换普通的相机,相机编号从 1 开始的,它的含义和前面切换动画

相机的意思是一样的。*/

返回值: 0=不成功,1=成功

参数一: 普通相机的序号,序号是从 1 开始,往上增大。

录制相机动画

联系电话 010-82038328, 8329, 7337 第 57 页

Page 58: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

/*录制场景动画的相机,可以启动录制,然后用户控制键盘或者鼠标在场景中漫

游, 后结束录制,结束录制后形成了一个新的动画相机。客户可以播放这个新

的动画相机,达到重新浏览刚才页面的作用。*/

返回值: 0=不成功,1=成功

参数一:参数,0=停止录制,1=开始录制。

保存所有相机到文件

/*保存 VRP 场景中的所有相机到文件中去,可以选择保存到默认文件中,也可

以自己指定保存的文件。*/

返回值: 0=不成功,1=成功

参数一:参数,0=保存到默认文件(扩展名为 .cam 的同名文件),1=保存到指

定文件。

从文件载入相机

/*从文件中加载相机到场景中去。*/

返回值: 0=不成功,1=成功

参数一:参数,0=从默认文件载入(扩展名为 .cam 的同名文件),1=载入指定

文件。

删除相机

/*删除用户指定的相机*/

返回值: 0=不成功,1=成功

参数一:0=删除所有相机,1=删除当前相机,2=删除所有动画相机,3=删除所

有定点相机,4=删除指定相机。

参数二:指定相机,删除用户指定的相机的名称。

设置画中画相机

/*设置画中中画相机,给画中画设置一个不同的相机,当这个相机不会随着主场

景的运行而改变。*/

联系电话 010-82038328, 8329, 7337 第 58 页

Page 59: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

返回值: 0=不成功,1=成功

参数一:UI 面板名称,指定放置画中画的二维面板。

参数二:指定画中画的相机,该相机是从 VRP 当前场景中选择的一个相机。

是否动画相机

/*判断用户指定的相机是不是一个动画相机。*/

返回值: 0=不成功,1=成功

参数一:相机名称,填写相机的名称,如果想指定当前的相机,那么应该填写

<current> 。

设置相机切换时间

/*指定相机切换的时间,切换的时间为毫秒级别的。*/

返回值: 0=不成功,1=成功

参数一:切换时间,单位是毫秒。

重置当前相机

/*重新播放当前的相机*/

返回值: 0=不成功,1=成功

参数无。

7.10 获取信息

得到所选物体名称

/*取得所选物体的名称,当场景中有一个物体被选中的时候,VRP 就会用一个白

色的线框将物体框选出来。*/

返回值: 物体名称

参数无

联系电话 010-82038328, 8329, 7337 第 59 页

Page 60: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

得到当前视图的相机名称

/*得到当前视角的相机名称。*/

返回值: 相机名称

参数无

得到当前系统 DirectX 的版本号

/*得到当前系统 DirectX 的版本号,用这个命令可以查看用户所安装的 DirectX

的版本号码。*/

返回值: 当前系统 DirectX 的版本号

参数无

弹出上一个获取的信息

/*弹出一个获取信息的窗口。

例如:执行以下脚本后

得到当前视图的相机名称

弹出上一个获取的信息, information

例如:执行以下脚本后

得到当前系统 DirectX 的版本号

弹出上一个获取的信息, information

联系电话 010-82038328, 8329, 7337 第 60 页

Page 61: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

*/

返回值无,

参数一:弹出窗口的标题。

得到场景中心点坐标

/*返回场景中心点的坐标,得到的结果是以 x/y/z 的形式出现的。*/

返回值: 场景中心点的坐标

参数无

设置场景中心点坐标

/*设置场景中心点的坐标,可以将整个场景的中心点设置为一个新坐标,这样所

以的物体都平移到该坐标位置所处的地方。*/

返回值: 0=不成功,1=成功

参数一:场景中心的坐标点,坐标值为 x/y/z 形式出现。

得到当前相机坐标

/*得到当前相机的三维坐标,也即相机在世界坐标系下的三维坐标。*/

返回值: 场景中心点的坐标,坐标值是以 x/y/z 格式出现的。

参数无

联系电话 010-82038328, 8329, 7337 第 61 页

Page 62: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

点击点鼠标位置

/*获取鼠标在窗口中点击的坐标值,该坐标值格式是 x/y, 它主要是针对窗口的

左上角的坐标来说的。窗口左上角的坐标是 0/0 。*/

返回值: 鼠标位置的坐标,坐标值是以 x/y 格式出现的。

参数无

点击点三维坐标

/*得到当前 VRP 窗口下鼠标点击点的三维坐标值,该三维坐标值是使用当前相

机的位置点与屏幕上鼠标的点击点构成一条射线,该射线投射到三维场景中,与

场景的某个物体的一个面产生交点,就得到了 VRP 场景里的三维坐标。当场景

中没有任何物体的时候返回的值为 0。*/

返回值: 场景中鼠标点击点的三维坐标。

参数一:窗口的坐标,格式为 x/y 格式。不填写的时候为当前鼠标点击屏幕的格

式。

设置场景单位

/*设置场景中的单位,该设置只是一个显示上的效果问题。设置好了,使用长度

测量,面积测量或者体积测量的时候单位就是被设置好的值。该设置并不会改变

场景中物体的长宽高的值。*/

返回值: 0=不成功,1=成功

参数一:0=英尺,1=英寸,2=英里,3=毫米,4=厘米,5=米,6=公里。

7.11 相机控制

相机控制在 3D 场景中的作用非常巨大,很多游戏,例如极品飞车,多是以相机

的控制为主要的操作,加上相机与地形的碰撞检测,相机和周围墙壁的碰撞检

测。

相机移动控制

/*相机移动,使用该脚本可以使相机在空间中的六个方向里进行移动。并在四个

联系电话 010-82038328, 8329, 7337 第 62 页

Page 63: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

方向上进行旋转。*/

返回值: 0=不成功,1=成功

参数一:0=启动,1=停止,2=全部停止

参数二:1=前进,2=后退,3=左移,4=右移,5=上移,6=下移,7=向左旋转,

8=向右旋转,9=向上旋转,10=向下旋转。

常用于触摸屏按钮设置,在一个 DEMO 中通过单击一个按钮可以促使相机镜头

向前推进,松开按钮停止相机镜头向前推进 如:在应用该脚本函数之前,用户

需要在当前 DEMO 的二维界面上创建一个“前进”的按钮,然后通过给按钮添

加 一个【相机移动控制】脚本函数,这样用户在执行 EXE 时,可以通过按住“前

进”按钮促使相机镜头向前推进,松开按钮,停止相机镜头向前推进。

设置鼠标控制方式

/*设置相机鼠标控制的方式,当使用相机浏览场景的时候,用户可能希望以不同

的方式来控制相机的旋转和移动。在这里用户就可以设置为一边旋转一边前进移

动的效果。*/

返回值: 0=不成功,1=成功

参数一:0=旋转,1=观察,2=前进旋转。

将相机视线放平

/*将相机的视线放平,也就是将相机的观察方向和地面保持平行。*/

返回值: 0=不成功,1=成功

参数无。

将相机聚焦到物体

/*将相机旋转到对准物体的方向,如果物体被场景的其他物体完全遮挡的话,就

移动相机的位置到达能观察到物体的方位。*/

返回值: 0=不成功,1=成功

参数一:物体类型,0=组,1=模型

联系电话 010-82038328, 8329, 7337 第 63 页

Page 64: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数二:名称,当第一个参数选择 0 的时候,填写的就是组名称。当第一个参数

选择 1 的时候,填写的就是模型的名称。

常用于快速地将某组或某一个物体居中显示在视窗中 如:在应用该脚本函数

之前,用户先将构成城堡的所有模型编辑到一个 ABC 组里,然后在当前 DEMO

的二维界面上创建一个“将相机聚焦到物体”操作的按钮,接着再通过给按钮添

加 一个【将相机聚焦到物体】脚本函数。这样用户在运行 EXE 时,可以通过单

击一下“将相机聚焦到物体”按钮快速地将“城堡”居中显示在视窗中。

相机重力

/*设置相机是否受到重力的影响,主要针对的是行走相机。此脚本功能与播放器

中快捷键"Ctrl+G"功能一致,一般用在用户将“行走相机”模式无意间切换成“飞

行相机”模式后,可以通过此操作恢复“飞行相机”模式成“行走相机”模式。

只有当相机移动后,重力作用才会出现。*/

返回值: 0=不成功,1=成功

参数一:选项,0=关闭,1=开启。

设置测量

/*设置鼠标的测量,当可以设置四种测量,分别为点,距离,面积和体积。当开

启测量的时候使用 CTRL 键进行持续测量。使用鼠标右键点击结束测量。*/

返回值: 0=不成功,1=成功

参数一:测量模式,0=模型尺度测量,1=点距离测量,2=面积测量,3=点测量。

参数二:显示结果,0=不显示结果,1=显示结果。

常用于在播放器中测量物体的尺度、点距离和面积 如:在应用该脚本函数之

前,在当前 DEMO 的二维界面上创建一个“设置测量”操作的按钮,然后再通

过给按钮添加 一个【设置测量】脚本函数。这样用户在运行 EXE 时,可以通过

单击一下“设置测量”按钮后,再选择 VR 场景中任意一个物体时都会显示详细

的尺度。具体操作方法如下图所示:

联系电话 010-82038328, 8329, 7337 第 64 页

Page 65: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

联系电话 010-82038328, 8329, 7337 第 65 页

Page 66: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

如果选择【测量模式】下的“1=点距离测量”选项后,用户在运行 EXE 时,单

击“设置测量”按钮,然后再按住 Ctrl 键的同时可以在 VR 场景中通过单击进行

点与点之间的距离测量。

如果选择【测量模式】下的“2=面积测量”选项后,用户在运行 EXE 时,单击“设

置测量”按钮,然后再按住 Ctrl 键的同时可以在 VR 场景中通过单击进行 3 点或

3 点以上的多边行面积测量。

联系电话 010-82038328, 8329, 7337 第 66 页

Page 67: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

设置相机视角缩放系数

/*设置相机视角缩放系数,也即相机张角的缩放系数。*/

返回值: 0=不成功,1=成功

参数一:缩放系数。

设置当前相机移动速度

/*设置当前相机的移动速度,移动速度的单位是 场景单位/秒。使用该脚本可以

让相机移动速度增加或者减少。*/

联系电话 010-82038328, 8329, 7337 第 67 页

Page 68: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

返回值: 0=不成功,1=成功

参数一:移动速度。

设置相机转动速度

/*设置当前相机的旋转速度,其旋转系数指的是旋转角速度的值。*/

返回值: 0=不成功,1=成功

参数一:指定相机,填写一个已经在 VRP 中创建好的相机的名称。

参数二:转动速度系数,填写一个代表角速度的数字。

设置相机只能水平移动

/*设置相机是否只能水平移动,如果设置了只能水平移动,那么相机将不能够上

下进行移动。即使相机设置了抬头和低头的时候,也只能在水平方向移动。*/

返回值: 0=不成功,1=成功

参数一:0=否,1=是。

设置相机位置

/*设置相机在场景中的位置坐标,它只对行走相机和飞行相机有效。*/

返回值: 0=不成功,1=成功

参数一:相机名称,只能填写行走相机和飞行相机的名称。

参数二:指定位置,格式是 x/y/z

设置相机方向

/*设置相机在场景中的方向,它只对行走相机和飞行相机有效。*/

返回值: 0=不成功,1=成功

参数一:相机的名称,只能填写行走相机和飞行相机的名称。

参数二:指定方向值,格式是 x/y/z 它是相机的朝向向量。

取相机位置

/*获取相机的位置,指定一个相机的名称,返回该相机在场景中的三维坐标的值,

联系电话 010-82038328, 8329, 7337 第 68 页

Page 69: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

格式是 x/y/z 。*/

返回值: 返回相机位置的值。

参数一:指定相机,填写下感觉名称

取相机方向

/*获取相机的方向,指定一个相机的名称,返回该相机在场景中的方向向量的值,

格式是 x/y/z 。*/

返回值: 返回相机方向向量的值。

参数一:指定相机,填写下感觉名称

设置相机近裁减面

/*设置相机的近裁剪面的值,在 3D 图形学里面相机的构造如下图所示:

在上图中就绘制了一个 3D 视景体,点 q’ 所处的平面就是近裁剪平面,而点 q

就处于远裁剪平面上。在这个视景体以外的物体我们在平面中都是看不到的。

*/

返回值: 0=不成功,1=成功

参数一:相机的名称,如果要写当前的相机,那么使用 <curr_cam>

参数二:近裁剪平面的 Z 值

联系电话 010-82038328, 8329, 7337 第 69 页

Page 70: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

设置相机远裁减面

/*设置相机远裁剪平面的位置,远裁剪平面的 Z 值必须要比近裁剪平面的 Z 值要

大,不然视景体就会被压扁,我们将什么都看不到。*/

返回值: 0=不成功,1=成功

参数一:相机的名称,如果要写当前的相机,那么使用 <curr_cam>

参数二:远裁剪平面的 Z 值

显示相机列表

/*使用显示相机列表的脚本后,从当前的场景中弹出一个小窗口,该小窗口列举

了所以相机的名称。*/

返回值: 0=不成功,1=成功

参数一:选项,0=所有相机,1=组内的相机。

参数二:组名,填写相机组的名称,该参数只有在第一个参数旋转 1 的时候才会

有效果。

效果如下图所示:

联系电话 010-82038328, 8329, 7337 第 70 页

Page 71: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

7.12 悬浮窗口

创建悬浮窗口

/*创建一个悬浮在 VRP 窗口之上的小窗口,该窗口显示的文件的内容。*/

返回值: 0=不成功,1=成功

参数一:名称,悬浮窗口的名称。

参数二:在 VRP 窗口中的坐标,如(0/0/100/100), 该坐标是相对 VRP 窗口的坐

标,含义是创建一个左上角坐标是 x=0,y=0,右下角坐标是 x=100, y=100

的窗口。

参数三:0=固定位置,1=可拖动。

设置悬浮窗口内容

/*设置悬浮窗口显示的内容,文件的地址,它可以是一个 url , 也可以是一个本

地文件的地址。*/

返回值: 0=不成功,1=成功

参数一:悬浮窗口名称。

参数二:文件地址,可以是 url 例如(www.vrplatform.com)。

显示悬浮窗口

/*显示悬浮窗口,只有使用这个脚本,该窗口才能被显示。*/

返回值: 0=不成功,1=成功

参数一:窗口名称

参数二:选项,0=隐藏,1=显示。

综合使用前面三个脚本示例:

联系电话 010-82038328, 8329, 7337 第 71 页

Page 72: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

创建悬浮窗口, window, 0/0/800/600, 0

设置悬浮窗口内容, window, www.vrplatform.com

显示悬浮窗口, window, 1

创建悬浮窗口, window, 0/0/800/600, 0

设置悬浮窗口内容, window, C:\Documents and Settings\Administrator\桌面\test.txt

显示悬浮窗口, window, 1

联系电话 010-82038328, 8329, 7337 第 72 页

Page 73: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

移动悬浮窗口

/*移动悬浮窗口的位置,一般在 SDK 程序中使用。可在程序中动态的改变悬浮

窗口的位置。*/

返回值: 0=不成功,1=成功

参数一:窗口名称

参数二:在 VRP 窗口中的坐标,例如 ( 0/0/100/100)

删除悬浮窗口

/*删除悬浮窗口*/

返回值: 0=不成功,1=成功

参数一:窗口名称,<all> = 删除所有的悬浮窗口

设置悬浮窗口边框

/*设置悬浮窗口的边框,边框指的就是和 WINDOWS 窗口一样的蓝色的边框。

联系电话 010-82038328, 8329, 7337 第 73 页

Page 74: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

*/

返回值: 0=不成功,1=成功

参数一:窗口名称

参数二:选项,0=不可见,1=可见

7.13 音乐

播放音乐

/*指定一个音乐文件,并播放音乐。可支持多种音乐格式的文件包括(*.wav,

*.mp3, *.mp2, *.mpa, *.mid, *.midi, *.rmi ),并且可以在线进行试听音乐,打开播

放音乐窗口对话框如下。

联系电话 010-82038328, 8329, 7337 第 74 页

Page 75: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

*/

返回值: 0=不成功,1=成功

参数一:音乐文件,指定一个带绝对路径的音乐文件。

参数二:声道, 0=声道 0,1=声道 1,2=声道 2,3=声道 3,4=声道 4,5=声道

5,6=声道 6,7=声道 7,8=声道 8。

参数三:重复次数,0 代表无限。

参数四:关闭该声道的所有其他音乐,0=是,1=否。

设置音量

/*设置播放音乐的音量。*/

返回值: 0=不成功,1=成功

参数一:声道,0=声道 0,1=声道 1,2=声道 2,3=声道 3,4=声道 4,5=声道 5,

6=声道 6,7=声道 7,8=声道 8。

参数二:音量,设置从 0~100 的值。

停止音乐

/*停止音乐*/

返回值: 0=不成功,1=成功

参数一:声道,0=声道 0,1=声道 1,2=声道 2,3=声道 3,4=声道 4,5=声道 5,

6=声道 6,7=声道 7,8=声道 8。

停止所有音乐

/*停止了所有的音乐。*/

返回值: 0=不成功,1=成功

参数无

暂停音乐

/*暂停和继续音乐。*/

返回值: 0=不成功,1=成功

联系电话 010-82038328, 8329, 7337 第 75 页

Page 76: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数一:声道,0=声道 0,1=声道 1,2=声道 2,3=声道 3,4=声道 4,5=声道 5,

6=声道 6,7=声道 7,8=声道 8。

7.14 材质操作

改变贴图

/*改变指定模型的贴图*/

返回值: 0=不成功,1=成功

参数一:物体类型,0=组,1=模型,3=二维面板。

参数二:名称,被改变贴图对象的名称。

参数三:要改变的贴图类型,0=diffuse, 漫反射贴图,1=lightingmap, 光照贴图,

2=envmap 环境贴图。

参数四:贴图文件,需要放在和 VRP 文件同层目录里。

恢复贴图

/*恢复贴图,将指定模型的贴图恢复为原来未改变,未保存时的贴图。*/

返回值: 0=不成功,1=成功

参数一:物体类型,0=组,1=模型,3=二维面板。

参数二:名称,被恢复贴图对象的名称。

参数三:要恢复的贴图类型,0=diffuse, 漫反射贴图,1=lightingmap, 光照贴图,

2=envmap 环境贴图。

开启动态光照

/*开启动态光照,可对物体有选择性的开启动态光照,因为开启动态光照非常消

耗系统的计算性能,所以尽量不要对大场景的所有物体都开启动态的光照。*/

返回值: 0=不成功,1=成功

参数一:选择一个模型或组,<all> = 所有的模型

参数二:是否开启,0=关闭,1=开启。

联系电话 010-82038328, 8329, 7337 第 76 页

Page 77: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

改变颜色

/*改变模型的颜色。*/

返回值: 0=不成功,1=成功

参数一: 模型名称

参数二: 分量;0=Ambient+Diffuse,环境色彩和漫反射,1=Highlight, 高光色彩

2=Emissive 发射光。

参数三: 颜色,格式 R/G/B,如 0/128/255

改变透明度

/*改变模型的透明度。*/

返回值: 0=不成功,1=成功

参数一:物体类型,0=组,1=模型,3=二维面板。

参数二:物体名称

参数三:是否开启半透明,0=关闭,1=开启。

参数四:透明度(0~255)。

更新所有贴图

/*更新所有贴图,将所有变更的贴图全部都反映到三维场景中来,当你使用改变

贴图的命令发现贴图并没有被跟新的时候,就使用该脚本对贴图的更新进行强制

行的刷新。*/

返回值: 0=不成功,1=成功

参数无

更新贴图

/*跟新 ATX 播放动画的贴图。*/

返回值: 0=不成功,1=成功

参数一:文件,指定贴图路径的绝对位置。

联系电话 010-82038328, 8329, 7337 第 77 页

Page 78: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

暂停 atx 动画

/*暂停 ATX 动画,VRP 中的 ATX 动画指的是,事先制作好 ATX 动画文件,然

后选择物体,并将物体的第一层贴图更换为 ATX 动画文件,当场景执行播放

ATX 动画的时候,物体上的贴图就不断的切换变换,形成动画的赶紧。ATX 动

画文件的制作需要使用 VRP-BUILDER 中的 ATX 动画编辑器,主要的工作原理

就是将很多连续的图放在一起,就像电影一样,切换这些图片,也就形成了动作

的效果。*/

返回值: 0=不成功,1=成功

参数一:模型名称,依附着 ATX 动画的模型名称。

参数二:贴图类型,0=diffuse, 1=lightingmap, 2=envmap

参数三:暂停位置,0=第一帧,1=第二帧,……, -1=当前帧。

播放 atx 动画

/*播放 ATX 动画*/

返回值: 0=不成功,1=成功

参数一:模型名称,依附 ATX 动画的模型名称。

参数二:贴图类型,0=diffuse, 1=lightingmap, 2=envmap

参数三:位置,0=第一帧,1=第二帧,……, -1=当前帧。

参数四:循环次数,-1 代表无限次循环。

Atx 动画加载示意图:

联系电话 010-82038328, 8329, 7337 第 78 页

Page 79: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

联系电话 010-82038328, 8329, 7337 第 79 页

Page 80: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

加载视频

/*将视频文件加载到 VRP 程序中。为将视频文件绑定到物体上并播放做好准备。

*/

返回值: 0=不成功,1=成功

参数一:视频文件名称,指定要播放的视频文件。

参数二:播放次数(0 表示不限制次数)。

应用视频到模型

/*将播放的视频放置在模型面上进行播放,和 ATX 动画操作差不多,但它是一

个视频文件,不能使用分帧来播放。要播放就整个一起播放。*/

返回值: 0=不成功,1=成功

参数一:模型名称,要放置视频的模型。

参数二:操作,0=删除,1=添加。

视频播放控制

/*视频播放控制,主要是对绑定到模型上的视频进行播放和暂停等控制操作。*/

返回值: 0=不成功,1=成功

参数一:模型名称

参数二:播放,1=播放,0=停止,2=继续,3=暂停。

7.15 動画命令

播放刚体動画

/*播放 VRP 中的一段刚体动画,刚体动画在 3DMAX 里面创建好,使用这个脚

本就可以直接播放刚体动画了。*/

返回值: 0=不成功,1=成功

参数一: 选择一个模型或组( <all> = 所有模型 )

联系电话 010-82038328, 8329, 7337 第 80 页

Page 81: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数二: 命令;0=播放/暂停切换,1=正向/反向切换,2=从开始播放,3=从当前位

置播放,4=暂停,5=定位到开始,6=定位到末尾,7=反向播放到开始

参数三: 循环模式;0=单向循环;1=钟摆往复

参数四: 循环次数(-1=无限)

设置刚体动画播放区间

/*设置刚体动画的播放区段,使用的是百分比的方式,或者设定开始帧和结束帧

的方式。*/

返回值: 0=不成功,1=成功

参数一:选择一个模型或组( <all> = 所有模型 )。

参数二:开始百分比,“百分比”以 0~1 即为 0%~100%,如果参数为“0.9”意

为 90%。或者设置开始帧的序号,不过该序号必须小于总帧的数目。

参数三:结束百分比,或者设置结束帧的序号。

模型是否带动画

/*判断一个模型是否带动画。*/

返回值: 0=不带动画,1=带动画。

参数无

动画是否结束

/*判断一个模型上的动画是否结束。*/

返回值: 0=不结束,1=结束

参数一:选择一个模型或组,<all>=所有模型。

暂停刚体動画(通过百分比)

/*通过百分比来暂停模型上的动画*/

返回值: 0=不成功,1=成功

参数一:选择一个模型或者一个组。

参数二:百分比,以 0~1 即为 0%~100%,如果参数为“0.9”意为 90%。

联系电话 010-82038328, 8329, 7337 第 81 页

Page 82: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

平移模型

/*设置一个平移量,然后让模型在原来位置的基础上平移这个设置好的平移量。

*/

返回值: 0=不成功,1=成功

参数一:选择模型或者组,<all>=所有模型,<selected=选中的模型>

参数二:坐标系,0=自身,1=世界,2=屏幕

参数三:平移矢量,格式如 x/y/z 。

定位移动模型

/*将一个物体的位置定位在指定的三维坐标上。*/

返回值: 0=不成功,1=成功

参数一:选择的模型或组,( <all>=所有模型, <selected>=选中的模型 )

参数二:坐标系,1=世界

参数三:位移矢量,x/y/z

参数四:位移中心,0=包围盒中心,1=底面中心,2=顶面中心。

缩放模型

/*将一个模型照一个向量分别在它自己的 x, y, z 方向上进行缩放。*/

返回值: 0=不成功,1=成功

参数一:选择模型或者组,<all>=所有模型,<selected=选中的模型>

参数二:坐标系,0=自身,1=世界,2=屏幕

参数三:缩放向量,格式如 x/y/z 。例如 1/2/3 , 表示在 X 轴上不变,

在 Y 轴上放大一倍,在 Z 轴上放大两倍。

旋转模型

/*将一个模型按照一个向量分别在它的 x, y, z 轴上进行旋转。 */

返回值: 0=不成功,1=成功

参数一:选择模型或者组,<all>=所有模型,<selected=选中的模型>

参数二:坐标系,0=自身,1=世界,2=屏幕

联系电话 010-82038328, 8329, 7337 第 82 页

Page 83: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数三:旋转向量,格式如 x/y/z 。例如 0/3.1415926/0 , 表示在 X 轴上不变,

绕 Y 轴旋转 180 度,在 Z 轴上不变。该向量是使用弧度值。

恢复物体至初始位置

/*将物体变换为原来初始的位置。*/

返回值: 0=不成功,1=成功

参数一:选择一个模型,一个面板和组。(<all>=所有的模型。)

变换物体坐标

/*将物体的中心的三轴坐标显示出来,并将其三轴坐标切换到平移,缩放,旋转

等状态。普通的状态下物体只有被选中的状态,并不会出现三轴垂直状态。*/

返回值: 0=不成功,1=成功

参数一:变换方式,0=平移,1=旋转,2=缩放,-1=退出。

参数二:坐标系,0=自身,1=世界,2=屏幕

三轴垂直状态,如下图所示:

联系电话 010-82038328, 8329, 7337 第 83 页

Page 84: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

我们可以在其任意一轴上实施操作,例如物体处于缩放状态,拖动物体的 y 轴,

物体的宽度就在 y 轴上拉长或压缩变小。

得到包围盒的尺寸

/*得到物体包围盒的尺寸,包围盒指的是包住物体的一个长方形的盒子,使用该

盒子就可以控制物体的碰撞检测等工作,达到检测控制的目的。*/

返回值: 返回物体包围盒的长,宽和高,格式如 : x/y/z。

参数一:选择一个模型,一个面板和组。(<all>=所有的模型。)

得到包围盒的中心坐标

/*得到包围盒的中心坐标,通常包围盒的中心坐标就是物体的中心坐标。*/

返回值: 返回物体包围盒的中心坐标,格式如 : x/y/z。

参数一:选择一个模型,一个面板和组。(<all>=所有的模型。)

参数二:坐标系,1=世界

参数三:中心,0=包围盒中心,1=底面中心,2=顶面中心。

设置模型矩阵

/*设置物体模型的变换矩阵,每个物体都有一个从自己局域坐标变换到世界坐标

的矩阵。*/

返回值: 0=不成功,1=成功

参数一:选择的模型或组,( <all>=所有模型, <selected>=选中的模型 )

参数二:矩阵数组,其格式如下,m00|m01|m02|m03……m30m31m32m33。

得到模型矩阵

/*获取指定模型的变换矩阵。*/

返回值: 模型的变换矩阵,其格式如下,m00|m01|m02|m03……m30m31m32m33。

参数一:选择模型。

联系电话 010-82038328, 8329, 7337 第 84 页

Page 85: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

7.16 骨骼动画

暂停当前骨骼动作

/*选择一个带骨骼动作的模型,并对当前骨骼动作使用暂停和播放的操作。*/

返回值: 0=不成功,1=成功

参数一:选择一个骨骼模型。( <all>=所有模型 )

参数二:暂停,0=继续,1=暂停。

设置动作播放速度

/*设置骨骼动画的播放速度。*/

返回值: 0=不成功,1=成功

参数一:选择一个骨骼模型。( <all>=所有模型 )

参数二:速度因子。该播放速度因子为 100%的时候骨骼动画播放的速度就是原

来 3DMAX 里面制作的播放速度。当为 3%指的是原来速度的百分之三,也就是

说骨骼动画的播放速度只能降低,不能提高。

播放骨骼动作

/*播放当前骨骼的动作,一个骨骼动画可以有多个动作,我们可以有选择性的只

播放它其中之一个动作。*/

返回值: 0=不成功,1=成功

参数一:选择骨骼模型,( <all>=所有模型 )

参数二:ID 骨骼多个动作的 ID 编号

参数三:权重值,也就是该骨骼动作播放的百分比。

清除骨骼动作

/*清除骨骼动作,让骨骼动画停止播放。*/

返回值: 0=不成功,1=成功

参数一; 选择骨骼模型,( <all>=所有模型 )

联系电话 010-82038328, 8329, 7337 第 85 页

Page 86: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数二:动作 ID , ( -1 表示清除所有的骨骼动作。)

插播骨骼动作

/*插播骨骼动作,当我们在播放一段骨骼动作的时候,我们可以突然性的切换到

另一套骨骼动作里去。插播骨骼动作使用非常广泛,都是为了衔接两套骨骼动作,

达到平滑过渡两套动作的目的,例如先让小人在跑到,在跑动的过程中突然跳起。

*/

返回值: 0=不成功,1=成功

参数一:选择骨骼模型,( <all>=所有模型 )

参数二:ID 骨骼多个动作的 ID 编号

参数三:播放次数,-1 代表无限次播放

参数四:权重值,也就是该骨骼动作播放的百分比。

清除插播动作

/*清除掉插播的骨骼动作,有时候我们给骨骼动作嵌入新的动作的时候,一般采

用的是插播动作。这个脚本就是将该骨骼模型上的插播动作清除掉。*/

返回值: 0=不成功,1=成功

参数一:选择骨骼模型,( <all>=所有模型 )

参数二:ID 骨骼多个动作的 ID 编号,-1 表示所有的骨骼动作。

替换当前控制模型

/*当我们使用角色控制相机的时候,相机前方会出现一个小人,这个小人就代表

这相机的移动方位。相机前移,小人也跟这向前跑动。使用该脚本可以替换掉当

前代表相机的骨骼动画小人。*/

返回值: 0=不成功,1=成功

参数一:选择一个骨骼模型。

角色控制相机示例如下:

联系电话 010-82038328, 8329, 7337 第 86 页

Page 87: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

设置骨骼 lod 等级

/*设置骨骼的精细程度,有时候骨骼可能会占用大量的多边形面数,在不影响效

果的情况下应该将骨骼的精细程度设置低一些*/

返回值: 0=不成功,1=成功

参数一:选择一个骨骼模型。

参数二:lodlevel, 精细程度等级,从 0~1。

下图是 LOD 为 0.1 的情况:

联系电话 010-82038328, 8329, 7337 第 87 页

Page 88: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

下图是 LOD 为 1 的情况:

切换当前相机走跑状态

联系电话 010-82038328, 8329, 7337 第 88 页

Page 89: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

/*切换当前角色控制相机的走和跑的状态。*/

返回值: 0=不成功,1=成功

参数一; 1=跑,2=走。

播放骨骼动作(通过名称)

/*指定骨骼的动作名称,播放骨骼中的动作。因为骨骼动作有 ID 和名称两种,

前面介绍的都是通过动作 ID 来控制骨骼动画,这里是通过动作的名称去控制。

*/

返回值: 0=不成功,1=成功

参数一:选择骨骼模型,( <all>=所有模型 )

参数二:动作名称, 骨骼多个动作名称

参数三:权重值,也就是该骨骼动作播放的百分比。

清除骨骼动作(通过名称)

/*指定骨骼的动作名称,清除骨骼中的动作。*/

返回值: 0=不成功,1=成功

参数一; 选择骨骼模型,( <all>=所有模型 )

参数二:动作名称, (<all> 表示清除所有的骨骼动作。)

插播骨骼动作(通过名称)

/*指定骨骼的动作名称,插播骨骼中的动作。插播完骨骼动作后,又会恢复为原

来的骨骼动作。*/

返回值: 0=不成功,1=成功

参数一:选择骨骼模型,( <all>=所有模型 )

参数二:动作名称,骨骼多个动作的名称

参数三:播放次数,-1 代表无限次播放

参数四:权重值,也就是该骨骼动作播放的百分比。

清除插播动作(通过名称)

联系电话 010-82038328, 8329, 7337 第 89 页

Page 90: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

/*指定骨骼的动作名称,清除插播的骨骼动作。*/

返回值: 0=不成功,1=成功

参数一:选择骨骼模型,( <all>=所有模型 )

参数二:动作名称,骨骼多个动作的名称,<all> 表示所有的骨骼动作。

定位骨骼帧

/*将骨骼动画定位到某一帧上。*/

返回值: 0=不成功,1=成功

参数一:选择一个骨骼模型。(<all>=所有的模型。)

参数二:动作 ID

参数三:帧,从 0 开始,-1 为 好一帧。

只播放默认动作

/*只播放骨骼动画的默认动作*/

返回值: 0=不成功,1=成功

参数一:选择一个骨骼模型。(<all>=所有的模型。)

调度插播动作

/*插播一个骨骼的动作,并在播放完该骨骼动作后调用指定的脚本函数*/

返回值: 0=不成功,1=成功

参数一:选择一个骨骼模型。(<all>=所有的模型。)

参数二:动作名称

参数三:播放次数,-1 代表无限次播放

参数四:脚本函数名称,该脚本函数即是指 VRP 中的一个脚本函数。

7.17 模型操作

显示隐藏物体

联系电话 010-82038328, 8329, 7337 第 90 页

Page 91: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

/*显示与隐藏物体,这个脚本可以让物体在场景中消失和显示,这个在虚拟互动

上面用得非常多,是个功能不复杂但很实用的脚本。*/

返回值: 0=不成功,1=成功

参数一:物体类型,0=组,1=模型,3=二维面板,4=角色模型,5=粒子模型

参数二:物体名称

参数三:选项,0=隐藏,1=显示

查找物体

/*查找物体,可以在一个组内,或者模型,二维面板,角色模型里面查找。*/

返回值: 0=不成功,1=成功

参数一:物体类型,0=组,1=模型,3=二维面板,4=角色模型。

参数二:物体名称

显示序列物体(根据索引)

/*显示序列物体(根据索引),如有两个物体名分别为 switch[on],switch[off],那

么序列名为 switch,索引为 on 或 off 。这需要在场景场景的时候就把物体的名

字给命名好。*/

返回值: 0=不成功,1=成功

参数一:指定一个序列物体的序列名,如 switch

参数二:索引,如 on

恢复物体状态

/*当用户在对 VR 场景中的物体进行了移动、旋转、缩放等操作之后,可以通过

恢复物体状态使指定的物体的状态恢复至初始状态*/

返回值: 0=不成功,1=成功

参数一:选择一个模型或组( <all> = 所有模型 )

模型改名

/*更改模型的名称,在 VRP 中不允许物体重名,因此,当使用程序来操作场景

联系电话 010-82038328, 8329, 7337 第 91 页

Page 92: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

的时候不应该让不同的模型拥有相同的名字。*/

返回值: 0=不成功,1=成功

参数一: 指定一个物体的名称

参数二: 指定新模型的名称

拷贝模型

/*指定一个模型,在场景中将它拷贝一个一模一样的新模型,注意它的名字不能

和原来的那个模型相同*/

返回值: 0=不成功,1=成功

参数一: 指定一个物体的名称

参数二: 指定新模型的名称

参数三:加入场景碰撞,0=否,1=是。在这里的场景碰撞的意思是相机与它是

否进行碰撞检测,而不是指物体与物体之间是否产生碰撞。

参数四:复制类型,0=引用复制,1=拷贝复制。

删除对象

/*删除物体,将物体从场景中删除掉。*/

返回值: 0=不成功,1=成功

参数一:对象名称,该对象可以是,组,模型,二维面板,角色模型,粒子模型。

开启模型阴影

/*将物体的阴影开启,该阴影是实时阴影,会随着光的方向而发射改变。*/

返回值: 0=不成功,1=成功

参数一:物体名称

参数二:是否绘制自身阴影,0=不绘制,1=绘制

参数三:阴影的长度。

设置阴影光线

/*设置阴影的光线,该光线就是一个无穷远的光源,开启了模型阴影的物体会被

联系电话 010-82038328, 8329, 7337 第 92 页

Page 93: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

阴影光线所影响。*/

返回值: 0=不成功,1=成功

参数一:方向(度)

参数二:高度,-90 到 90 度

参数三:阴影颜色

关闭模型阴影

/*关闭模型的阴影,因为模型的阴影很消耗系统资源,所以尽量不要让太多的物

体拥有阴影。*/

返回值: 0=不成功,1=成功

参数一:物体名称

开启全体捕捉

/*开启全体捕捉,即每一个模型都可以被捕捉,注意!如果物体个数太多,开启

此项会导致系统速度降低!开启全体扑捉在 SDK 里面的效果就是,鼠标移动到

每个物体上时,都会向 VRP 回调函数发送字符串,该字符串有物体的名字和物

在屏幕上的 X,Y 坐标值。

如下图所示:

联系电话 010-82038328, 8329, 7337 第 93 页

Page 94: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

*/

返回值: 0=不成功,1=成功

参数一:参数,0=关闭,1=开启。

捕捉时排除

/*扑捉时排除,被设置上的物体,在开启全体扑捉后,鼠标放在物体上,也不会

发送字符串到 SDK 程序的回调函数中去。*/

返回值: 0=不成功,1=成功

参数一:模型名或组名,可以成组的排除被扑捉的物体。

参数二:参数,0=不排除,1=排除。

打开日照分析面板

/*打开日照分析面板,改日照分析面板可以控制太阳光源的角度,让模型的阴影

产生不同的角度。在日照分析面板上还可以选择阴影亮点,时间,日期和中国的

城市。它会按照地球的经纬度和时间,对该地区实现光影效果。

联系电话 010-82038328, 8329, 7337 第 94 页

Page 95: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

如下图所示:

*/

返回值: 0=不成功,1=成功

参数无

设置模型状态

/*设置模型的选中状态,当模型被选中的时候,会被白色的框所包围。*/

返回值: 0=不成功,1=成功

参数一: 模型名

参数二: 操作,0=取消选中,1=选中。

参数二: 是否保留以前的选择集,0=不保留,1=保留。

取模型状态

/*获取模型的状态。选择和非选择,显示和隐藏状态。*/

联系电话 010-82038328, 8329, 7337 第 95 页

Page 96: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

返回值: 对于选择状态,1=选择,0=非选择。对于显隐状态,1=显示,0=隐藏。

参数一:模型名

参数二:状态类型,0=显示隐藏属性,1=选择属性。

7.18 查找

得到物体个数

/*得到物体的个数*/

返回值: 物体个数

参数一:物体类型,0=组,1=模型,2=相机,3=二维面板,6=粒子系统。

得到物体名称(通过序号)

/*通过序号去得到物体的名称,该序号指的是物体在 VRP 编辑器中的排序号码,

在 SDK 程序里,通常是获取物体的个数数,然后使用 for 循环,使用该脚本就

可以得到所有物体的名称了。*/

返回值: 物体名称

参数一:物体类型,0=组,1=模型,2=相机,3=二维面板,6=粒子系统。

参数二:序号,从 0 开始。

得到组内物体个数

/*得到某个组内物体的个数。*/

返回值: 组内物体个数

参数一:组名。

得到组内物体名称(通过序号)

/*通过序号去得到组内物体的名称,其使用方式和上面“得到物体名称(通过序

号)” 的方式是一致的。*/

联系电话 010-82038328, 8329, 7337 第 96 页

Page 97: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

返回值: 物体名称

参数一:组名

参数二:组内物体序号。

新增组

/*给场景中新增一个组,这个脚本主要也是在 SDK 中使用的。*/

返回值: 0=不成功,1=成功

参数一:要添加的组名。:

删除组

/* 根据名称删除组*/

返回值: 0=不成功,1=成功

参数一:要删除的组名

添加组模型

/*添加指定模型到组中*/

返回值: 0=不成功,1=成功

参数一: 组名

参数二: 模型名

删除组模型

/*从组中删除指定模型*/

返回值: 0=不成功,1=成功

参数一: 组名

参数二: 模型名

保存组文件

/*将组和组内模型的信息以文件的方式是输出,并保存起来。*/

返回值: 0=不成功,1=成功

联系电话 010-82038328, 8329, 7337 第 97 页

Page 98: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数一:指定输出文件的文件名。

7.19 数据库

VRP 中的数据库可以支持多达四种关系型数据库,分别是 Access, MySQL,

SQL SERVER, Oracle。VRP 场景里面的物体可以和数据库的某条记录关联在

一起,点击物体就显示与物体相关联的数据库的内容。

显示信息面板

/*数据库显示信息的面板,一旦连接上了数据库,那么 VRP 就会查找数据库中

所有的表,然后将表的数据显示在信息里面里面。*/

返回值: 0=不成功,1=成功

参数一:选项,0=隐藏,1=显示,2=创建但不显示。

信息面板如下图所示:

联系电话 010-82038328, 8329, 7337 第 98 页

Page 99: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

连接数据库

/*连接数据库,选择数据库类型,使用连接字符串和用户名,密码去连接数据库,

数据库的字符串一般都是在 VRP 编辑器里面使用图形化界面设置好,生成一串

字符串,将它复制过来就可以使用了。*/

返回值: 0=不成功,1=成功

参数一:数据库类型,0=Access,1=MySQL, 2=Oracle, 3=SQL Server。

参数二:要连接的数据库,连接数据库的字符串。

参数三:用户名

参数四:密码

关闭数据库连接

/*关闭数据库连接,关闭当前 VRP 连接数据库的连接*/

返回值: 0=不成功,1=成功

参数无

更新面板数据

/*更新信息面板的数据,有时候数据库后台的数据已经被改动了,但信息面板的

内容还是没有被改动前查询出来的内容,因此使用这个命令可以重新读取数据

库,并将内容更新到信息面板上。*/

返回值: 0=不成功,1=成功

参数无

显示物体数据库信息

/*显示物体数据库信息,VRP 中的物体可以和数据库的某条记录建立关联,当用

户点击该物体的时候,就读取数据库的那条记录,以弹出窗口的方式显示在 VRP

场景里面。具体如何建立物体和数据库记录的关联性,请查看 VRP 编辑器的帮

助文件。*/

返回值: 0=不成功,1=成功

联系电话 010-82038328, 8329, 7337 第 99 页

Page 100: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数一:物体名称。

新增数据库记录

/*以主键的方式给数据库新增一条记录,该主键只能有一个。VRP 对数据库的支

持非常有限,既然你已经看到了这里,说明你是一个 SDK 用户,如果想更为灵

活的控制数据库的增,删,改和查。那么请使用程序去控制数据库。*/

返回值: 0=不成功,1=成功

参数一:表名

参数二:主键名

参数三:主键值,当数据被插入的时候,只有主键字段上有这么一个数据。

删除数据库记录

/*删除数据库某个表的某条记录。*/

返回值: 0=不成功,1=成功

参数一:表名,

参数二:主键名

参数三:主键值,如果该表设计的主键是多个的话,删除记录的时候很可能是删

除多条记录了。

获取字段值(通过主键值)

/*通过主键值,去获取表中主键记录所在行的某个字段的值。*/

返回值: 以字符串的方式去返回想要获取的字段的内容

参数一:表名

参数二:主键名

参数三:主键值

参数四:字符名

参数无:操作失败是否提示,0=不提示,1=提示。我们很可能在数据库中找不

到我们所需要的数据,VRP 提供两种策略来处理找不到的情况,一种

是直接报错,另外一种是返回空值,什么也不做。

联系电话 010-82038328, 8329, 7337 第 100 页

Page 101: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

获取字段值(通过记录序号)

/*通过数据在数据库记录的序号去获取字端的值。*/

返回值: 以字符串的方式去返回想要获取的字段的内容

参数一:表名

参数二:第几条记录

参数三:字符名

参数四:操作失败是否提示,0=不提示,1=提示。

设置字段值

/*设置数据库表中某条记录的某个字段的值。*/

返回值: 0=不成功,1=成功

参数一:表名

参数二:主键名

参数三:主键值

参数四:字段名

参数五:字段值,这个才是我们真正要设到数据库里面的数据。

显示记录列表

/*显示数据库数据的记录。它和前面提到过的信息面板是同样的东西。与它不同

的是,它显示的内容可以由下面的那个脚本来决定,而信息面板显示的数据是数

据库里面表内所以记录的信息。*/

返回值: 0=不成功,1=成功

参数一:选项,0=隐藏,1=显示。

显示记录

/*指定要显示到记录列表的内容。*/

返回值: 0=不成功,1=成功

参数一:表名

联系电话 010-82038328, 8329, 7337 第 101 页

Page 102: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数二:字段

参数三:字段值

设置信息面板位置(坐标)

/*设置数据库信息面板所在 VRP 窗口中的 X,Y 坐标。*/

返回值: 0=不成功,1=成功

参数一:屏幕坐标 X

参数二:屏幕坐标 Y

设置信息面板大小

/*设置信息面板的大小。*/

返回值: 0=不成功,1=成功

参数一:宽度

参数二:高度

设置信息面板位置

/*以方位的方式设置信息面板的位置。*/

返回值: 0=不成功,1=成功

参数一:屏幕位置,0=上左,1=上中,2=上右,3=中左,4=中中,5=中右,6=

下左,7=下中,8=下右。

获取数据库当前状态

/*获取数据库连接的当前状态。*/

返回值: 0=未连接,1=已连接。

参数无

获取表内记录数量

/*获取表内一共有多少条记录,相当于 SQL 文中的 select count(*) from table

where 条件。*/

联系电话 010-82038328, 8329, 7337 第 102 页

Page 103: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

返回值: 返回记录的数量

参数一:表名

参数二:查询数据库的条件。

显示信息输入对话框

/*以对话框的方式要求用户输入信息。*/

返回值:返回用户输入的信息

参数一:文本输入对话框的提示。

显示信息输入对话框, 请输入信息

如下图

数据库异常断开检测

/*执行完该脚本后,VRP 会一直监视与数据库的连接状态,如果 VRP 与数据库

的连接断开了,会弹出提示框。*/

返回值: 0=正连接着数据库,1=数据库断开了

参数无

数据库字段查询

/*使用排序方式和查询条件去查询数据库的记录,并返回查到数据的第一条数据

其 SQL 文相当于 select [表中某字段] from [表名] where [查询条件] order by [某

联系电话 010-82038328, 8329, 7337 第 103 页

Page 104: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

个字段] [升降序] */

返回值: 以字符串的方式去返回想要获取的字段的内容

参数一:查询字段名

参数二:表名

参数三:查询条件

参数四:排序字段

参数五:升降序,0=降序,1=升序

参数六:操作失败是否提示,0=不提示,1=提示。

数据库记录查询

/* 使用用户指定的 SQL 文返回多行数据记录,但需要 SDK 程序用户去指定分

割查询字段的符号和分割返回记录集的符号。例如

数据库记录查询, select id|name from table, |, /, 0

| 是字段分隔符, / 是返回数据集的分割符。

*/

返回值: 以字符串的方式去返回想要获取的数据库信息

参数一:sql 语句

参数二:字段间的分隔符

参数三:记录间的分隔符

参数四:操作失败是否提示,0=不提示,1=提示。

7.20 杂项

发送字符串到二次开发程序

/*从 VRP 场景中发送字符串到 SDK 程序中,SDK 程序可以通过消息 ID 为 102

(VMSG_USER_STR)的消息获取此信息。

VRPIE-SDK 中:

联系电话 010-82038328, 8329, 7337 第 104 页

Page 105: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

if(msg == 102)

{

// 获取 VRP 发生过来的字符串

var rec_msg = window.Vrpie1.FromLongAddressToString(p1);

}

VRP-SDK 中

if ( msg == VMSG_USER_STR )

{

//得到消息信息

CString desc= m_vrp.GetVrpMsgDesc(vrp_msg_id, (long)p1, (long)p2, (long)p3,

(long)p4);

}

*/

返回值: 0=不成功,1=成功

参数一:参数 1,用户要输向 SDK 程序的字符串。

参数二:参数 2,用户要输向 SDK 程序的字符串。

输出字符串到屏幕

/*将字符串输出到 VRP 运行的窗口左上角的地方。一般用于调试的时候,临时

的将信息输出到屏幕上观察。*/

返回值: 0=不成功,1=成功

参数一:字符串,转义符,<c>=逗号;<n>=回车换行。

参数二:使用,0=开启,1=关闭。

设置屏幕字体格式

/*设置输出到屏幕的字体格式,位置等。*/

返回值: 0=不成功,1=成功

联系电话 010-82038328, 8329, 7337 第 105 页

Page 106: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数一:屏幕字体颜色,r/g/b

参数二:使用阴影,0=关闭,1=开启。

参数三:起始位置,x 窗口坐标

参数四:起始位置,y 窗口坐标

使用上面两个脚本

设置屏幕字体格式, 255/255/255, 1, 300, 150

输出字符串到屏幕, hello world, 0

开启/关闭热点触发

/*开启和关闭热点触发,例如模型上有鼠标单击事件,我们可以使用这个脚本将

模型的鼠标单击事件给屏蔽掉。该脚本的作用是影响场景中所有的模型,或者所

有的面板。*/

返回值: 0=不成功,1=成功

联系电话 010-82038328, 8329, 7337 第 106 页

Page 107: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数一:参数,0=开启,1=关闭面板,2=关闭模型,3=关闭模型和面板

设置定时器

/*创建一个定时器,定时器的概念就是一个程序创建的时针,它每隔一段时间就

会在程序中执行一次。起用途在 VRP 中有两个方面:

第一,使用一个定时器和一个计数变量去代替 for 循环。因为在 VRP 编辑器里

面没有支持 for 循环的脚本,因此我们可以启动一个定时器,每隔 1 秒执行一次自

定义脚本函数,我们在该函数内部使用变量自增,如果变量等于循环的次数我们

可以暂停定时器,退出定时循环。

第二,控制两个以上的刚体动画按序播放,当我们场景中有两个刚体动画的时候

我们希望播放完一个后接着播放另外一个,我们可以设置一个定时器,并将定时

器的触发时间设置为第一个刚体动画播放完后。定时器触发函数里面写这调用播

放另外一个刚体动画就可以了。*/

返回值: 0=不成功,1=成功

参数一:定时器 ID(可用字符串)。

参数二:定时器类型参数,0=执行一次,1=循环执行。

参数三:定时器执行的间隔时间(单位:毫秒)

参数四:定时器调用函数,这个函数指的是 VRP 中内部的脚本函数。

删除定时器

/*删除定时器,定时器比较占用资源,所以需要删除。*/

返回值: 0=不成功,1=成功

参数一:定时器 ID

校正定时器

/*校正定时器,主要是为了让定时器更准确,一般开启一个定时器的时候都使用

校正定时器的脚本,让定时器走得更准确。*/

返回值: 0=不成功,1=成功

参数无

联系电话 010-82038328, 8329, 7337 第 107 页

Page 108: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

暂停定时器

/*暂停和继续定时器,这个脚本将暂停场景中所有的定时器和继续所有的定时

器。*/

返回值: 0=不成功,1=成功

参数一:1=暂停,0=继续。

密码检验

/*密码检验脚本,该脚本弹出一个对话框如果用户输入的密码正确就执行某个脚

本函数。*/

返回值: 0=不成功,1=成功

参数一:密码

参数二:窗口标题,弹出对话框的窗口标题

参数三:错误提示,输入一串错误提示字符串。

参数四:密码正确时执行的脚本函数名称。

选择对象

/*设置 对象被选择*/

返回值: 0=不成功,1=成功

参数一: 物体类型;0=组;1=模型;3=二维面板;4=角色模型

参数二: 对象名称

参数三: 参数;0=直接指定;1=累加;2=去除

开启碰撞

/*该碰撞指的是相机和物体之间的碰撞检测。*/

返回值: 0=不成功,1=成功

参数一: 对象名称

参数二: 参数;0=关闭;1=开启

联系电话 010-82038328, 8329, 7337 第 108 页

Page 109: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

更新 UI

/*更新所有的二维面板*/

返回值: 0=不成功,1=成功

参数无

切换页面

/*切换页面,当一个场景中定义了多块二维页面,我们可以在这些页面切换,由

此可以看到不同的场景。*/

返回值: 0=不成功,1=成功

参数一:页面名称

清除所有键盘运动

/*将 VRP 所有的键盘响应函数给清除掉*/

返回值: 0=不成功,1=成功

参数一无

鼠标左键控制

/*是否启动鼠标左键控制*/

返回值: 0=不成功,1=成功

参数一:是否启用,1=启动,0=关闭

鼠标中键控制

/*是否启动鼠标中键控制*/

返回值: 0=不成功,1=成功

参数一:是否启用,1=启动,0=关闭

鼠标右键控制

/*是否启动鼠标右键控制*/

返回值: 0=不成功,1=成功

联系电话 010-82038328, 8329, 7337 第 109 页

Page 110: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数一:是否启用,1=启动,0=关闭

鼠标滚轮控制

/*是否启动鼠标滚轮控制*/

返回值: 0=不成功,1=成功

参数一:是否启用,1=启动,0=关闭 :

导出 xml

/*导出模型的顶点信息,其格式为 xml。 例如一个正方体将导出如下信息:

<?xml version="1.0" encoding="GB2312" ?>

<model name="Box04" vertexcount="8" indexcount="12" >

<wts>

<m00>1.000</m00>

<m01>0.000</m01>

<m02>0.000</m02>

<m03>0.000</m03>

<m10>0.000</m10>

<m11>0.000</m11>

<m12>1.000</m12>

<m13>0.000</m13>

<m20>0.000</m20>

<m21>1.000</m21>

<m22>0.000</m22>

<m23>0.000</m23>

<m30>-30.461</m30>

<m31>0.000</m31>

<m32>0.643</m32>

<m33>1.000</m33>

</wts>

联系电话 010-82038328, 8329, 7337 第 110 页

Page 111: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

<vertexset>

<vertex id="0" x="-16.077" y="-14.791" z="0.000" />

<vertex id="1" x="16.077" y="-14.791" z="0.000" />

<vertex id="2" x="-16.077" y="14.791" z="0.000" />

<vertex id="3" x="16.077" y="14.791" z="0.000" />

<vertex id="4" x="-16.077" y="-14.791" z="33.441" />

<vertex id="5" x="16.077" y="-14.791" z="33.441" />

<vertex id="6" x="-16.077" y="14.791" z="33.441" />

<vertex id="7" x="16.077" y="14.791" z="33.441" />

</vertexset>

<indexset>

<face id="0" index1="0" index2="2" index3="3" />

<face id="1" index1="3" index2="1" index3="0" />

<face id="2" index1="4" index2="5" index3="7" />

<face id="3" index1="7" index2="6" index3="4" />

<face id="4" index1="0" index2="1" index3="5" />

<face id="5" index1="5" index2="4" index3="0" />

<face id="6" index1="1" index2="3" index3="7" />

<face id="7" index1="7" index2="5" index3="1" />

<face id="8" index1="3" index2="2" index3="6" />

<face id="9" index1="6" index2="7" index3="3" />

<face id="10" index1="2" index2="0" index3="4" />

<face id="11" index1="4" index2="6" index3="2" />

</indexset>

</model>

该 xml 中黑体字是重要的关键字

第一行:说明 xml 版本和编码方式。

第二行:记录着模型名称,顶点个数和多边形个数。

联系电话 010-82038328, 8329, 7337 第 111 页

Page 112: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

接下来是一个 wts ,它是物体的变换矩阵,可将物体的局部坐标变换到世界坐

标中去。

vertexset 是一个顶点集, 它构成了物体所有的顶点的集合。

Indexset 是多边形的集合,它使用三个顶点来描述,也就是三角形,它的索引

编号指的是顶点集中的索引编号。

*/

返回值: 0=不成功,1=成功

参数一:对象名称,指模型名称

参数二:指定文件,使用绝对路径来填写文件名。

修改顶点

/*修改模型的顶点位置的脚本,被改动顶点后的模型会产生变形的效果。*/

返回值: 0=不成功,1=成功

参数一:模型名称

参数二:顶点索引,也就是物体的顶点编号,从 0 开始

参数三:顶点坐标,格式采用 x/y/z

刷新模型

/*和修改顶点配合使用,当物体的顶点被修改的时候,器模型并没有立刻发生变

化,使用该脚本可以把对模型的改动反映到场景中来。*/

返回值: 0=不成功,1=成功

参数一:对象名称

7.21 导航图

导航图的应用在 3D 场景中是非常有用的,它可以对整个 3D 场景进行预览,还

可以在导航图中点击,并快速的将场景定位到鼠标点击处。

导航图实例如下:

联系电话 010-82038328, 8329, 7337 第 112 页

Page 113: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

设置箭头贴图

/*设置导航图中代表用户位置的箭头,例如上图中有个小手形状的标志在小地图

的十字路口上。*/

返回值: 0=不成功,1=成功

参数一:导航图名称

参数二:箭头贴图文件

设置箭头贴图尺寸

/*设置导航图箭头贴图的大小,根据导航图做的大小设置箭头的大小。*/

返回值: 0=不成功,1=成功

参数一:导航图名称

参数二:箭头贴图文件长度

参数三:箭头贴图文件宽度

联系电话 010-82038328, 8329, 7337 第 113 页

Page 114: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

设置导航图缩放等级

/*设置导航图的缩放,可以让导航图变大,但导航图的其他地方可能会看不清除。

*/

返回值: 0=不成功,1=成功

参数一:导航图名称

参数二:缩放等级, 大为 31

将二维图片移至鼠标处

/*将二维图片移动到鼠标位置处,使用这个脚本,可以让二维图片随着鼠标运动。

*/

返回值: 0=不成功,1=成功

参数一:UI 名称,二维面板的名称

参数二:面板新坐标左上角的位置,省略的时候使用当前鼠标位置。

7.22 天气

开启雨雪

/*开启下雨或者下雪的天气,其原理是采用粒子系统来模拟的,下雨用的粒子比

较细长,下雪用的粒子比较短而圆。*/

返回值: 0=不成功,1=成功

参数一:参数,0=关闭,1=开启。

联系电话 010-82038328, 8329, 7337 第 114 页

Page 115: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

设置雨雪粒子个数

/*设置雨或者雪粒子的个数*/

返回值: 0=不成功,1=成功

参数一:粒子个数

设置雨雪边界

/*设置雨或者雪的边界,雨或者雪的边界是一个圆柱体,因此只用设置圆柱体的

半径,底面高度和顶面的高度即可。*/

返回值: 0=不成功,1=成功

参数一:范围半径

参数二:顶部坐标,该坐标是场景中的高度(y 轴)坐标。

参数三:底部坐标,该坐标含义同上。

设置雨雪粒子大小

/*设置雨或者雪粒子的高度和宽度,粒子是一个面向相机的平面,可以设置其高

联系电话 010-82038328, 8329, 7337 第 115 页

Page 116: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

与宽,也可以设置它的贴图。*/

返回值: 0=不成功,1=成功

参数一:宽度

参数二:高度

设置雨雪粒子速度

/*设置雨或者雪粒子的速度,控制雨速度的快慢来表现,雨下的强度。*/

返回值: 0=不成功,1=成功

参数一: 高速度。

参数二: 低速度。

设置雨雪粒子颜色和贴图

/*设置雨或者雪粒子的颜色和贴图。*/

返回值: 0=不成功,1=成功

参数一:粒子顶部颜色(a/r/g/b)

参数二:粒子底部颜色(a/r/g/b)

参数三:贴图文件,依附在粒子平面上的贴图文件。

开启镜头眩光

/*开启镜头的眩光,眩光在 VRP 中都是由于太阳光源引起的。眩光的定义是,

在视野内由于远大于眼睛可适应的照明而引起的烦恼、不适或丧失视觉表现的感

觉。眩光的光源分为直接的,如太阳光、太强的灯光等,和间接的,如来自光滑

物体表面(高速公路路面或水面等)的反光。*/

返回值: 0=不成功,1=成功

参数一:参数,0=关闭,1=开启。

设置眩光高度角

/*设置眩光的高度角,该高度角是太阳的向量和垂直轴 Y 轴的夹角。*/

返回值: 0=不成功,1=成功

联系电话 010-82038328, 8329, 7337 第 116 页

Page 117: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数一:高度角,从 -90 到 90。

设置眩光方向角

/*设置眩光的方向角,方向角是太阳向量在 X-Z 平面上的偏移角度,要体会上面

说的高度角和方向角 好是打开《十分钟入门教程》的例子里,使用一下那个太

阳。*/

返回值: 0=不成功,1=成功

参数一:方向角,从 0 到 360

开启雾效

/*开启雾*/

返回值: 0=不成功,1=成功

参数一:参数,1=开启,0=关闭。

设置雾色

/*设置雾的颜色*/

返回值: 0=不成功,1=成功

参数一:RGB 值,例如,200/128/0

使用如下代码

设置雾色, 200/128/0

开启雾效, 1

联系电话 010-82038328, 8329, 7337 第 117 页

Page 118: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

设置雾近面

/*设置雾的 近距离*/

返回值: 0=不成功,1=成功

参数一:近面距离,雾的作用范围的近面。

设置雾远面

/*设置雾的 远距离*/

返回值: 0=不成功,1=成功

参数一:远面距离,雾的作用范围的远面。

开启关闭粒子

/*开启或者关闭某个粒子系统*/

返回值: 0=不成功,1=成功

参数一:指定名称,粒子系统的名字

联系电话 010-82038328, 8329, 7337 第 118 页

Page 119: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数二:选项,0=关闭,1=开启。

暂停粒子

/*暂停和继续播放粒子系统*/

返回值: 0=不成功,1=成功

参数一:指定名称,粒子系统的名字

参数二:选项,0=继续,1=暂停。

设置光线方向

/*设置无穷远光源方向*/

返回值: 0=不成功,1=成功

参数一:光线方向,世界坐标系下的矢量,默认是,0.9/-1.2/1

7.23 形状

形状在 VRP 三维场景中就像一个一个小精灵一般,可以隐藏在场景中的各个角

落里起着注解说明的作用,例如文字是用得 多的一种形状,它可以和物体捆

绑在一起,物体远动,文字也随着运动。

形状是线条文字的综合运用,下面是示例:

联系电话 010-82038328, 8329, 7337 第 119 页

Page 120: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

创建线条

/*创建一个线条,这个线条是 3D 空间中的直线,有起点和终点。*/

返回值: 0=不成功,1=成功

参数一:形状名称

设置线条位置

/*设置线条在三维空间中的位置*/

返回值: 0=不成功,1=成功

参数一:线条名称

参数二:线条起点,x/y/z

参数三:线条终点,x/y/z

设置线条颜色

/*设置线条的颜色*/

联系电话 010-82038328, 8329, 7337 第 120 页

Page 121: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

返回值: 0=不成功,1=成功

参数一:线条名称

参数二:线条起点颜色, r/g/b

参数三:线条终点颜色, r/g/b

设置线条箭头

/*设置线条的箭头,可以让线段带有箭头的样子。*/

返回值: 0=不成功,1=成功

参数一:线条名称

参数二:是否使用箭头,1=使用,0=关闭。

删除线条

/*删除线条*/

返回值: 0=不成功,1=成功

参数一:线条名称

创建文字

/*创建文字*/

返回值: 0=不成功,1=成功

参数一:形状的名字

设置文字位置

/*设置文字在三维场景中的位置*/

返回值: 0=不成功,1=成功

参数一:文字名称

参数二:文字位置,x/y/z

设置文字颜色

/*设置文字的颜色*/

联系电话 010-82038328, 8329, 7337 第 121 页

Page 122: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

返回值: 0=不成功,1=成功

参数一:文字名称

参数二:文字颜色, r/g/b

参数三:背景颜色, r/g/b

设置文字透明度

/*设置文字的透明度,这个选项可以让文字的背景颜色完全消失。*/

返回值: 0=不成功,1=成功

参数一:文字名称

参数二:选项,0=开启透明渲染,1=关闭透明渲染。

参数三:透明度(0~255)。

设置文字内容

/*设置文字的内容,这也是用得非常多的一个脚本,一般在 SDK 中可以将文字

与数据库相关联,把数据库的信息写入到文字中。*/

返回值: 0=不成功,1=成功

参数一:文字名称

参数二:文字内容

删除文字

/*删除文字*/

返回值: 0=不成功,1=成功

参数一:文字名称

设置形状可见

/*显示与隐藏形状*/

返回值: 0=不成功,1=成功

参数一:文字名称

参数二:是否可见,0=不可见,1=可见。

联系电话 010-82038328, 8329, 7337 第 122 页

Page 123: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

设置文字可视距离

/*设置文字的可视距离,当文字离相机很远的时候,我们几乎看不到文字的时候,

就应该不把它加入到渲染场景里面来,这样我们可以提高系统性能,因此我们将

文字附加了一个可视距离的属性,当文字超过了可视距离,那么文字不可见。*/

返回值: 0=不成功,1=成功

参数一:文字名称

参数二:可视距离,一个整数。

平移文字

/*平移文字,将文字在场景中移动,这在 SDK 程序里面用得非常多,我们可以

更加数据库后台的数据去驱动文字的移动。*/

返回值: 0=不成功,1=成功

参数一:文字名称

参数二:移动参数,x/y/z

参数三:移动选项, 0=绝对移动,1=相对移动。

设置面板文字

/*设置二维面板的文字*/

返回值: 0=不成功,1=成功

参数一:面板的名称

参数二:文字,要写入二维面板的内容

路径动画暂停

/*动画路径的含义在 VRP 里面是设定一个折线,然后将刚体或者是骨骼动画捆

绑在路径上面,那么 VRP 场景运行的时候,动画路径也就随这场景而运动,我

们可以使用这个脚本让这个动画路径暂停或者播放。*/

返回值: 0=不成功,1=成功

参数一:路径名称

联系电话 010-82038328, 8329, 7337 第 123 页

Page 124: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

参数二:选项, 0=继续, 1=暂停

文字绑定物体选择

/*将文字绑定到物体上,物体移动了,文字也随着物体而运动。*/

返回值: 0=不成功,1=成功

参数一:文字名称

参数二:模型名称,如果程序将文字捆绑到物体上的时候,发现找不到物体的时

候,则不会移动文字的位置。

7.24 远程控制

VRP 中的远程控制是局域网的网络,不支持 Internet 网络。

远程控制 SDK 程序示例,使用 MFC 建立一个服务器程序,该程序没有任何图

形界面。它使用 VRP 脚本去建立服务器,而客户端则是一个 VRP 脚本,它在

初始话操作的时候就去连接服务器。在连接好后,服务器上的一个按钮按下的

时候就可以发送脚本到客户端的场景里面去,客户端的场景在收到脚本后就单

纯的去执行脚本。

服务器:

联系电话 010-82038328, 8329, 7337 第 124 页

Page 125: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

服务器端的调试窗口

联系电话 010-82038328, 8329, 7337 第 125 页

Page 126: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

客户端:

客户端的调试窗口

建立服务器

联系电话 010-82038328, 8329, 7337 第 126 页

Page 127: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

/*建立一个服务器。一旦服务器建立成功了,客户端就可以根据服务器的名字建

立起关联来。*/

返回值: 0=不成功,1=成功

参数一:会话名称,服务器提供服务的名称。

关闭服务器

/*关闭服务器*/

返回值: 0=不成功,1=成功

参数无

发送脚本到客户机

/*服务器发送脚本到客户端,客户端接到脚本后就会立即执行。*/

返回值: 0=不成功,1=成功

参数一:脚本,VRP 中的脚本

显示服务器窗口

/*显示服务器的调试窗口,就是上图所示的“服务器端的调试窗口”

*/

返回值: 0=不成功,1=成功

参数无

建立客户端

/*建立一个客户端,并使用客户端去连接服务器。*/

返回值: 0=不成功,1=成功

参数一:服务器 IP, (空=搜索所有,127.0.0.1=本机)

参数二:会话名称,(空=使用找到的第一个会话名称)

参数三:用户名,(会随消息发送到服务器上, 好不要为空,也这样服务器就

不指定你是谁了)。

参数四:是否弹出连接窗口,0=否,1=是。

联系电话 010-82038328, 8329, 7337 第 127 页

Page 128: VRP-SDK 使用教程CA%B9%D3%C3%BD%CC%B3%CC.pdf ·  VRP-SDK 使用教程 ——中视典数字科技有限责任公司 1 简介.....3

www.vrplatform.com

关闭客户端

/*关闭客户端*/

返回值: 0=不成功,1=成功

参数无

发送脚本到服务器

/*客户端发送脚本到服务器上*/

返回值: 0=不成功,1=成功

参数一:脚本,VRP 中的脚本。

显示客户端窗口

/*显示客户端的连接窗口,就是上图所示的“客户端的调试窗口”*/

返回值: 0=不成功,1=成功

参数一:选项,0=隐藏,1=显示。

以上就是脚本全部介绍,学会灵活使用脚本,将使你在操作三维场景物体达到事

半功倍之效,脚本相当于 VRP 场景的 API,而你的程序才是真正驱动业务逻辑

的引擎。同时我们也欢迎您对 VRP 的脚本提出改进意见或者建议,让我们能够

一起快速构建起我们自己的三维世界。

联系电话 010-82038328, 8329, 7337 第 128 页