创建交互式船模拟

 
 
 

通过将海洋、摩托艇和一些热键组合在一起构成船的航行背景,您可以创建交互式摩托艇模拟场景。

  1. 选择“流体效果 > 海洋 > 创建海洋”(Fluid Effects > Ocean > Create Ocean) >

    将出现“创建海洋”(Create Ocean)选项窗口。

  2. 打开“附加到摄影机”(Attach to Camera)“创建预览平面”(Create Preview Plane),再单击“创建海洋”(Create Ocean)
  3. 选择船几何体。
  4. 选择“流体效果 > 海洋 > 生成摩托艇”(Fluid Effects > Ocean > Make Motor Boats)

    Maya 使用内置表达式模拟浮力效果,以此将定位器附加到船。

  5. 选择透视摄影机(透视),然后选择编辑 > 组(Edit > Group)。此操作将创建一个组,并将透视摄影机放入该组。
  6. “连接编辑器”(Connection Editor)“窗口 > 常规编辑器 > 连接编辑器”(Windows > General Editors > Connection Editor))中,请执行下列操作:
    • 将船定位器(步骤 4 中已创建)的“平移 X”和“平移 Z”属性分别连接到变换(海洋高度场)的“平移 X”和“平移 Z”属性。
    • 将定位器的“平移 X”和“平移 Z”属性连接到摄影机组(步骤 5 中已创建)的“平移 X”和“平移 Z”属性。

      这样,将沿着海洋平面将船的移动连接到海洋,并连接到摄影机的移动。

  7. 选择船定位器,并在“属性编辑器”(Attribute Editor)中打开“附加属性”(Extra Attributes)区域。
  8. 切换到着色模式。
  9. 播放场景并调整节流阀和舵设置。

若要加快模拟速度,则可使海洋着色器中的“波湍流”(Wave Turbulence)为零,而不是增加“频率数”(Num Frequencies)。增加“波高度”(Wave Height)也可以使模拟更动态。

热键

创建以下命令的热键,并使用它们来驱动船。

停船关键帧

setAttr locator1.throttle 0 setAttr locator1.rudder 0

增加节流阀

float $t = `getAttr locator1.throttle`; setAttr locator1.throttle ($t + 0.5);

减少节流阀

float $t = `getAttr locator1.throttle`; $t -= 0.5; if( $t < 0 ) $t = 0.0; setAttr locator1.throttle $t;

左舵

float $t = `getAttr locator1.rudder`; $t += 2.0; if( $t > 20 ) $t = 20; setAttr locator1.rudder $t;

右舵

float $t = `getAttr locator1.rudder`; $t -= 2.0; if( $t < -20 ) $t = -20; setAttr locator1.rudder $t;