该系统演示了怎样用VSL来操纵三维实体及复制物体。
- 开始一个新作品并在3D Layout工作区添加一些随机的物体(或创建一些三维帧 - 3D Frame)。创建一个组(Group)并将所有物体添加到该组中。
注意:如果你用的是3D Frame,请确保你在3D
Layout - Rendering preferences
面板中的播放器模式(Player Mode)处勾选了"Show All Frames"框,以便在播放模式下能看到那些3D Frame。
- 在层级(Level)下创建一个脚本并添加一个Run VSL BB。在VSL Script Manager中,添加两个pIn参数:第一个叫做"objGroup"且为Group类型,第二个叫做"radius"且为float类型。
- 讲以下代码复制到代码视图,并编译VSL脚本:
void main()
{
// Get number of objects
int nbObject = objGroup.GetObjectCount();
// Calculate angle betwen each objets
float angle = 2*pi/nbObject;
Vector pos(0,0,0);
// Place each object on the circle
for (int i = 0; i < nbObject; ++i)
{
// We get the nth object and cast it in Entity3D
Entity3D obj = Entity3D.Cast(objGroup.GetObject(i));
// If cast failed obj is null so we skip process...
if (!obj)
continue;
// Compute object position
pos.x = radius*sin(i*angle);
pos.z = radius*cos(i*angle);
// Place object
obj.SetPosition(pos, null, true);
}
}
- 在Schematic工作区,按如下方式编辑你的Run VSL BB的参数:
- objGroup = Group1 (或者是你自己给那个组 - group所选的名字)
- radius = 10
- 运行该VSL脚本。你就会看到3D Layout工作区中所有物体都均匀分布在圆周上。
可以对这个脚本进行一个有趣的修改:使用单个物体,在运行时将它复制几遍,即不是在起始时就有几个物体。
- 在VSL Script Manager工作区中,移除那个代表组的pIn参数并再添加两个pIn:一个叫做"originalObject"且类型为Entity3D,另一个叫做"nbOject"且类型为int。然后按以下内容修改你的代码:
void main()
{
// Calculate angle betwen each objets
float angle = 2*pi/nbObject;
Vector Pos(0,0,0);
// Place each object on the circle
for (int i = 0; i < nbObject; ++i)
{
// We copy a nth object and cast it in Entity3D
Entity3D obj = Entity3D.Cast(bc.Copy(originalObject, true, true));
//If cast failed obj is null so we skip process...
if (!obj)
continue;
// Compute object position
pos.x = radius*sin(i*angle);
pos.z = radius*cos(i*angle);
// Place object
obj.SetPosition(pos, null, true);
}
}
- 编辑你的pIn参数,编译VSL脚本然后运行它。
你会看到你的原始对象按指定的次数被复制,并且所有对象被均匀分布在圆周上。注意:那些复制出来的物体是以动态方式创建的(由bc对象
的"Copy"方法中的第二个参数控制)。所以如果你按了Reset键,你所有动态创建的物体会被销毁。
分享到:
相关推荐
在压缩包文件"Virtools-走迷宫"中,可能包含了以下内容: 1. Virtools工程文件:这是Virtools项目的主要文件,包含了场景布局、行为脚本、资源引用等所有信息。用户可以使用Virtools软件打开此文件,查看和修改项目...
### Virtools学习资料:VSL脚本语言入门与实践 #### 一、VSL脚本语言简介 Virtools是一款强大的3D应用开发平台,广泛应用于游戏开发、虚拟现实、建筑可视化等多个领域。Virtools提供了丰富的功能和工具集,其中VSL...
Virtools是一款强大的交互式3D应用开发工具,它允许用户创建、编辑和发布虚拟现实(VR)和增强现实(AR)应用程序。...对这些知识点的深入理解和应用,将有助于提升你的Virtools项目的专业性和吸引力。
Virtools 是一款强大的交互式3D应用开发工具,它的VSL(Virtools Script Language)是内置的脚本语言,而SDK(Software Development Kit)则提供了更底层的编程接口。为了确保代码的质量、可读性和可维护性,遵循...
virtools 文件 实例文件 源文件virtools 文件 实例文件 源文件virtools 文件 实例文件 源文件
2. **BCML与BScript编程**:理解这两种脚本语言的基本语法和特性,学习如何通过脚本控制3D对象和游戏逻辑。 3. **3D对象与场景管理**:了解如何导入、编辑和管理3D模型,以及如何在场景中布置和操作对象。 4. **动画...
- **脚本语言**:Virtools脚本语言(VSL),用于编写自定义行为。 4. **参数** - **概述**:用于控制对象行为的数据值。 - **参数操作**:通过运算符改变参数的值,实现动态调整对象的状态。 5. **属性** - **...
Virtools漫游脚本程序是一种基于Virtools软件的高级编程技术,主要用于创建虚拟现实(VR)环境中的交互式漫游体验。...通过深入学习和实践,开发者可以利用Virtools的强大力量,创造出生动且引人入胜的VR应用。
VSL脚本语言是Virtools中的核心部分,初学者可以从基础语法入手,逐步了解和掌握各种类型的应用。VSL部分不仅包括基本语法讲解,还涉及不同类型的VSL脚本程序及其在实际项目中的应用。 在VSL部分,作者首先介绍了...
项目实例剖析部分通过多个实际案例,系统性地展示了Virtools在不同项目中的应用,帮助读者将理论知识转化为实践技能。书中附带的光盘包含了所有章节的实例代码和美工资源,确保在Windows XP和Virtools 4.0环境下可...
首先,理解“封装VT文件到一个EXE文件”意味着将Virtools项目的所有必要组成部分,包括场景、资源、脚本等,整合到一个单一的可执行文件中。这样做的好处是用户无需安装Virtools软件即可运行应用程序,简化了分发和...
virtools 室内漫游 实例文件 可修改 漫游 virtools 室内漫游 实例文件 可修改 漫游
它提供了多种方式进行交互式体验的创建,包括VSL(Virtools脚本语言)、脚本流程图以及SDK(软件开发工具包)。 VSL,全称为Virtools Script Language,是一种强大的脚本语言,允许开发者深入到Virtools SDK的底层...
增强现实技术通过将虚拟信息与现实世界融合,为用户创造了一个全新的交互体验,而Virtools AR Toolkit BB则简化了这一过程,使得开发者能够更高效地创建此类应用。 首先,让我们深入了解Virtools。Virtools是一款...
此外,教程还会涵盖动画系统、脚本语言(LVB)的使用,以及如何与外部程序(如Unity、C++)进行集成。动画系统允许用户制作角色和物体的动态效果,而LVB(Virtools Behavior Language)则为那些希望更深入编程的用户...
2. **行为脚本**:使用VirTools的脚本语言BCML(Blue Cat Modeling Language)编写,用于定义游戏规则、玩家交互和逻辑处理。 3. **资源文件**:包括声音、图像、动画等媒体素材,用于增强游戏体验。 4. **用户界面*...