part_of_physical_animtion_0

嗯嗯,首先说下我可不是故意起这个标题的~

最近一直有在弄与角色相关的内容,继上次的 PhysX布料应用 之后,我就在想还要用什么方法让角色更加“生动”。玩过《Blade & Soul》的朋友多半对其中的女性角色映像深刻,那么在UDK中要如何实现BNS的“乳摇”效果呢?我尝试使用部分物理仿真。

若要对骨架网格物体启用部分物理仿真,首先需要给目标SkeletalMesh正确分配对应的PhysicsAsset(将要进行部分物理仿真的骨骼属性项 bAlwaysFullAnimWeight 勾选,如上图所示,本文中需要分别勾选左右胸部的骨骼)

其次需要分别设置SkeletalMesh组件中的属性 bHasPhysicsAssetInstance(具有物理资源实例)和 bEnableFullAnimWeightBodies(启用完全动画权重体)为TRUE。

注:若您对以上操作感到困扰,建议先阅读《UDN:PhysicalAnimation》《UDN:PhATUserGuide》

部分物理仿真必须结合UnrealScript才能生效:

//这并不是一份完整的、可以直接运行的代码,主要包含涉及“部分物理仿真”的代码//使用绿色字体的部分表示注释//...省略代码... simulated function PostBeginPlay() { Super.PostBeginPlay(); //检查是否存在目标SkeletalMesh以及目标SkeletalMesh是否具有物理资源实例 if (BodySkeletalMesh != none && BodySkeletalMesh.PhysicsAssetInstance != none)     { //下面使用了函数SetFullAnimWeightBonesFixed来解除目标SkeletalMesh上带有bAlwaysFullAnimWeight标志的固定(fixed),使其进入物理仿真状态 BodySkeletalMesh.PhysicsAssetInstance.SetFullAnimWeightBonesFixed(false,BodySkeletalMesh);   } } //...省略代码... defaultproperties { //...省略代码...//创建Body骨架网格物体组件 Begin Object Class=SkeletalMeshComponent Name=BodySkeletalMeshComponent SkeletalMesh=SkeletalMesh'BSA_People.BodySkeletalMesh.StartClothes_KunF_002' PhysicsAsset=PhysicsAsset'BSA_People.BodyPhAsset.B000_NoCloth_KunF_Physics' AnimTreeTemplate=AnimTree'BSA_People.BodyAnimTree.ATK_BladeMaster_Kun_AnimTree' AnimSets(0)=AnimSet'BSA_People.BodyAnimSet.Move_BladeMaster_JinF_Animset' AnimSets(1)=AnimSet'BSA_People.BodyAnimSet.Move_BladeMaster_Kun_AnimSet' bHasPhysicsAssetInstance=true    //具有物理资源实例 bEnableFullAnimWeightBodies=true     //启用完全动画权重体 bEnableClothSimulation=True bClothAwakeOnStartup=True BlockRigidBody=true //...省略代码... End Object BodySkeletalMesh=BodySkeletalMeshComponent Components.Add(BodySkeletalMeshComponent) //...省略代码... }

接下来运行游戏,不出意外的话凡是勾选了 bAlwaysFullAnimWeight 的部分将会以物理仿真在游戏中运行,本文中自然就是“乳摇”啦>_<。

最后说下:为了让仿真的拟真度足够高,通过更改 PhAT 编辑器中的刚体属性、刚体实例属性和约束属性,在游戏中多多测试以获得最佳效果。摇起来吧@_@