热烈欢迎新会员,新手报到帖maxscript BUG和技巧收集场景助手3.0下载飞浪脚本零起点入门
返回列表 发帖

如何使用脚本语言来旋转物体的坐标轴

旋转物体的坐标轴使用什么 脚本命令


查了一下,有一个命令 RotatePivotOnly node (EulerAngles 0 0 35),但是这命令现在使用的时候会报错,提示变量类型不对


b=box pos:[75,75,0] -- create a 25x25x25 box, vertex 1 at [62.5,62.5,0] (world)
convertToMesh b -- convert box to mesh so we can access the vertex location

b.pivot=[50,50,0] -- move pivot only to [50,50,0]

RotatePivotOnly b (EulerAngles 0 0 35)


$Box:Box01 @ [75.000000,75.000000,0.000000]
$Editable_Mesh:Box01 @ [75.000000,75.000000,0.000000]
[50,50,0]
-- 类型错误: 调用需要函数或类,得到的是: undefined


谁知道错在哪,或者是不是这个命令现在失效了?

分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

  1. fn RotatePivotOnly obj rotation =
  2. (
  3.         local rotValInv=inverse (rotation as quat)
  4.         animate off in coordsys local obj.rotation*=RotValInv
  5.         obj.objectoffsetpos*=RotValInv
  6.         obj.objectoffsetrot*=RotValInv
  7. )
  8. RotatePivotOnly $ (EulerAngles 0 0 35)
复制代码

TOP

回复 2# hitman
请教一下,如果是我把物体打了个组,这个脚本会旋转模型,能不能有啥方法解决旋转组的坐标轴呢?谢谢~~~

TOP

回复 3# flypolly


   不晓得啊

TOP

回复 3# flypolly

可以用笨点的方法,先收集组里面物体的transform,后面再给回最初的transform给那些物体。
  1. fn RotatePivotOnly obj rotation =
  2. (
  3.         numchildren = obj.children.count
  4.                 if numchildren != 0 do
  5.                 (
  6.                   empty_ary = for x in obj.children collect x.transform
  7.                 )
  8.                 local rotValInv=inverse (rotation as quat)
  9.         animate off in coordsys local obj.rotation*=RotValInv
  10.         obj.objectoffsetpos*=RotValInv
  11.         obj.objectoffsetrot*=RotValInv
  12.                 if numchildren != 0 do
  13.                 (
  14.                   for x = 1 to obj.children.count do obj.children[x].transform = empty_ary[x]
  15.                 )
  16.                
  17. )
  18. RotatePivotOnly $ (EulerAngles 0 0 35)
复制代码

TOP

回复 5# longshaohua
感谢提供思路,谢谢~~~~

TOP

返回列表