当前位置:文档之家› Virtools教程

Virtools教程

目录

简介 (2)

系统需求 (3)

操作接口 (4)

Lesson 1 创造第一个3D互动场景 (6)

Lesson 2 如何移动、控制与浏览Virtools里的对象 (10)

Lesson 3 制作一个追踪目标的摄影机 (12)

Lesson 4 障碍物回避的处理 (18)

Lesson 5 如何将「行为模块」组合成行为模块流程 (26)

Lesson 6 参考术语表 (34)

附录:制作VIRTOOLS的3D角色与对象之技巧 (42)

简介

欢迎使用Virtools中文手册。藉由这本简易的使用说明,您将可以轻松地逐步体验Virtools强大的互动性开发能力──从着手开始制作第一个属于自己的互动场景,到进一步发挥所有隐藏在Virtools里的先进功能,直到完成您个人的精彩作品为止。

1. 首先,我们会先向您简介Virtools的操作接口,并接着在我们所为您提供的六个简短基本课程引导之下,使您能够轻松地创造出第一个属于您自己的3D互动场景。

2. 再来,您将可以开启Virtools所附赠的范例档案(Documentation),藉由亲自动手操作与调整这些范例来验收您在前两个单元里所得到的学习成果。这些范例清楚地展示了Virtools所内建的「标准行为控制工具库」(standard behavior library)是如何地运作,而您将能够在极短的时间之内熟悉这些工具的操作和所能达到的效果。

3. 当您在实际作业中碰到任何困难时,试试Virtools所提供的线上辅助说明功能(on-line documentation)。Virtools的线上辅助说明包含了「参考指南」(reference guide)、「行为模块说明文件」(behavior documentation)、「参数设定文件」(parameter operation documentation)、与「技巧提示」(shortcuts)等。这份为您所精心准备的线上辅助说明将能鱁适时地解答您的疑惑,甚至激发您的创意。

4. 如果您遇到的问题在Virtools所提供的线上辅助说明里仍旧无法得到满意的解答,您可以设法连上我们的网站(https://www.doczj.com/doc/b94224741.html,),在这个不断扩充更新的客服网页里,您将可以得到任何与Virtools 相关的信息与知识。在这里,您可以:

─下载示范(demos)档案(包含该档案的行为模块流程behavior flowcharts之全貌)。

─下载额外的进阶主题文件(additional advanced topics)。

─进入「技术探讨论坛」之中与Virtools其它使用者们交换心得。

─获取最新的Virtools相关新闻(Virtools-related news)。

─在展示区里放上您自己的作品,或下载其它玩家的精彩作品。

─与他人共享「行为控制模块资源」(behavior resources)。

─进入「技术探讨论坛」之中与Virtools其它使用者们交换心得。

对于您对Virtools的爱用,我们感到十分地荣幸。

也盼望能及早在「https://www.doczj.com/doc/b94224741.html,」上见到您的大作,并与您分享交流关于Virtools的使用心得。

系统需求

软件与硬件需求建议

为了使Virtools能够被顺利地安装与使用,首先您必须检查您的系统是否符合以下的设定需求。

软件需求建议

? Windows 9X, Windows NT, Windows 2000

? DirectX 8.0以上版本

? Internet Explorer 4.0以上版本(用来开启线上辅助说明功能)

? Virtools 包含了两个内建的绘图引擎(render engines):

VX3D_D3DR (支持direct 3D 绘图运算)

VX3D_ISI (支持Open GL, Glide 与软件绘图运算)

在安装的过程中,Virtools会依据您的系统设定状态自动选择最佳的绘图引擎加以安装。但在安装完成之后,您仍旧可以手动方式更换不同的引擎。

硬件需求建议

? Direct3D或OpenGL兼容的2D/3D绘图加速卡(8MB RAM以上)

? Sound card声卡(建议配备)

安装Virtools

? CD至入您的Virtools安装光盘片

? 遵照屏幕上的指示进行相关设定动作

? 若是您的光驱(CD-ROM drive)无法自动开启Virtools的安装程序接口,您可以手动方式执行光盘片上的setup.exe档案,Virtools安装程序同样能引导您进行安装的动作。

操作接口

Virtools的操作接口由数个窗口所构成,主要包含以下几个部分:

3D Layout窗口(预设窗口:位于画面左上)

在实时3D的环境下展示您正在进行的项目作品,并提供所有用来创造、圈选、或操作3D组件所必需的工具及导览工具等。

Building Block窗口(预设窗口:位于画面右上)

负责Virtools「行为模块」建构区块(behavior building block)的调整与编辑。

Level View窗口(预设窗口:位于画面下方)

让您能够以清楚的树状阶层结构来检视与编辑目前正在进行的项目作品。

Schematic窗口(预设窗口:位于画面下方,Level View之后)

这个窗口让您能够可视化与互动化地建构与编辑目前项目中所有的3D组件。

3D Layout编辑器中的编修工具集.

位于3D Layout编辑器的左上面版中,以实时3D的环境展示您正在进行的项目作品,并提供所有用来创造、圈选、或操作3D组件所必需的工具

变形工具集(Transformation tools)用来圈选、移动、旋转、与缩放3D组件。

创造工具集(Creation tools)用来创造与调整所有的3D组件内容:包含镜头(camera)、光源(light)、3D虚拟对象(frame)、曲线(curve)、及网格虚拟对象(grid)、2D虚拟对象(frame)、材质(material) 、贴图(texture) 、空间门(portal)等。

导览工具集(Navigation tools)以3D视角导览目前的项目:包含移动镜头(dolly)、视野调整(field of view)、镜头缩放(zoom)、摇摄(pan)、及镜头轨道设定(orbit)等。

L ESSON 1 创造第一个3D互动场景

.

这个初步的课程将告诉您如何创造出第一个属于您的互动场景。

首先,您需要先汇入一组已经做好的3D场景(3D scene)与一个3D角色(3D character)到Virtools里。然后,在这个汇入的角色身上指定必要的「行为模块」(behaviors),这么一来,您的角色就可以在场景当中依您键盘的指示来回地走动了。

在您正式开始跟着下面介绍的程序逐步操作时,记得一件事情:有些地方您或许并不完全明白,但也别紧张,关于这些进阶的细节,我们都会在后面的课程里为您一一解答。而目前您只需要放轻松,一步步地跟着教学课程作,然后欣赏有趣的成果就可以啦!

第一课,我们假设这是您第一次开启使用您的Virtools。如果一切正常,您将会看到如下的画面:

选择面版/Activating panels

要选择任何一个面版,您只需:

? 在您想要选择的面版卷标(panel tab)上轻点一下鼠标左键。

?此时,您所激活的面版卷标将以高亮度显示(highlighted),表示它是目前正在使用的面版。

调整控制面版大小/Resizing panels

每个控制面版都不会叠在另一个上头。意思是说,当您调节某个面版的大小,意味着其它面版也会相

对地做出调整,以符合不重叠的原则。

对于屏幕上方的区域来说,无论是面版的宽度或是高度都是可以被调节的;但对于屏幕下面的面版而言,则只有高度是可调的,您可以自己在画面上试试看。

拖曳您想要改变大小的面版,直到该面版的大小符合您的期望为止。

(如图鼠标必须对准最靠近边缘的面版缺口才能拖曳改变大小的面版,对上方的面版,可左右移动以调整宽度;对下方的面版,可上下移动以调节高度。)

移动面版/To move a panel from one area to another:

拖曳该面版的控制卷标上(panel tab)到希望放置的地方即可。

让面版以全屏幕显示/To make a panel full screen:

在该面版的控制卷标上(panel tab)上双击鼠标即可。

复原某个面版的之前的尺寸/To return to the previous screen size:

同样地,在该面版的控制卷标上(panel tab)上双击鼠标即可。

步骤1:开启一个含有3D模型的数据库(Opening a database containing 3D models.)? 选取「Resource」(来源)选单。

? 在「Resource」选单中,选取「Open Data Resource」(开启资料来源)。

? 从「Lessons & Topics」资料夹当中选取「Demo Resource.rsc」。

此时,一个新的面版(Demo Resource)将会在画面右方的Building Blocks窗口上方出现。

步骤2:汇入一个3D模型(Importing a 3D model into the project)

? 选取「Demo Resource」卷标(教学课程数据库)。

? 在「3D Entities」图标上单击鼠标左键。

?将「Room.nmo」档案从「3D Entities」中拖放到「3D Layout」窗口里。此时,您将会在「3D Layout」窗口里看到一间实验室。这表示您已经将一组预先建好的3D模型组成功地汇入Virtools之中了。

步骤3:汇入一个3D角色(Importing a 3D character into the project)

? 在「Demo Resource」卷标里单击「Characters」(角色)图标。

? 将「Scientist.nmo」档案从「Characters」中拖放到「3D Layout」窗口里。此时,您将会在「3D Layout」窗口里看到一个角色正站立在先前汇入的实验室当中。另外将「Characters」下的

「Animations」里有四种动作,全选后拉Scientist里,这表示这个3D角色与该角色的动态资料已经成功地汇入Virtools之中了。

步骤4:对您的角色指定「行为模块」(Applying behaviors to the character)

为了要使先前汇入的角色能随着键盘的指令在房间里四处走动,您需要指定一些「行为模块」到它的身上。所谓的「行为模块」(behavior),指的是一组用来描述「该组件在特定的条件或既定的事件之下应如何行动或反应」的描述档案。「行为模块」可以被应用在各种不同的组件上头,诸如「对象」(objects)、「角色」(characters)、「镜头」(cameras)等等……。「行为模块」的「Character Controller」(角色控制器)能够被用来管理一个角色的动作(animations),而「Keyboard Controller」则可以定义键盘上的按键来控制角色的动作。

? 选取「Building Blocks」卷标。

? 打开「Characters」。

? 打开「Movement」(动作)。

? 将「行为模块」的「Character Controller」拖到3D Layout面版里的角色Scientist身上。此时将会看到一个黄色的立方体线框也就是「外切框」(bounding box)包覆在该角色上,这表示该角色目前已被选取,只要一放开鼠标按键,就确定赋予他这个行为模块。

? 当将「行为模块」拖放到角色身上这个动作时,紧接着就会出现「设定对话框」(configuration dialog box),这是用来指定或调整属于该「行为模块」的相关参数。在这个例子中,跳出的对话框将能够让您指定「动作对应」(assign animations):

? 使用「下拉式选单」(pull-down menu)选择下列的动作。

? 「Stand Animation」、「Walk Animation」、「Backward Walk Animation」。

? 选取「OK」,现在角色有了第一套的「行为模块」。

注意:现在,你可以清楚地在「Schematic View」窗口里看见「行为模块」被加到一个组件上面的效果。但关于如何利用「Schematic View」来作进一步的控制与管理,我们将在后续的课程里为您作更详细的说明。

? 打开位于「Building Blocks」面版里的「Controllers」资料夹。

? 再打开「Keyboard」资料夹。

? 将「行为模块」的「Keyboard Controller」拖放到3D Layout面版里的人物角色Scientist身上。

? 在对话框中选取「OK」。

注意:「Keyboard Controller」的设定值已预先被对应在键盘最右边的九宫格数字方向键上,因此这里不需要任何额外的参数指定。

步骤5:测试演出效果(Testing the scene.)

现在,我们可以开始对目前的进度做初步的测试与观察。Virtools可以不需重复所有做过的程序,而能直接地执行演出测试,这使您能够立即地看到先前试作的结果,并随时轻易地做任何调整与改变。

? 按下画面右下角状态区(status bar)上的「Play」按钮

按钮来暂停这个小游戏。

? 按下「Restore Initial Condition」按钮(回复初始状态)

L ESSON 2 如何移动、控制与浏览Virtools里的对象在这一课里您将会学到:

? 如何操作Virtools里的组件。

? 如何从清单里监控组件的资料与状态。

? 如何在3D Layout窗口里移动、控制与浏览全局。

步骤1:开启一个既存的作品(Opening an existing composition)

? 从「File」选单中,选取「Load Composition」(读取作品)选项。

? 选取您所要汇入的作品(假设它叫做『my scene.cmo』)然后按下「OK」。

步骤2:在3D Layout 窗口里操纵与调整组件(Manipulating entities in the 3D Layout window)3D Layout窗口提供了能让您在场景中移动、旋转、还有缩放对象的工具集。要使用这些功能,首先,您要选取您所想使用的工具,而后指定应用这些效果的限制方向轴,最后在3D窗口里选取要施加效果的对象组件就可以了。

举例来说,要是我们想把场景理得那张桌子抬离地面的话,也就是把桌子沿Y轴方向向上抬起:

? 点选「Select and move」(选取与移动)工具

? 点选场景中的桌子并将它拖曳上来。然后将桌子放到任何您想放置的位置。要是你在拖曳的过程里想取消这项动作、而使桌子回复原来的位置,您只要途中按下鼠标右键(但仍然得按住左键)就可以取消了。

若要改变某个3D组件的方向:

? 点选「Select and Rotate」(选取与旋转)按钮

上按住鼠标左键不放,一个额外的「按键选单」(MenuButton)会弹出来,里面包含了三种不同的缩放模式:

? 均质缩放/Uniform scaling(默认值)

:对象会沿着指定的轴线缩放(X、Y、Z轴或任意双轴)。

? 定积缩放/Volumetric scaling

步骤3:从3D Layout窗口里选取组件并在Level Manager里监看它们的状态

(Selecting entities in the 3D Layout window and monitoring them in the Level Manager)

Level Manager能一目了地观察目前作品里所有组件的状态。也是方便在复杂的场景中选取组件,并加以操作如复制或删除等功能的地方,。

? 选取「Level Manager」卷标。

? 在「Global」资料夹上双及鼠标左键。此时,一些列出作品内容中所有组件的次资料夹会被开启,包含了所有的3D对象(3D objects)以及它们的贴图与材质等资料、角色(characters)、镜头(cameras)、与光源(lights)、网格线(Mesh)材质(material) 、贴图(texture)等等。

? 从「Character」资料夹中,选取「Scientist」这个角色。此时,在3D场景里,该角色的周边会出现一个白色的立方体「外切框」(bounding box)表示它已经被选取了。

要选取一个组件有下列两种途径:可以直接在3D视角里直接点选该对象;或者,也能在Level Manager 里选择,两种方法都一样有效,就看编辑时的方便而定。但严格说来,在Level Manager里作业较为便利且富弹性,甚至能够做到一些在3D场景里所不能做到的控制。举例来讲,要在3D场景里直接选取一张贴图(texture)是不可能的,这个动作只能在Level Manager里完成。在两种方法中,您都可以选取复数的组件,只要在选择的同时按住Ctrl键不放就可以了。

L ESSON 3 制作一个追踪目标的摄影机

这一课将会教您如何在Schematic view里自由地组合「行为模块」,以便在您的组件上加入进阶的「行为模块」的互动控制。在本课的例子里,我们将会创造出一个会自动锁定角色头部的camera,而当我们移动该角色时,该camera也会跟着角色在场景中四处移动,并保持动态的锁定状态。由于这是您第一次在Schematic View里以图像化方式撰写Virtools程序的经验,这是Virtools非常核心与重要的部分,我们建议您最好一步一步地跟随课程的指示循序渐进,并且仔细地看过所有的解释与说明,如此我们保证您将会事半功倍,马上进入状况。这一课里包含了许多关于Virtools如何运作的重要概念基础,请用心学习哦!

步骤1:新增一个镜头(Creating a new camera)

? 在「3D Layout」工具列里点选「Create Camera」(新增镜头)

? 从「Available Cameras」(镜头类型)下拉选单里选取「Perspective View」(透视视角)使镜头回复标准透视视角。

? 点选「Dolly Camera」(推移镜头)图标

简按钮以环视整个场景。如果没有意外的话,您将会看见您所设定的camera 跟它所锁定的目标,两者间透过一条黄色的线连结起来。

步骤2:对镜头指定「行为模块」(Applying behaviors to the camera)

我们想要让New Camera达成的任务如下:首先,我们希望能够在一进入这个场景的同时,就以New Camera来作为我们的观察视点(这件事情只要透过『行为模块』SetAsActiveCamera就可以达成了)。

然后,我们想要使New Camera能够持续地锁定角色,再说清楚一点,也就是在Virtools开始算运算其它图形资料之前,就先将镜头所定在角色上面(使用『行为模块』CameraOrbit)。

? 选取「Building Blocks」卷标。

? 打开「Cameras」资料夹。

? 打开「Montage」资料夹。

? 将「行为模块」「SetAsActiveCamera」拖放到指定的镜头上。

? 选取「Schematic」卷标,从Schematic可以检视摄影机互动模块的组合状态(New Camera script)。

一个代表SetAsActiveCamera的方块出现,方块的左边有一个输入端(input),而右边则有一输出端(output)。

? 从「Building Blocks」面版中打开「Cameras/Movement」资料夹。

? 将「行为模块」CameraOrbit拖放到Schematic view里,摆在「行为模块」SetAsActiveCamera 之右,如图所示。

? 在Schematic view里将鼠标移到CameraOrbit「行为模块」方块上按下右键,这时会出现一个选单,然后在选单里选择Edit parameters。这个动作将会开启一个对话框,这个对话框能让您指定该camera所要锁定的目标。

? 点选按键(Eyedropper button)

3. 运算绘制场景。

4. 让New Camera锁定在角色(执行CameraOrbit)。

5. 运算绘制场景(Render the scene)。

6. 回到第3步(以便在每一个新的Frame绘制之前都能重新执行CameraOrbit)。

步骤4:观察所设定的「行为模块」如何运作(Understanding how behaviors basically work)在学习如何创造「行为模块流程」之前,我们得花点时间搞清楚「行为模块」是如何运作的。

基本上,所谓的「行为模块」就是一些执行程序中的组件,当其被触发激活时,就会展开特定的作业与效果。这就是它们「输入端」(inputs)(位于每个『行为模块』的左侧)的作用:「输入端」(inputs)接收以事件为基础的讯号(event-based signals),并负责触发该「行为模块」激活之后一连串的处理程序。

某些「行为模块」或许需要设定一些参数以执行它的工作。这些参数能够藉由一群称为「参数输入插脚」(input parameter pins)的小点来输入与控制,您可以在「行为模块」方块的上方找到这些「参数输入插脚」。

一旦某个「行为模块」完成它所负责的任务,它将会传送一些事件基础讯号出去,透过位于盒子右方的「输出端」(outputs),然后接着触发连结到这些「输出端」的其它「行为模块」,继续执行它们的任务。

一个「行为模块」的执行结果或许还会输出一些「计算参数」(computing parameters),而这些「计算参数」则是透过盒子下方一些称为「参数输出插脚」(output parameter pins)传送出去的。

步骤5:在Schematic view 里新增「行为模块流程」(Creating the behavior flowchart in the Schematic view)

现在,让我们试试看以一些基本的规则来建立属于自己的「行为模块」流程。

我们可以看到在最左边的箭头状的Start尖端与「行为模块」SetAsActiveCamera之间的连结,这连

结所代表的意义是:当您按下Play

「输出端」送出一个讯号。若是我们希望接下来要执行CameraOrbit,我们得在SetAsActiveCamera 的「输出端」与CameraOrbit的「输入端」之间建立起连结才行。

? 点选Schematic view工具列中的Link选项。

? 在SetAsActiveCamera里选择output。

? 在CameraOrbit里选择input。

到这里,我们已经建立起下列的简单「行为模块」流程了:

1. 激活演出场景。

2. 执行SetAsActiveCamera。

3. 运算绘制场景。

4. 执行CameraOrbit。

注意我们刚刚所建立的连结上头显现的指示0/0:这代表该连结所会延续(delay)的时间。它告诉我们从SetAsActiveCamera的「输出端」传送到CameraOrbit的「输入端」需要花费0个Frame的时间。换句话说,SetAsActiveCamera与CameraOrbit两个动作在以Frame为执行单位里已经被串成一个执行程序。

? 按下状态区里的Play按钮,以激活演出场景。

如您所见,现在New Camera变成了active camera(Virtools以此camera为最起始的视点,算出整个场景),目前此camera正锁定在角色上。

要是您使用数字键盘上的方向键让该角色在场景里四处移动一下,您会发现New Camera并没有跟着角色而动。别担心,看看我们刚建立的流程:原因出在于我们只要求该camera在开始演出场景时锁定角色一次而已。

? 按「Restore Initial Condition」(回复初始条件)按钮

按键,再次激活演出场景。

正如您所看到的,现在camera再一次地对准了目标角色。当然啦,要是您现在将角色移开的话,camera是还不会跟着走的。

? 按「Restore Initial Condition」(回复初始条件)按钮

要想让camera持续锁定追踪该角色,我们必须在每个frame运算前都执行一次CameraOrbit才行。

要达到这个效果,我们得在它的「输出端」和「输入端」间建立起一道延续值为1个Frame的连结。

如此,「行为模块」CameraOrbit将会在每个新的Frame开始执行时,重复执行一次。

? 在Schematic view工具列里点选Link指令。

? 先在CameraOrbit里选择output。

? 再将鼠标移向右边,并轻击一下以创造一个连结控制点(link control point)。

? 如下页所示般,轻击鼠标,继续创造另外两个连结控制点。

? 按下CameraOrbit的「输入端」。

? 按下Restore Initial Condition

按钮,重新播放一次演出场景。

我们发现camera已经会追踪锁定移动中的角色了,因为「行为模块」CameraOrbit在每个frame绘制之前都会被重新执行一次。按下Schematic工具列上的Trace按钮以激活Trace模式,并实时地观察执行中的「行为模块」:您会看到以红色的高亮度显示着的「行为模块」CameraOrbit正一次又一次不断地执行着。

恭喜啦!您已经在Schematic view里创作了自己的第一个「行为模块」流程了。

在下一课中,我们将让您知道,当您能将Schematic view运用自如的时候,Virtools能够展示多么强大的威力!

记得要储存您辛苦完成的作品哦,因为您将会于下一课里在上头继续增添新的东西。只要用第2课里所学到的Virtools Player就可以随时观赏您的得意作品了!

L ESSON 4 障碍物回避的处理

这一课里,我们将教您如何为您的角色附加上基本的障碍物回避功能,使用到的是「碰撞侦测行为模块」与「属性设定」。

在Virtools里要处理障碍物回避的方式,其中之一就是利用Virtools所提供的「碰撞总管」(Collision Manager),「碰撞总管」会自动替您计算所给定的3D对象间会产生碰撞与否,是个很方便的工具。

要达到这个效果,我们需赋予角色叫做Prevent Collision的「行为模块」。一旦激活,这个「行为模块」会询问「碰撞总管」相关的信息,以决定该角色会跟哪些3D对象产生碰撞行为。若有任何碰撞被侦测到,这个「行为模块」将会让角色稍稍后退,以避免直接撞击。

要执行碰撞侦测测试,您的「碰撞总管」得要有一张会发生碰撞的障碍物清单才行。我们必须指定出场景中会发生碰撞的3D对象,并将其列入障碍物清单里头。要这样做,我们得将这些对象一一挑出来,并且在个别对象上头贴上「障碍物」(obstacle)的属性。所谓的属性(Attributes),其实还是一些特定的参数,您可以将它们贴到场景里的个别组件上,用来给它们一些指定的特性。在这一课里,我们只会用到「障碍物」(obstacle)属性(可被碰撞侦测引擎所解读),其它还有许多不同的属性能够被贴在组件上头(像是角色的『生命值』、物体的『重量』等等),我们有机会再做介绍。

步骤1:将计算机设定为潜在障碍物属性(Declaring the computer as a potential obstacle using attributes.)

? 轻击Level Manager卷标。

? 从Global资料夹里打开3D Objects子资料夹。

? 从3D Layout工具列上点取Select tool

? 在Level Manager里的New computer上按下滑属右键,并从选单里选取Add Attributes。

? 这个动作开启了Add Attribute对话盒。

? 「碰撞总管」Collision Manager上单击鼠标,以开启对应的属性目录。

? 选取Fixed Obstacle。

? 点取Add Selected。

? 点取Close。

您刚已经成功地将Fixed Obstacle的属性给附加在计算机上了。这台计算机目前已经被「碰撞侦测引擎」登录为一个潜在的障碍物了。

步骤2:应用Prevent Collision(Applying the Prevent Collision.)

? 在开始将该「行为模块」应用到角色上面之前,先按下status bar上的Play

按钮,暂停演出的进行(注意不要按到Restore Initial Condition

? 在Schematic view里,您将可以很轻松且可视化地辨识所有script里的「行为模块」,只要轻轻地点选代表该「行为模块」的盒子就行了,甚至是要任意拖动它们都不是问题。

正如您所能看到的,「行为模块」PreventCollision并不像script里的其它两个「行为模块」般以亮

灰色显示。这告诉您在您点取Restore Initial Condition

按钮,再次激活场景的演出,跳过「行为模块」PreventCollision的执行:您将会发现角色仍然无视于障碍物的存在,轻松地穿过面前的书桌,如入无人之境。

? 点取RestoreInitialCondition

按钮,让场景再次激活。这一回角色就不再会穿过桌子,而是乖乖地停在桌前过不去了。

相关主题
文本预览
相关文档 最新文档