角色转换

角色创建流程,角色分成两个部分,骨骼和模型。

CONVERTING SKELETON

骨骼转换:

golaem群集使用专门的动画引擎,自动重拾目标,融合混合动作或者别的种类的形态。为了展示这些特性,动画引擎使用自身的展示角色和动作。包含了以下两个步骤:1.定义golaem骨骼,2.定义角色的物理属性。(角色定义,编辑有提到)。骨骼转换是通过角色创建工具的角色模式下骨骼面板来完成的。

DEFINING THE GOLAEM SKELETON

读取角色,一个绑定好的角色。选取根骨格,在角色编辑面板点击加载所选骨骼。(根骨格可以是别的骨骼的分支,但是这些父级的骨骼不能影响角色的位移旋转缩放,否则在模拟或者渲染的时候你会遇到不想看到的问题)


根据你的角色在maya中的朝向,选择角色定义的朝向轴。

golaem会创建一个locator来帮助你查看骨骼朝向是否正确,可以使用maya移动出来方便观察。如果你看不到character maker locater,确保你的显示参数是正确的,显示locator应该开启。还应该注意你可以控制骨骼大小,在显示/动画/关节大小页面。

如果骨骼被正确检测到,character maker locater应该显示一个与你角色骨骼相近的东西(也不是肯定就能显示相同的pose,就像后两张)。如果骨骼没有被正确的检测到,你可以修改检测方式( 查看这里 here)。注意有多种检测方式可以给出正确的结果,尽管每种方式都有不同。最好的检测模式就是给出相近结果的( Character Prerequisites.)

你会注意到骨骼底下还有个灰色平面,这代表了地面高度,应该调整到角色脚部位置(可以与角色底部骨骼不同)。地面高度通常用来适配在动画引擎中的脚和地面的关系。

创建骨骼投射:

当骨骼被正确设置时,点击自动计算骨骼投射,来在工作面板创建与你的角色骨骼对应的golaem骨骼节点,同时会创建Ik方向平面(locator上的白色平面就是)

检查骨骼投射:

在骨骼投射节点被创建之后,你应该注意到工作区的几个变化:

1.根节点被创建

2.根节点与脊柱相连

3.正确数量的肢体(例如,胳膊,腿)被检测到并与根节点或脊柱相连接

4.正确数量的效应器(例如,手指)被检测到并与对应的肢体相连

你可以检查角色主要概念( Character Main Concepts)来看每个节点的定义还有在多数角色中代表了什么。看角色创建器的工作区( Character Maker Main Workspace)来看各节点的详情定义,( Character Maker Controls)来查看如何添加/移除,连接节点。

如果你看手指骨骼,你会注意到自动映射会讲骨骼作为附加骨骼,另外一部分作为延伸。推荐的手指映射方式是将所有骨骼作为延伸来映射。选中手指之后会在左侧列表高亮显示节点包含的骨骼。

将附加骨骼解除映射,延伸骨骼的末端改为指尖。
检查IK方向平面:
ik朝向平面定义了骨链弯曲朝向。在保存角色文件前确认ik方向的正确很有必要,IK朝向平面很大程度取决于骨骼定义,并没有什么绝对的规则。然而以下案例可以满足多数角色设置。

点击关联按钮就能轻松调节方向

对于特殊的ik值,通过右键调出IK朝向面板进行详细设置,还可以使用检测映射工具来查看IK效果是不是正确的。

左侧是双膝没有平行弯曲,右侧是方向相反。

如果一些骨骼没有被算进golaem(可能是helper,旋转骨骼,或者别的一些遗留问题),这些骨骼应当被排除IK计算当中。否则,当播放骨骼的motion动画时,golaem可能会把这些骨骼计算出我们并不想要的结果(上图左侧排除,右侧没排除)
定义角色物理属性
后面有详细设置这里就简要说明一下

角色显示上的蓝色框体就是角色在解算时候的物理形态,为了加强可以使用重置物理属性,这将会重新自动计算这个模型骨骼的物理形态。

使用物理属性编辑,可以打开一张有着所有骨骼与详细属性的表格,双击表格可以进行编辑。在编辑之前,骨骼需要是物理化的(physicalize)

在character maker locator勾选show ragdoll maya primitive可以显示碰撞体的模型形态

左侧是默认物理形态的线框显示,中间是maya显示,右侧是原体显示。

现在就可以使用maya物体来修改角色物理形态属性了,修改完物理属性注意保存角色设置,如果镜像是勾选的那么肢体会有镜像映射效果(参数啥的)BEST PRACTICE FOR MAPPING FINGERS WITH GOLAEM
手部绑定练习,尽管golaem自动检测可以正确绑定手指,但还是有一些细节是不能通过自动检测解决的,下面就要说怎么修复这些问题。
自动绑定结果:

这种自动绑定有三个问题可以通过三步解决:
1.手指绑定使用的是附加(auxiliary)与延伸(extension)区域选择,我们只推荐手指部分选择延伸方式。
2.骨链中的每块骨骼都用上了,但是在动画中经常忽略指尖部分(指尖通常为了做IK,或者只是显示手指的真实长度)
3.IK面朝向错误
将骨骼转为延伸部分绑定,右键节点可以快速转换

移除骨链中的指尖部分,解除末端重新选


修复IK朝向,如果自动定义朝向有问题要在初始pose设置好朝向。


DEFINING GEOMETRY

定义几何体:golaem可以列出角色相关的几何体模型和着色器(shaders),并定义这些模型如歌在实体上分布显示

1.定义可用角色资产(模型和材质)

2.创建渲染类型(几何体的再分类型,一旦定义了,渲染类型就可在实体类型中加载选择)

还是使用角色创建器的几何体面板创建

在资产面板可以将模型导入进来,进行分组,渲染等属性的编辑,最后导出新的格式gcg,之前是fbx

如果同部位有多种选择,可以开启控制器调整选项在群集中出现的比例。注意保存角色文件。

如果装备等有空置的情况,可以建立空的包,连接到组里。

如果手动添加骨骼对应模型,一定要注意在拾取骨骼时注意初始缩放都要为1才行!!!!!!!,这是个神坑!!!!!!,在处理过后重新加载角色文件

如果有多种模型搭配预设,要在实体属性当中的渲染属性内添加进去

还可以给模型添加材质参数,给到希望有参数的模型后(保存角色文件)

材质编辑器中可以通过对应节点读回参数信息

就是读取每个实体上的随机属性,控制实体所读的材质


材质差异就可以完成(只做颜色校正在视图看不太出来,渲染能看出来差异)

DEFINING THE CHARACTER ASSETS


定义角色资产,从Maya中按照模型层级关系在面板中导入资产。

选中模型点击导入按钮 。每个transform节点会作为资产组节点导入进来,每个mesh作为mehs资产节点。着色组和着色器分别作为着色组节点(shading group nodes)和着色资产节点(shader asset nodes)导入。用户定义的着色数据(user data shaders)作为着色属性节点(shader attribute nodes)。

通过重新连接来对导入的模型进行重新排序,每个mesh资产代表了角色包含的一个mesh,mesh资产代表着角色几何体文件中同名称的mesh。想要在maya中渲染的话,就必须包含着色组或者着色器(取决于不同的渲染器)来对应角色文件当中的同名的着色组合着色资产节点。也常常使用用户定义着色数据来控制着色器(shader)的属性,这样的话在渲染的时候就需要匹配上才行。

ASSET GROUP WEIGHTS

资产组权重:

如果资产组设置了权重,在渲染时只有一个子分支会根据权重选出,否则会户选择这个组内所有子节点。权重可以制造出不同的mesh组合来创建出不同的视觉搭配。

点击按钮开启资产分组节点的权重选项。

这里创建了空的资产组连接到了一个开启了权重选择的节点上,有的着色组连接了用户定义参数。

EXPORTING THE GEOMETRY FILE

导出几何体文件

角色节点参考了这个角色的所有几何体文件(gcg或者fbx文件)。多数情况只用到一个几何体文件,储存了角色文件定义的和模拟骨骼绑定的mesh。


####点击按钮,导出修改过后的几何体文件。

会弹出窗口选择保存的格式。


添加完几何体文件过后,会有boundingBox自动生成在角色根骨格上,边界大小应该是是配到角色几何体并缩放过的(算出角色潜在活动空间,比如人物可以举起手臂,那么头顶就应该留出一米左右的空间),在视图中可以查看改变创建的几何体的宽高,注意保存。如果路径改变,点击按钮选择文件。

CREATING RENDERING TYPES

选中rendertype,点击按钮,将当前的设置创建为一个渲染类,可以设置对应资产组的权重分配,最后点击按钮,进行角色文件保存。


最后在作为实体角色导入之后可以在渲染属性面板选择这个实体所采用的renderType以及权重大小。如果没有选定渲染种类,将会按照默认权重进行渲染。

SETTING UP YOUR CHARACTER FOR PHYSICS

SETTING CROWD UNITS

设置角色的物理信息,先设置好群集计算的单位大小来避免奇怪问题出现。常用golaem的话你就不应该改变maya线性工作单位大小(默认厘米)。如果改了的话,很多动力学的东西在maya内都会出错。就算是单位设置为厘米,但是动力学的重力、物体的受力大小被缩放到米的时候

照样错。

TESTING YOUR CHARACTER'S RAGDOLL

在编辑面板打开角色文件,能看见自动创建的CharacterMakerLocator可以再显示出物理形态。


创建完实体之后添加物理化的motion,结束触发器选5帧后触发,此时播放的效果是自动设置的物理参数效果

选择物理化骨骼,你可以注意到角色骨骼周围的物理形状,这些使用在物理解算上的,我们要对这些形体进行调整适配角色来获得更好的效果。

点击物理属性编辑,打开面板表格点击进行编辑


打开Character maker locator的布娃娃maya原体显示,如果在物理面板修改了骨骼的解算形状,要保存之后刷新显示


可以直接编辑位置形状大小等信息,注意保存文件后才能刷新显示或者计算,如果多个角色使用的相同的形态,可以在角色编辑下使用同一套物理设置。

EDIT JOINTS LIMITS

编辑关节限制,在物理面板可以看到旋转角度限制,如果没有在视图看到角度限制的gizmo可以到CharacterMakerLocator上勾选显示限制并提高显示半径。


属性列表可以按住shift框选进行批量修改参数,如果关节设置数值都是0那么这个角色就更趋近于刚体关节(硬)


第一张是golaem自动计算的角度限制,第二张是调整过的。

以下是调整参数时的几点建议:

1.为了方便查看请,勾选隐藏非物理解算骨骼,如果可以的话也隐藏Maya物理形态

2.根骨格数值(这里是盆骨位置)不应设置数值

3.当调节骨链中的骨骼参数时,要考虑总额是不是合理。

举个例子:当调节脊椎参数时,如果有2-3根骨头的话每个骨节弯曲45度是合理的,但是如果你有六根解算用的骨骼然后你还是设置的45度,那你的角色可以弯曲6*45=270度,这是你不会想要的

当定义关节数值限制的时候,取决于你角色骨骼定义,你能注意到关节数值限制显示不同的的数值,这并不影响你设置的具体数值

EDITING PHYSICS SHAPES COLOR

编辑物理形态颜色,形态颜色可以用在之后物理碰撞触发器上

通常着色是左右颜色区分,或者上下颜色区分。这样你就可以知道碰撞发生在左侧/右侧,胳膊/腿。



在实体的显示设置中调节显示颜色权重,0的话显示我们调节的物理颜色,1的话是实体显示的颜色

DEBUGGING THE PHYSICS PROPERTIES

碰撞属性检测:当角色出现问题的时候,第一件事就是打开碰撞显示的locator,这可以显示出发送到PhysX的真实信号。

由于这种排错方式是执行后反馈,所以你需要播到下一帧才能看到。这是你看到角色物理模拟反馈和当前实际模拟效果又些许不同的原因。

通常不会忘记储存修改过的角色文件,或者连接错了角色。用这种方式你就可以知道并没按你想的去模拟,你可以检测到非相邻骨骼的重叠。注意你还可以放大关节限制和接触点显示。如果你在进行模拟的时候看到了器官的角色绑定效果,你也应该设置到物理形态模式来查看模拟是怎么完成的或者物理形态是不是卡在一个位置


在physics节点里开启碰撞显示,调高限制值的显示方便观察。

ADDING A MOVABLE PROPS TO A CHARACTER

添加角色可移动道具:如何添加绑定在一根骨骼上可做动画的道具,所有的golaem行为都支持这种设置。但如果你只需要绑定在角色上,并不需要配合golaem行为或者动画,使用覆盖绑定就行(blind data)

通常添加角色手中武器的时候,使用位移动画来调节武器位置,问题是这种位移动画golaem群集不支持。为了解决这个问题需要将位移动画转为旋转动画帧,左侧的是位移动画帧,右侧添加两根辅助骨骼之后用旋转动画代替了位移动画。

角色方面的修改有以下几步:

1.首先你需要创建新的骨骼层级(旋转替换位移)

2.准备一个IK系统来将之前的位移转换到新系统的旋转上

3.添加旋转约束让旧的骨骼转到新的上

4.将旧的蒙皮转到新骨骼上,之后保存角色。

之后是动画导出:

新的骨骼曾琦应该由旧的骨骼动画通过IK来驱动



先创建新的骨骼层级,这里是用一套新的骨骼替代旧的。之后选中两段骨骼,这里是层级的根骨骼,和次级末端骨骼,然后创建新的IK。



然后作为子级放到旧的骨骼层级下,然后将数值调0,旋转和位移,这样新的IK系统可以跟着旧骨骼动画移动了。

虽然新的武器骨骼位置是对的,但是在原始武器移动之后位置出现问题,可以使用旋转约束来修正这个问题,先选旧骨骼的再选新的添加约束。约束是加载武器上不是末端。

然后重新为武器做骨骼蒙皮,但是保留旧的骨骼动画来驱动新骨骼。

然后导出修改过的角色,将IK系统作为一个节点添加进来,只用绑定IK初始端到武器端就行。

如果动画是新骨骼制作的就没啥事了,如果是旧的(多数情况),就先要导入旧的动画进来适配新骨骼,会发现转换质量并不是很好,这是因为一些骨骼节点适配的不是很好(就是修改部位的),要确保新骨骼没有自身的位移动画产生,然后这种报错就不会影响实际模拟,只要底下武器匹配绿色通过多就行。

NON UNIFORM SCALE USING SQUASH AND STRETCH

使用挤压拉伸完成非统一缩放。

非统一缩放的演示

GET YOUR CHARACTER READY FOR SQUASH AND STRETCH

在角色编辑器打开角色,设置关节的拉伸挤压数值。

CREATE YOUR STRETCH GMO

在场景中导入你的角色模型,并缩放在角色编辑器中调整过的位置。再回到角色编辑器,到动作栏,选择角色根骨格,点击从骨骼导入动作然后保存动作文件。

USE YOUR STRETCH GMO IN SIMULATION

为了能使用带缩放的动作,我们选择动作融合模式,添加Motion行为并添加带挤压拉伸的动作,设置好融合权重并添加随机效果。