UDN
Search public documentation:
DevelopmentKitGemsCreatingAModularPawnCH
English Translation
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
如何创建模块化 pawn
于 2011 年 6 月对 UDK 进行最后测试
可以与 PC 和 iOS 兼容
概述
方法
- 根据 actor 的多骨架网格物体组件 - 这种方法灵活性最好,因为它可以对这个骨架网格物体运行时间更改。然而,这种方法可能会影响性能,因为每个骨架网格物体 actor 都会成为另一个绘制调用。
- 合成网格物体 (只适用于授权用户) - 这种方法可以合成网格物体,使用多个网格物体生成一个单独的网格物体。这种方法将不会在这篇说明文章中进行说明。
相关主题
编写模块化 pawn 脚本
class ModularPawn extends UTPawn Placeable; // 表示头部的骨架网格物体。父代骨架网格物体组件。 var(ModularPawn) const SkeletalMeshComponent HeadSkeletalMesh; // 表示人体躯干的骨架网格物体。头部骨架网格物体组件的子代。 var(ModularPawn) const SkeletalMeshComponent TorsoSkeletalMesh; // 表示手臂的骨架网格物体。头部骨架网格物体组件的子代。 var(ModularPawn) const SkeletalMeshComponent ArmsSkeletalMesh; // 表示大腿的骨架网格物体。头部骨架网格物体组件的子代。 var(ModularPawn) const SkeletalMeshComponent ThighsSkeletalMesh; // 表示战靴的骨架网格物体。头部骨架网格物体组件的子代。 var(ModularPawn) const SkeletalMeshComponent BootsSkeletalMesh; // 表示左肩垫的骨架网格物体。头部骨架网格物体组件的子代。 var(ModularPawn) const SkeletalMeshComponent LeftShoulderPadSkeletalMesh; // 表示右肩垫的骨架网格物体。头部骨架网格物体组件的子代。 var(ModularPawn) const SkeletalMeshComponent RightShoulderPadSkeletalMesh; defaultproperties { // 删除 UTPawn 的已定义骨架网格物体 Components.Remove(WPawnSkeletalMeshComponent) // 创建动画序列 Begin Object class=AnimNodeSequence Name=AnimNodeSequence End Object // 创建头部骨架网格物体组件 Begin Object Class=SkeletalMeshComponent Name=HeadSkeletalMeshComponent bCacheAnimSequenceNodes=false AlwaysLoadOnClient=true AlwaysLoadOnServer=true bOwnerNoSee=true CastShadow=true BlockRigidBody=true bUpdateSkelWhenNotRendered=false bIgnoreControllersWhenNotRendered=true bUpdateKinematicBonesFromAnimation=true bCastDynamicShadow=true RBChannel=RBCC_Untitled3 RBCollideWithChannels=(Untitled3=true) LightEnvironment=MyLightEnvironment bOverrideAttachmentOwnerVisibility=true bAcceptsDynamicDecals=false AnimTreeTemplate=AnimTree'CH_AnimHuman_Tree.AT_CH_Human' bHasPhysicsAssetInstance=true TickGroup=TG_PreAsyncWork MinDistFactorForKinematicUpdate=0.2 bChartDistanceFactor=true RBDominanceGroup=20 MotionBlurScale=0.0 bUseOnePassLightingOnTranslucency=true bPerBoneMotionBlur=true // 设置动画节点序列,以便我们可以测试这个动画。 Animations=AnimNodeSequence End Object HeadSkeletalMesh=HeadSkeletalMeshComponent Components.Add(HeadSkeletalMeshComponent) // 创建人体躯干骨架网格物体组件 Begin Object Class=SkeletalMeshComponent Name=TorsoSkeletalMeshComponent bCacheAnimSequenceNodes=false AlwaysLoadOnClient=true AlwaysLoadOnServer=true bOwnerNoSee=true CastShadow=true BlockRigidBody=true bUpdateSkelWhenNotRendered=false bIgnoreControllersWhenNotRendered=true bUpdateKinematicBonesFromAnimation=true bCastDynamicShadow=true RBChannel=RBCC_Untitled3 RBCollideWithChannels=(Untitled3=true) LightEnvironment=MyLightEnvironment bOverrideAttachmentOwnerVisibility=true bAcceptsDynamicDecals=false bHasPhysicsAssetInstance=true TickGroup=TG_PreAsyncWork MinDistFactorForKinematicUpdate=0.2 bChartDistanceFactor=true RBDominanceGroup=20 MotionBlurScale=0.0 bUseOnePassLightingOnTranslucency=true bPerBoneMotionBlur=true // 将动画组件赋给头部骨架网格物体组件。这样可以保证 // 将 pawn 作为一个骨架网格物体组件一样进行处理。 ParentAnimComponent=HeadSkeletalMeshComponent // 将阴影父代组件赋给头部骨架网格物体组件。可以使用它加快 // 渲染这个 pawn 的阴影的速度,以防阴影发生折叠现象。 ShadowParent=HeadSkeletalMeshComponent End Object TorsoSkeletalMesh=TorsoSkeletalMeshComponent Components.Add(TorsoSkeletalMeshComponent) // 创建手臂骨架网格物体组件 Begin Object Class=SkeletalMeshComponent Name=ArmsSkeletalMeshComponent bCacheAnimSequenceNodes=false AlwaysLoadOnClient=true AlwaysLoadOnServer=true bOwnerNoSee=true CastShadow=true BlockRigidBody=true bUpdateSkelWhenNotRendered=false bIgnoreControllersWhenNotRendered=true bUpdateKinematicBonesFromAnimation=true bCastDynamicShadow=true RBChannel=RBCC_Untitled3 RBCollideWithChannels=(Untitled3=true) LightEnvironment=MyLightEnvironment bOverrideAttachmentOwnerVisibility=true bAcceptsDynamicDecals=false bHasPhysicsAssetInstance=true TickGroup=TG_PreAsyncWork MinDistFactorForKinematicUpdate=0.2 bChartDistanceFactor=true RBDominanceGroup=20 MotionBlurScale=0.0 bUseOnePassLightingOnTranslucency=true bPerBoneMotionBlur=true // 将动画组件赋给头部骨架网格物体组件。这样可以保证 // 将 pawn 作为一个骨架网格物体组件一样进行处理。 ParentAnimComponent=HeadSkeletalMeshComponent // 将阴影父代组件赋给头部骨架网格物体组件。可以使用它加快 // 渲染这个 pawn 的阴影的速度,以防阴影发生折叠现象。 ShadowParent=HeadSkeletalMeshComponent End Object ArmsSkeletalMesh=ArmsSkeletalMeshComponent Components.Add(ArmsSkeletalMeshComponent) // 创建大腿骨架网格物体组件 Begin Object Class=SkeletalMeshComponent Name=ThighsSkeletalMeshComponent bCacheAnimSequenceNodes=false AlwaysLoadOnClient=true AlwaysLoadOnServer=true bOwnerNoSee=true CastShadow=true BlockRigidBody=true bUpdateSkelWhenNotRendered=false bIgnoreControllersWhenNotRendered=true bUpdateKinematicBonesFromAnimation=true bCastDynamicShadow=true RBChannel=RBCC_Untitled3 RBCollideWithChannels=(Untitled3=true) LightEnvironment=MyLightEnvironment bOverrideAttachmentOwnerVisibility=true bAcceptsDynamicDecals=false bHasPhysicsAssetInstance=true TickGroup=TG_PreAsyncWork MinDistFactorForKinematicUpdate=0.2 bChartDistanceFactor=true RBDominanceGroup=20 MotionBlurScale=0.0 bUseOnePassLightingOnTranslucency=true bPerBoneMotionBlur=true // 将动画组件赋给头部骨架网格物体组件。这样可以保证 // 将 pawn 作为一个骨架网格物体组件一样进行处理。 ParentAnimComponent=HeadSkeletalMeshComponent // 将阴影父代组件赋给头部骨架网格物体组件。可以使用它加快 // 渲染这个 pawn 的阴影的速度,以防阴影发生折叠现象。 ShadowParent=HeadSkeletalMeshComponent End Object ThighsSkeletalMesh=ThighsSkeletalMeshComponent Components.Add(ThighsSkeletalMeshComponent) // 创建战靴骨架网格物体组件 Begin Object Class=SkeletalMeshComponent Name=BootsSkeletalMeshComponent bCacheAnimSequenceNodes=false AlwaysLoadOnClient=true AlwaysLoadOnServer=true bOwnerNoSee=true CastShadow=true BlockRigidBody=true bUpdateSkelWhenNotRendered=false bIgnoreControllersWhenNotRendered=true bUpdateKinematicBonesFromAnimation=true bCastDynamicShadow=true RBChannel=RBCC_Untitled3 RBCollideWithChannels=(Untitled3=true) LightEnvironment=MyLightEnvironment bOverrideAttachmentOwnerVisibility=true bAcceptsDynamicDecals=false bHasPhysicsAssetInstance=true TickGroup=TG_PreAsyncWork MinDistFactorForKinematicUpdate=0.2 bChartDistanceFactor=true RBDominanceGroup=20 MotionBlurScale=0.0 bUseOnePassLightingOnTranslucency=true bPerBoneMotionBlur=true // 将动画组件赋给头部骨架网格物体组件。这样可以保证 // 将 pawn 作为一个骨架网格物体组件一样进行处理。 ParentAnimComponent=HeadSkeletalMeshComponent // 将阴影父代组件赋给头部骨架网格物体组件。可以使用它加快 // 渲染这个 pawn 的阴影的速度,以防阴影发生折叠现象。 ShadowParent=HeadSkeletalMeshComponent End Object BootsSkeletalMesh=BootsSkeletalMeshComponent Components.Add(BootsSkeletalMeshComponent) // 创建左肩垫骨架网格物体组件 Begin Object Class=SkeletalMeshComponent Name=LeftShouldPadSkeletalMeshComponent bCacheAnimSequenceNodes=false AlwaysLoadOnClient=true AlwaysLoadOnServer=true bOwnerNoSee=true CastShadow=true BlockRigidBody=true bUpdateSkelWhenNotRendered=false bIgnoreControllersWhenNotRendered=true bUpdateKinematicBonesFromAnimation=true bCastDynamicShadow=true RBChannel=RBCC_Untitled3 RBCollideWithChannels=(Untitled3=true) LightEnvironment=MyLightEnvironment bOverrideAttachmentOwnerVisibility=true bAcceptsDynamicDecals=false bHasPhysicsAssetInstance=true TickGroup=TG_PreAsyncWork MinDistFactorForKinematicUpdate=0.2 bChartDistanceFactor=true RBDominanceGroup=20 MotionBlurScale=0.0 bUseOnePassLightingOnTranslucency=true bPerBoneMotionBlur=true // 将动画组件赋给头部骨架网格物体组件。这样可以保证 // 将 pawn 作为一个骨架网格物体组件一样进行处理。 ParentAnimComponent=HeadSkeletalMeshComponent // 将阴影父代组件赋给头部骨架网格物体组件。可以使用它加快 // 渲染这个 pawn 的阴影的速度,以防阴影发生折叠现象。 ShadowParent=HeadSkeletalMeshComponent End Object LeftShoulderPadSkeletalMesh=LeftShouldPadSkeletalMeshComponent Components.Add(LeftShouldPadSkeletalMeshComponent) // 创建右肩垫骨架网格物体组件 Begin Object Class=SkeletalMeshComponent Name=RightShoulderPadSkeletalMeshComponent bCacheAnimSequenceNodes=false AlwaysLoadOnClient=true AlwaysLoadOnServer=true bOwnerNoSee=true CastShadow=true BlockRigidBody=true bUpdateSkelWhenNotRendered=false bIgnoreControllersWhenNotRendered=true bUpdateKinematicBonesFromAnimation=true bCastDynamicShadow=true RBChannel=RBCC_Untitled3 RBCollideWithChannels=(Untitled3=true) LightEnvironment=MyLightEnvironment bOverrideAttachmentOwnerVisibility=true bAcceptsDynamicDecals=false bHasPhysicsAssetInstance=true TickGroup=TG_PreAsyncWork MinDistFactorForKinematicUpdate=0.2 bChartDistanceFactor=true RBDominanceGroup=20 MotionBlurScale=0.0 bUseOnePassLightingOnTranslucency=true bPerBoneMotionBlur=true // 将动画组件赋给头部骨架网格物体组件。这样可以保证 // 将 pawn 作为一个骨架网格物体组件一样进行处理。 ParentAnimComponent=HeadSkeletalMeshComponent // 将阴影父代组件赋给头部骨架网格物体组件。可以使用它加快 // 渲染这个 pawn 的阴影的速度,以防阴影发生折叠现象。 ShadowParent=HeadSkeletalMeshComponent End Object RightShoulderPadSkeletalMesh=RightShoulderPadSkeletalMeshComponent Components.Add(RightShoulderPadSkeletalMeshComponent) }