I am trying to animate the parameters of Materials of an staticMeshActor in LevelSequence.
But what ever I do, I can only assign to the Material Element 0. How do I assign to different Material elements of the StaticMesh_Component, or how do loop to material and assign parameters for each Material Element?? Or if not how do I do that in BluePrint??
Here is my code:
def getactorfromWorld2(labelName,sequencePath,timeStart,timeEnd):
level = unreal.EditorLevelLibrary()
actor = level.get_all_level_actors()
for act in actor:
if act.get_actor_label() == labelName:
sequence_asset = unreal.LevelSequence.cast(
unreal.load_asset(sequencePath))
setact = sequence_asset.add_possessable(act)
print(setact)
setHidden = setact.add_track(track_type=unreal.MovieSceneVisibilityTrack)
setHiddensection = setHidden.add_section()
channels2 = setHiddensection.get_channels()
for channel2 in channels2:
print(channel2)
channel2.add_key( unreal.FrameNumber(timeStart),True,sub_frame=0,time_unit=unreal.SequenceTimeUnit.TICK_RESOLUTION)
channel2.add_key(unreal.FrameNumber(timeEnd*800), False, sub_frame=0, time_unit=unreal.SequenceTimeUnit.TICK_RESOLUTION)
setCompAct = sequence_asset.add_possessable(act.root_component)
animation_track2 = setCompAct.add_track(track_type=unreal.MovieSceneComponentMaterialTrack)
new_section = animation_track2.add_section()
new_section.add_scalar_parameter_key("Switch", unreal.FrameNumber(timeStart), 0)
new_section.add_scalar_parameter_key("Switch", unreal.FrameNumber(timeEnd*800), 1)
new_section.add_color_parameter_key("color",unreal.FrameNumber(timeStart),unreal.LinearColor(1,0,0,0) )
new_section.add_color_parameter_key("color",unreal.FrameNumber(timeEnd*800) ,unreal.LinearColor(0, 1, 0, 0)