-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCreate Roads Square.py
More file actions
105 lines (80 loc) · 4.14 KB
/
Create Roads Square.py
File metadata and controls
105 lines (80 loc) · 4.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import os, RLPy, math
from winreg import *
import os
def UpdateProp(prop, x, y, rotationValue):
#-- Get Transform Control and Data --#
ts_control = prop.GetControl("Transform")
ts_data_block = ts_control.GetDataBlock()
#-- Time 2s set X transform Key to 300 --#
ts_data_block.SetData("Position/PositionX", RLPy.RTime(0), RLPy.RVariant(x * 1000))
if (rotationValue < 0):
#-- Set Rotation Z
ts_data_block.SetData("Rotation/RotationZ", RLPy.RTime(0), RLPy.RVariant(rotationValue * RLPy.RMath.CONST_DEG_TO_RAD))
if (y > 0):
#-- Set Rotation Y
ts_data_block.SetData("Position/PositionY", RLPy.RTime(0), RLPy.RVariant((y * 1000) * -1))
Registry = ConnectRegistry(None, HKEY_LOCAL_MACHINE)
RawKey = OpenKey(Registry, r"SOFTWARE\Reallusion\iClone\7.0")
ic_template_path = os.path.abspath(QueryValueEx(RawKey, "Template Data" )[0])
# Load Box_001.iProp
RLPy.RFileIO.LoadFile("C:\\Users\\Public\\Documents\\Reallusion\\Template\\iClone 7 Template\\iClone Template\\Props\\City Elements\Floors\\Road\\B064C_Road-01.iProp")
propName = "Road-01"
prop = RLPy.RScene.FindObject(RLPy.EObjectType_Prop, propName)
prop.SetName("Road")
for x in range(1, 10):
prop2 = prop.Clone()
prop2.SetName("Road" + str(x + 1))
UpdateProp(prop2, x, 0, 0)
for x in range(1, 10):
prop2 = prop.Clone()
prop2.SetName("Road" + str(x + 10))
UpdateProp(prop2, 10, x, -90)
for x in range(1, 11):
prop2 = prop.Clone()
prop2.SetName("Road" + str(x + 20))
UpdateProp(prop2, x -1, 10, -180)
for x in range(1, 10):
prop2 = prop.Clone()
prop2.SetName("Road" + str(x + 30))
UpdateProp(prop2, -1, x, -270)
# Load B064C_Road-05.iProp
RLPy.RFileIO.LoadFile("C:\\Users\\Public\\Documents\\Reallusion\\Template\\iClone 7 Template\\iClone Template\\Props\\City Elements\Floors\\Road\\B064C_Road-05.iProp")
propName = "Road-05"
cornerProp = RLPy.RScene.FindObject(RLPy.EObjectType_Prop, propName)
cornerProp.SetName("Corner1Road")
UpdateProp(cornerProp, -1, 0, 0)
cornerProp2 = cornerProp.Clone()
cornerProp2.SetName("Corner2Road")
UpdateProp(cornerProp2, 10, 0, -90)
cornerProp3 = cornerProp.Clone()
cornerProp3.SetName("Corner3Road")
UpdateProp(cornerProp3, 10, 10, -180)
cornerProp4 = cornerProp.Clone()
cornerProp4.SetName("Corner4Road")
UpdateProp(cornerProp4, -1, 10, -270)
# SUV White
RLPy.RFileIO.LoadFile("C:\\Users\\Public\\Documents\\Reallusion\\Template\\iClone 7 Template\\iClone Template\\Props\\Interactive Vehicles Series\\SUV\\SUV White.iProp")
suv = RLPy.RScene.FindObject(RLPy.EObjectType_Prop, "SUV_White")
#-- Get Transform Control and Data --#
ts_control = suv.GetControl("Transform")
ts_data_block = ts_control.GetDataBlock()
#-- Move into inside lane --#
ts_data_block.SetData("Position/PositionY", RLPy.RTime(0), RLPy.RVariant(-150))
#-- Move to the end of the road --#
ts_data_block.SetData("Position/PositionX", RLPy.RTime(10000), RLPy.RVariant(9200))
#-- Turn Right --#
rotationValue = -90
ts_data_block.SetData("Rotation/RotationZ", RLPy.RTime(9940), RLPy.RVariant(0))
ts_data_block.SetData("Position/PositionY", RLPy.RTime(9940), RLPy.RVariant(-150))
ts_data_block.SetData("Position/PositionX", RLPy.RTime(10800), RLPy.RVariant(9840))
ts_data_block.SetData("Position/PositionY", RLPy.RTime(10800), RLPy.RVariant(-768))
ts_data_block.SetData("Rotation/RotationZ", RLPy.RTime(10800), RLPy.RVariant(rotationValue * RLPy.RMath.CONST_DEG_TO_RAD))
ts_data_block.SetData("Position/PositionY", RLPy.RTime(20000), RLPy.RVariant(-9200))
#-- Turn Right Again--#
rotationValue = -180
ts_data_block.SetData("Rotation/RotationZ", RLPy.RTime(19940), RLPy.RVariant(0))
ts_data_block.SetData("Position/PositionY", RLPy.RTime(19940), RLPy.RVariant(-150))
ts_data_block.SetData("Position/PositionX", RLPy.RTime(20800), RLPy.RVariant(9840))
ts_data_block.SetData("Position/PositionY", RLPy.RTime(20800), RLPy.RVariant(-768))
ts_data_block.SetData("Rotation/RotationZ", RLPy.RTime(20800), RLPy.RVariant(rotationValue * RLPy.RMath.CONST_DEG_TO_RAD))
ts_data_block.SetData("Position/PositionY", RLPy.RTime(30000), RLPy.RVariant(-9800))