分享

HPB

 Aspire_7 2017-05-10
为什么使用 HPB ?

在这一节中你会了解到更多关于C4D使用HPB系统的原因。不过,如果你是那种比较讨厌数学的艺术家的话,还是跳过这些玩意比较好。

很多人不太理解,为什么以Z轴(也就是Bank角度)进行的旋转操作是在物体系统进行,而以Y和X轴(Head和Pitch)的旋转操作总是在世界坐标系内进行。就动画来说,由于C4D系统内部就是使用的HPB系统,所以即使切换到XYZ旋转系统也没有太大作用。这个HPB系统就是所谓的于勒系统,在原理上来讲,HPB角度和物体本身的坐标轴并没有直接关系。

看下面的例子:

◇拿一个角度初始值是0/0/0的物体来说,首先绕Heading旋转30°,这是为了使物体系统的X和Z轴不再和世界坐标系的X和Z轴重合。把两个新的坐标轴取名为X’和Z’(Y’和Y还是重合的)。

◇对Pitch作20°的旋转,会使物体系统以自己本身的X’轴为轴心向上旋转,这个时候Z’就变成了Z’’,Y’变成了Y’’(现在的X’和X’’还是重合的)。

◇最后,我们绕Bank旋转-45°。这会让物体系统以Z’’为轴上翘。于是X’’就变成了X’’’,Y’’变成了Y’’’(这次Z’’和Z’’’重合了)。

◇在已经旋转的基础上,通过连续旋转H,P,B,现在物体的角度系统是30/20/-45. 这样可以看出,HPB旋转既不是以物体为中心也不是以世界坐标轴为中心的。之所以那个Bank和物体的一个坐标轴重合完全是巧合。于勒系统有很多种,每一个都有自己独特的旋转顺序。

我们还没有涉及到实际问题,于勒系统有一个最大的优点:物体的每次旋转之间是去耦合的,而绕物体坐标轴进行的旋转则不是这样。Heading不会影响bank, bank 不会影响 pitch. 想象一下如果物体的Y and Z位置总是会影响它的X 轴位置 ......

进一步阐明这个去耦合问题的例子:

这个例子应该能说明为什么C4D使用于勒系统。一旦你熟悉了这个系统,你会发现这个系统很容易使用。

◇假设某刻C4D不使用于勒角度。想象一下有一个点位于X轴,位置是100/0/0。

◇ 把这个点绕Y轴旋转90°之后,它就会刚好在Z轴的0/0/100位置。现在接着旋转,这次以X为轴转30°。这个点现在在ZY平面的0/87/50处。

◇ 到此为止,一切都还正常,可当你颠倒旋转顺序的话,事情就不一样了。还是那个点,在以X为轴旋转30°之后,本来位于100/0/0
的它还是呆在原位。在此基础上,你再以Y为轴旋转90°。这个点现在位于一个完全不同的位置0/0/100。

◇ 所以,由于旋转的数学特性,绕物体坐标轴的依序旋转是不可逆的(例如 A旋转+B旋转并不等于B旋转+A旋转)。这在进行动画的时候会导致不可预知的结果。

最后,如果你感觉本章的这一部分看起来比较复杂的话,那么你是对的。它的确是很复杂!

理解角度系统是不容易的,C4D是仅有的几个完全集成物体系统和本地坐标系统的软件。其他的软件往往在功能上作了妥协,也没有真正的物体系统,或者把建模和动画作为两个独立的部分,不然的话这些软件很难创建复杂的基于层级关系的动画。

C4D是一个完全整合的产品,它提供给你众多的令人着魔的可能性,和在其它软件中不可能实现的特性。让你的想象力来的更猛烈些吧!

什么是“世界坐标系”
  一个作品永远只能有一个“世界坐标系”,好比我们的地球只能有一个球面,这也是“世界坐标系统”命名的实际意义,而在“世界坐标系”上的物体就可具有它自己的坐标系,那就是“局部坐标系”,“局部坐标系统”再可有其“级连”关系,父、子系统为参照,最终以“世界坐标”为总参照,这是三维操作中最根本的空间概念。


下面是一个最简单的C4D练习,是我浏览C4D操作界面坐标后做的第一个练习,以初步体验一下专业坐标系统的操作情况。
  在这个例子中,地面就是“世界坐标系”,飞机有它自己的“局部坐标系”,如果你再增加几个飞机对象,来个海空大战,那么将会在一个“世界坐标系”上存在多个“局部坐标系”,在动画制作过程中,可以随时切换坐标系作为对象的“参照系”,不同的坐标系将直接影响你的操作结果。

  在编辑界面,当你选择了某个对象,如本例中的飞机,将会出现三条轴线:X轴(红色)、Y轴(绿色)、Z轴(蓝色),这就是“自身坐标系”,一般地,只要在场景中加入一个对象,那么就有了“世界坐标系”及“局部坐标系”,此时,该对象的父级坐标系就是“世界坐标系”。

  作为一个特例,当进行旋转操作时,就应该启用“HPB坐标系统”,该坐标系统独立于上述所有坐标系统,同时它也不同于“XYZ轴坐标系”的概念,HPB是H(转角)、P(转距)、B(倾斜)HPB坐标系统在C4D动画制作中占有重要地位。
  虽然我们在XYZ坐标轴上也能进行旋转操作,但在HPB轴上操作更适合于现实世界的结果,这一点你得在实际运用中才体会得到!

  当多个对象被选中后,C4D会出现“共享坐标系统”,在你选择的对象群的物理中心将出现共享坐标,便于你整体操作。
在实际制作中,我们为了使对象更具现实感,还可以创建“虚拟坐标系统”,或许你不甚明白,下例将体现这些坐标系统的作用,最后,我们还得认识一个“坐标管理器”,所有这些坐标系统,全部在该管理器中得到精密操作。
  “坐标管理器”可以数字化操作对象的位置,当你使用某些操作工具时如移动、缩放、旋转时,选用该管理器精确地改变元素的属性。
  值得引起注意的是,“坐标管理器”的数值列表是与所选工具紧密关连的,比如在摄影机工具状态下,它就能设置镜头焦距等等。
管理器可以选择“世界坐标”及“局部坐标”系,前者对象值相对“世界坐标”系,后者操作相对对象的父级坐标。
而旋转操作总是使用HPB坐标系统。


避免翻滚现象:当你想要让一个物体作绕其自身坐标轴旋转的动画的时候,也许你会发现物体其实在以一个看上去不相关的轴作旋转。完成这节之后,你会弄懂这种现象发生的原因以及如何去避免他。这统统都是因为HPB.对于我们来说最好的途径莫过于用事例来说明了。这里我们的目的是把一个立方体上翘一些然
后让他以其自身的Y 轴作旋转运动。不是像你想得那么容易,不信就试试看,嘿嘿。

选择 File > New 新建一个场景。

选择Objects>Primitive>Cube建立一个立方体。

在坐标管理器中,Rotation的下面,把B 设置成30°同时点Apply 应用此角度给立方体。
在animation 工具栏,禁用Position,Scale 的图标,以使只有Rotate的图标被选择。点Record. 如果还没有打开的话,打开时间线你可以看到已经有一个Rotation的序列自动创建了,同时在第0 桢为HPB 各建立了一个关键桢。 把时间条拉到第50桢然后点Record,会为每个旋转轨自动添加一个关键桢。打开时间线,在时间线的edit菜单上面,禁用vector selection选项。点击刚刚在50桢出为Rotation.H生成的关键桢,同时在属性编辑器里面把值设置成360度。点play观看动画。。
可以看到,尽管是在旋转,可立方体并非以自己Y 轴为旋转轴,而是在滚动。为什么呢?早先我们提到的,HPB 旋转是参照物体的父级系统的,立方体并没有父物体,取而代之的是,HPB 旋转就参照了世界坐标系统。所以造成了立方体不是以自身的Y 为轴而是以世界坐标系统得Y 为旋转轴。那么你如何才能让这个滚动的立方体以自身的Y 来作旋转呢?

选择Rotation.B轨的所有关键桢,在属性编辑器里面,把值都设置成0 度。创建一个空物体,把立方体设置成它的子物体。选择空物体,在属性便机器里面把B 设置成30度,点Apply 以便于上翘空物体和它的子物体。(就是立方体了)现在点play看一下动画。立方体如期的以自身的Y 为轴进行旋转,感谢它的父空物体提供了所需的旋转轴。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多