UE4编辑器Python编程8——给Sequencer添加动画

# coding: utf-8

import unreal

def getOrAddPossessableInSequenceAsset(sequence_path='', actor=None):
    ''' 在sequence中为Actor添加unreal.SequencerBindingProxy '''
    sequence_asset = unreal.LevelSequence.cast(unreal.load_asset(sequence_path))
    possessable = sequence_asset.add_possessable(object_to_possess=actor)
    return possessable  # 返回unreal.SequencerBindingProxy

def addSkeletalAnimationTrackOnPossessable(animation_path='', possessable=None):
    ''' unreal.SequencerBindingProxy添加动画 '''
    # 加载动画资源
    animation_asset = unreal.AnimSequence.cast(unreal.load_asset(animation_path))
    # 给unreal.SequencerBindingProxy 添加Track
    animation_track = possessable.add_track(track_type=unreal.MovieSceneSkeletalAnimationTrack)
    # 给Track添加段
    animation_section = animation_track.add_section()
    # 设置段的范围
    animation_section.set_range(0, animation_asset.get_editor_property('sequence_length'))
    # 设置段上的动画
    params = unreal.MovieSceneSkeletalAnimationParams()
    params.set_editor_property('Animation', animation_asset)
    animation_section.set_editor_property('Params', params)

def addskeletalAnimationTrackOnActor_EXAMPLE():
    sequence_path = '/Game/GenericAssets/sequence'
    animation_path = '/Game/SkeletalMeshes/Animations/Character_Idle'
    world = unreal.EditorLevelLibrary.get_editor_world()
    actor_in_world = unreal.GameplayStatics.get_all_actors_of_class(world, unreal.SkeletalMeshActor)[0]
    possessable_in_sequence = getOrAddPossessableInSequenceAsset(sequence_path, actor_in_world)
    addSkeletalAnimationTrackOnPossessable(animation_path, possessable_in_sequence)
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值