查看: 1717|回复: 0
打印 上一主题 下一主题

【图文详解】Quest3d教程4:常用编程模块

[复制链接]
.    

3797

主题

11

听众

5万

积分

首席设计师

Rank: 8Rank: 8

纳金币
32328
精华
41

活跃会员 优秀版主 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2012-9-3 19:43:52 |只看该作者 |倒序浏览
(转载)常用编程模块的学习(if、trigger、switch……)

    掌握常用的编程模块是运用quest3d制作项目的基础,下面对这些常用的编程模块做详细的讲解。



    1、if(逻辑判断)

    左边第一个接口是条件判断,当其数值>=1时条件为真,右边连接的一切模块将被持续运行。

    2、Value(数值)

    数值模块储存整型或浮点型数值,可以把它当作是一个储存空间,里面储存的数值可以被更改也可以被提取。

    3、Trigger(触发)

    左边第一个接口是条件判断,当条件为真时,右边连接的一切模块将被运行一次,双击Trigger模块会弹出下图界面,可以在此设置判断条件。



    (1)、当选这项时,连接左边第一个模块的值只要发生一次变化,右边连接的所有模块将被执行一次。

    (2)、当选这项时,连接左边第一个模块的值增大一次,右边连接的所有模块将被执行一次。

    (3)、当选这项时,连接左边第一个模块的值减小一次,右边连接的所有模块将被执行一次。

    (4)、这是quest3d的默认项,可以根据值的变化趋向来判断触发。当选○6时表示当写入的值从=0趋向>0变化时条件为真;当选○7时表示写入的值从>0趋向=0变化时条件为真;选○5时两种情况有其一满足时就为真,右边连接的所有模块将被执行一次。

    4、UserInput(用户输入)

    人与计算机的交互必须要依托外部输入设备,UserInput就是用于实现交互功能的输入模块。



    如上图,可以选择与之交互的硬件设备,○1为键盘输入,可以用键盘上任何一个按键作输入控制,出现○6画面时可以点击键盘上的某一个按键,这样就能实现了键盘输入了。○2为鼠标输入(可以获取鼠标点击、鼠标坐标等);○3为组合按键输入(比如ctri+f);○4操作杆输入(比如手柄、方向盘等设备);○5键盘输入(与○1的区别在于它不用指定按键)。

   5、Set Value(赋值)

    执行这个模块可以把左边第一个接口的数值赋给右边连接的所有模块。



     (1)、Channel Caller(呼叫模块)

    顾名思义,Channel Callers模块只是简单地呼叫与它们连接的模块,任何类型的模块都能与之连接,并顺利被呼叫。 Channel Callers模块可被看作是一个分流器。

    (2)、If Else(判断)

    If Else左边第一个接口是条件判断,当其数值>=1时条件为真,第二个接口连接的模块将被持续运行。否则将运行第三个接口连接的模块将被持续运行。

    (3)、Expression Value(表达式)

    在Quest3D中可以使用Expression Value模块描述数学公式。它就像是一个高级计算器,也可以调用一些常用函数。可以作复杂的数学运算还可以作逻辑判断,上图的作用就是一个逻辑判断,当第一个接口连接的模块数值等于5时就输出一个1的值。更多的运用可以查看软件提供的帮助文档。

    一个Expression Value模块的实际值等于该模块内部公式的结果。该结果在属性窗口的‘Current Value’项下也有显示。



    括号可被用来定义公式中的优先运算权,下图中的两个公式不一样,因而运算结果也不同。



    与Expression Value模块的子连接相连值也可用作模块内部的部分公式。第一个子连接用字母‘A’表示,第一个子连接用字母‘B’表示,等等。





    下面的例子示范了Set Value, Expression Value 和Value模块的常用组合。在左边的例子中每按空格键一次,‘1’被加入‘Value’模块。



    Expression Values模块也可用作If 和 Trigger模块的条件输入,下图结构应被解读为“如果A等于B,则执行下面的模块”。

            

   上图中,条件‘A == B’被满足。

   多重公式可以在同一个模块内使用逻辑算子AND ( && ) 和 OR ( || )相互连接。



    在上图中,如果‘A==1 && B==2’则条件被满足,该公式应被解读为“如果A等于1,以及B等于2”。

   公式也可使用形式的条件。下图中,‘A==B ? C : D’公式应被解读为“如果A等于B,则结果C或者是D”。

       

   在右图中,条件‘A==B’被满足,运算的结果是‘C’值。

   (4)、Channel Switch(模块切换)

    Channel Switches模块使得您可以在不同的模块之间进行选择运行,类型几乎不限。一个Channel Switches模块必须首先设置为与其子模块相同的基本类型。



    可以根据第一个接口的数值选择运行右边连接的模块:一个‘0’值的结果是第一个变量被使用。而值‘1’为第二个被使用,往右依次加‘1’。



   (5)、5Set Text(设置文本)

    运行这个模块可以把左边Text模块内的文字赋给右边的Text模块。

    Envelopes(设置文本)

    Envelopes在动画方面能发挥重要作用,也还有其它更多的用途。一个Envelope模块中的图表是一个二维函数。可以在图表中插入一些坐标点,而Quest3D会在它们之间进行插补。





    上图中的Envelope图表呈现的公式为‘y = x²’。通过Envelope就可以将一个数值转换成另一个数值。换言之,Envelope就是用来描述两个值之间的关系。



    人物的动作混合设置可以基于行走速度进行处理。上图中的图表依比例确定了‘0’ 和 ‘5.0’之间速度输入值和‘0’ 到 ‘1.0’之间的合成输出值。该图表是非线性的。

    Envelopes也可以用来限制一个值的范围。



   上面的图表将输入值的输出值限制在‘-1’ 和 ‘1’之间。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-9-20 21:31 , Processed in 0.199093 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部