Files
gtav-src/tools_ng/wildwest/script/3dsMax/Cutscene/selectExpressionObjects.ms
T
2025-09-29 00:52:08 +02:00

289 lines
7.7 KiB
Plaintext
Executable File

--script to find any nodes in the scene which contain a float expression
-- Oct 2011
--Matt rennie
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
objWithExprArray = #()
controllersToInclude = #(
"Float_Expression",
"Controller:Float_Expression" ,
"SubAnim:RsSpring",
"SubAnim:LookAt_Constraint"
)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
fn sclXYZ obj =
(
for cont in controllersToInclude do
(
if (obj.scale.controller as string) == "SubAnim:RsSpring" then
(
appendIfUnique objWithExprArray obj
)
else
(
if (classof obj.Scale.controller.X_Scale.controller as string) == cont do
(
--print (cont+" found on X Scale of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.Scale.controller.Y_Scale.controller as string) == cont do
(
--print (cont+" found on Y Scale of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.Scale.controller.Z_Scale.controller as string) == cont do
(
--print (cont+" found on Z Scale of "+obj.name)
appendIfUnique objWithExprArray obj
)
)
)
)
fn sclList obj =
(
for i = 2 to obj.scale.controller.count do --skip 1st controller as thats the frozen one
(
for cont in controllersToInclude do
(
if (obj.scale.controller[i] as string) == "SubAnim:RsSpring" then
(
appendIfUnique objWithExprArray obj
)
else
(
if (classof obj.scale.controller[i].X_scale.controller as string) == cont do
(
--print (cont+" found on X Scale of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.scale.controller[i].Y_scale.controller as string) == cont do
(
--print (cont+" found on Y Scale of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.scale.controller[i].Z_scale.controller as string) == cont do
(
--print (cont+" found on Z Scale of "+obj.name)
appendIfUnique objWithExprArray obj
)
)
)
)
)
fn rotEulerXYZ obj =
(
for cont in controllersToInclude do
(
if (obj.rotation.controller as string) == "SubAnim:RsSpring" then
(
appendIfUnique objWithExprArray obj
)
else
(
if (obj.rotation.controller[i] as string) == "SubAnim:LookAt_Constraint" then
(
appendIfUnique objWithExprArray obj
)
else
(
if (classof obj.Rotation.controller.X_Rotation.controller as string) == cont do
(
--print (cont+" found on X Rotation of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.Rotation.controller.Y_Rotation.controller as string) == cont do
(
--print (cont+" found on Y Rotation of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.Rotation.controller.Z_Rotation.controller as string) == cont do
(
--print (cont+" found on Z Rotation of "+obj.name)
appendIfUnique objWithExprArray obj
)
)
)
)
)
fn rotList obj =
(
for i = 2 to obj.rotation.controller.count do --skip 1st controller as thats the frozen one
(
for cont in controllersToInclude do
(
if (obj.rotation.controller[i] as string) == "SubAnim:RsSpring" then
(
appendIfUnique objWithExprArray obj
)
else
(
if (obj.rotation.controller[i] as string) == "SubAnim:LookAt_Constraint" then
(
appendIfUnique objWithExprArray obj
)
else
(
if (classof obj.rotation.controller[i].X_rotation.controller as string) == cont do
(
--print (cont+" found on X Rotation of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.rotation.controller[i].Y_rotation.controller as string) == cont do
(
--print (cont+" found on Y Rotation of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.rotation.controller[i].Z_rotation.controller as string) == cont do
(
--print (cont+" found on Z Rotation of "+obj.name)
appendIfUnique objWithExprArray obj
)
)
)
)
)
)
fn posXYZ obj =
(
for cont in controllersToInclude do
(
if (obj.position.controller as string) == "SubAnim:RsSpring" then
(
appendIfUnique objWithExprArray obj
)
else
(
if (classof obj.position.controller.X_Position.controller as string) == cont do
(
--print (cont+" found on X Position of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.position.controller.Y_Position.controller as string) == cont do
(
--print (cont+" found on Y Position of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.position.controller.Z_Position.controller as string) == cont do
(
--print (cont+" found on Z Position of "+obj.name)
appendIfUnique objWithExprArray obj
)
)
)
)
fn posList obj =
(
for i = 2 to obj.position.controller.count do --skip 1st controller as thats the frozen one
(
for cont in controllersToInclude do
(
if (obj.position.controller[i] as string) == "SubAnim:RsSpring" then
(
appendIfUnique objWithExprArray obj
)
else
(
if (classof obj.position.controller[i].X_Position.controller as string) == cont do
(
--print (cont+" found on X Position of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.position.controller[i].Y_Position.controller as string) == cont do
(
--print (cont+" found on Y Position of "+obj.name)
appendIfUnique objWithExprArray obj
)
if (classof obj.position.controller[i].Z_Position.controller as string) == cont do
(
--print (cont+" found on Z Position of "+obj.name)
appendIfUnique objWithExprArray obj
)
)
)
)
)
fn queryFloatExpression obj =
(
--print ("Testing "+obj.name)
if (classof obj.position.controller as string) == "position_list" do
(
--print ("Position List found on "+obj.name)
posList obj
)
if (classof obj.position.controller as string) == "Position_XYZ" do
(
--print ("Position XYZ found on "+obj.name)
posXYZ obj
)
---------
if (classof obj.rotation.controller as string) == "rotation_list" do
(
--print ("Rotation List found on "+obj.name)
rotList obj
)
if (classof obj.position.controller as string) == "Euler_XYZ" do
(
--print ("Euler XYZ found on "+obj.name)
rotEulerXYZ obj
)
--------------
if (classof obj.scale.controller as string) == "scale_list" do
(
--print ("Scale List found on "+obj.name)
sclList obj
)
if (classof obj.scale.controller as string) == "Controller:ScaleXYZ" do
(
--print ("Scale XYZ found on "+obj.name)
sclXYZ obj
)
)
fn findExpressionObjects =
(
for obj in objects do
(
if classof obj != Targetcamera do
(
if classof obj != IES_Sky do
(
if (substring obj.name 1 6) != "FACIAL" do
(
if (substring obj.name 1 2) != "FB" do
(
queryFloatExpression obj
)
)
)
)
)
if objWithExprArray.count != 0 do
(
for i = 1 to objWithExprArray.count do
(
--print objWithExprArray[i].name
)
)
for o in objWithExprArray do
(
unhide o
)
select objWithExprArray
)
findExpressionObjects()