1+ import unreal_engine as ue
2+ from unreal_engine .classes import CurveFloatFactory , CurveVectorFactory
3+ from unreal_engine .structs import RichCurve , RichCurveKey
4+ import time
5+
6+ factory = CurveFloatFactory ()
7+
8+ curve = factory .factory_create_new ('/Game/CustomFloatCurve' + str (int (time .time ())))
9+
10+ keys = []
11+
12+ for i in range (0 , 100 ):
13+ keys .append (RichCurveKey (Time = i , Value = i ))
14+
15+ # use ref() to set struct values on-the-fly
16+ curve .FloatCurve .ref ().Keys = keys
17+
18+ curve .post_edit_change ()
19+
20+ ue .open_editor_for_asset (curve )
21+
22+ factory = CurveVectorFactory ()
23+
24+ curve = factory .factory_create_new ('/Game/CustomVectorCurve' + str (int (time .time ())))
25+
26+ # one curve list for each axis
27+ keys_x = []
28+ keys_y = []
29+ keys_z = []
30+
31+ for i in range (0 , 100 ):
32+ keys_x .append (RichCurveKey (Time = i * 0.1 , Value = i * 0.1 ))
33+ keys_y .append (RichCurveKey (Time = i * 0.1 , Value = i * 0.1 ))
34+ keys_z .append (RichCurveKey (Time = i * 0.1 , Value = i * 0.1 ))
35+
36+ # FloatCurves is a native array, use property index (0=x, 1=y, 2=z)
37+ curve .set_property ('FloatCurves' , RichCurve (Keys = keys_x ), 0 )
38+ curve .set_property ('FloatCurves' , RichCurve (Keys = keys_y ), 1 )
39+ curve .set_property ('FloatCurves' , RichCurve (Keys = keys_z ), 2 )
40+
41+ curve .post_edit_change ()
42+
43+ ue .open_editor_for_asset (curve )
0 commit comments