ScriptSpot

Forum topic · General Scripting

script running issue...

By ElectricBones · 2009-01-28

Description

Hi I'm having some problems with my script/s when trying to run it through another file. actually even on it's own with a single button to launch it causes the same issue. Basically it creates an IK spline with helpers using the IK Spline Control modifier and the problem si when running as a function causes the helpers to all be set to [0,0,0]. Thsi confuses me as when evaluating teh script on it's own everything works perfectly. here is the script that is the problem.. any additional pointers would be welcomed.


-------------------------------------------------------------------------------------------------------
--START Bone Creation Section with parenting
-------------------------------------------------------------------------------------------------------

	hipBone = BoneSys.createBone [0,125,160] [0,75,160] [-90,0,0]
	hipBone.name = "Hips"
	hipBone.width = 4.0
	hipBone.height = 4.0
	hipBone.taper = 45
	hipBone.sidefins = false
	hipBone.frontfin = true

	hipBoneNub = BoneSys.createBone [0,75,160] [0,71,160] [-90,0,0]
	hipBoneNub.name = "Hips_Nub"
	hipBoneNub.width = 4.0
	hipBoneNub.height = 4.0
	hipBoneNub.taper = 45
	hipBoneNub.sidefins = false
	hipBoneNub.frontfin = false

	spineBone1 = BoneSys.createBone [0,75,160] [0,25,160] [-90,0,0]
	spineBone1.name = "Spine01"
	spineBone1.width = 4.0
	spineBone1.height = 4.0
	spineBone1.taper = 45
	spineBone1.sidefins = false
	spineBone1.frontfin = true

	spineBone1Nub = BoneSys.createBone [0,25,160] [0,21,160] [-90,0,0]
	spineBone1Nub.name = "Spine01_Nub"
	spineBone1Nub.width = 4.0
	spineBone1Nub.height = 4.0
	spineBone1Nub.taper = 45
	spineBone1Nub.sidefins = false
	spineBone1Nub.frontfin = false

	spineBone2 = BoneSys.createBone [0,25,160] [0,-25,160] [-90,0,0]
	spineBone2.name = "Spine02"
	spineBone2.width = 4.0
	spineBone2.height = 4.0
	spineBone2.taper = 45
	spineBone2.sidefins = false
	spineBone2.frontfin = true

	spineBone2Nub = BoneSys.createBone [0,-25,160] [0,-29,160] [-90,0,0]
	spineBone2Nub.name = "Spine02_Nub"
	spineBone2Nub.width = 4.0
	spineBone2Nub.height = 4.0
	spineBone2Nub.taper = 45
	spineBone2Nub.sidefins = false
	spineBone2Nub.frontfin = false

	spineBone3 = BoneSys.createBone [0,-25,160] [0,-75,160] [-90,0,0]
	spineBone3.name = "Spine03"
	spineBone3.width = 4.0
	spineBone3.height = 4.0
	spineBone3.taper = 45
	spineBone3.sidefins = false
	spineBone3.frontfin = true

	spineBone3Nub = BoneSys.createBone [0,-75,160] [0,-79,160] [-90,0,0]
	spineBone3Nub.name = "Spine03_Nub"
	spineBone3Nub.width = 4.0
	spineBone3Nub.height = 4.0
	spineBone3Nub.taper = 45
	spineBone3Nub.sidefins = false
	spineBone3Nub.frontfin = false

	spineBone4 = BoneSys.createBone [0,-75,160] [0,-125,160] [-90,0,0]
	spineBone4.name = "Spine04"
	spineBone4.width = 4.0
	spineBone4.height = 4.0
	spineBone4.taper = 45
	spineBone4.sidefins = false
	spineBone4.frontfin = true

	spineBone4Nub = BoneSys.createBone [0,-125,160] [0,-129,160] [-90,0,0]
	spineBone4Nub.name = "Spine04_Nub"
	spineBone4Nub.width = 4.0
	spineBone4Nub.height = 4.0
	spineBone4Nub.taper = 45
	spineBone4Nub.sidefins = false
	spineBone4Nub.frontfin = false

	hipBoneNub.parent = hipBone
	spineBone1Nub.parent  = spineBone1
	spineBone2Nub.parent = spineBone2
	spineBone3Nub.parent = spineBone3
	spineBone4Nub.parent = spineBone4

	-------------------------------------------------------------------------------------------------------
	--END Bone Creation Section with parenting
	-------------------------------------------------------------------------------------------------------
	--START Spline drawing and Helper creation Functions and Point Helper naming.
	-------------------------------------------------------------------------------------------------------

	function drawLine pointA pointB pointC pointD =

		(

			ss = SplineShape pos:pointA

			addNewSpline ss

			addKnot ss 1 #smooth #curve PointA
			addKnot ss 1 #smooth #curve PointB	
			addknot ss 1 #smooth #curve PointC	
			addknot ss 1 #smooth #curve PointD	

			updateShape ss

			ss

		)

	ikSpline = drawLine [0,125,160] [0,40,160] [0,-40,160] [0,-125,160] 
	ikSpline.name = "IK_Spline"
	addmodifier ikSpline (Spline_IK_Control())
	ikSpline.Spline_IK_Control.createhelper 4
	ikSpline.Spline_IK_Control.linkTypes = 2
	arrayIKSpline = ikSpline.Spline_IK_Control.helper_list

	ikNodeSpline = drawLine [0,125,200] [0,40,200] [0,-40,200] [0,-125,200] 
	ikNodeSpline.name = "Upnode_Spline"
	addmodifier ikNodeSpline (Spline_IK_Control())
	ikNodeSpline.Spline_IK_Control.createhelper 4
	ikNodeSpline.Spline_IK_Control.linkTypes = 2
	arrayIKNodeSpline = ikNodeSpline.Spline_IK_Control.helper_list
		
	function createHelpers position =
		
		(
			ch1 = circle radius: 15 pos: position
			ch2 = circle radius: 15 pos: position
			ch2.rotation.x_rotation = 90
			ch3 = circle radius: 15 pos: position
			ch3.rotation.x_rotation = 90
			ch3.rotation.z_rotation = 90

			convertToSplineShape ch1
			convertToSplineShape ch2
			convertToSplineShape ch3

			addAndweld ch1 ch2 0.0
			addAndweld ch1 ch3 0.0
			
			updateshape ch1
			
			ch1
		)

	ctrlSpine1 = createHelpers [0,125,240] 
	ctrlSpine1.name = "Ctrl_Spine1"
	ctrlSpine2 = createHelpers [0,40,240]
	ctrlSpine2.name = "Ctrl_Spine2"
	ctrlSpine3 = createHelpers [0,-40,240]
	ctrlSpine3.name = "Ctrl_Spine3"
	ctrlSpine4 = createHelpers [0,-125,240] 
	ctrlSpine4.name = "Ctrl_Spine4"

	BonePos1 = point name: "node_Bone_Pos1" size: 10
	Bonepos2 = point name: "node_Bone_Pos2" size: 10
	BonePos3 = point name: "node_Bone_Pos3" size: 10
	BonePos4 = point name: "node_Bone_Pos4" size: 10
	BonePos5 = point name: "node_Bone_Pos5" size: 10
	BonePos6 = point name: "node_Bone_Pos6" size: 10

	arrayIKSpline[1].name = "IK_Spline_Vertex1"
	arrayIKSpline[2].name = "IK_Spline_Vertex2"
	arrayIKSpline[3].name = "IK_Spline_Vertex3"
	arrayIKSpline[4].name = "IK_Spline_Vertex4"
	arrayIKNodeSpline[1].name = "Upnode_Spline_Vertex1"
	arrayIKNodeSpline[1].parent = arrayIKSpline[1]
	arrayIKNodeSpline[2].name = "Upnode_Spline_Vertex2"
	arrayIKNodeSpline[2].parent = arrayIKSpline[2]
	arrayIKNodeSpline[3].name = "Upnode_Spline_Vertex3"
	arrayIKNodeSpline[3].parent = arrayIKSpline[3]
	arrayIKNodeSpline[4].name = "Upnode_Spline_Vertex4"
	arrayIKNodeSpline[4].parent = arrayIKSpline[4]

	-------------------------------------------------------------------------------------------------------
	--END Spline drawing and Helper creation Functions
	-------------------------------------------------------------------------------------------------------
	--START Position and Orientation Constraints for Spline Knots
	-------------------------------------------------------------------------------------------------------


	pc = Position_Constraint()
	arrayIKSpline[1].pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget ctrlSpine1 100
	arrayIKSpline[1].pos.controller.relative = true	
	oc = Orientation_Constraint()
	arrayIKSpline[1].rotation.controller = oc
	rotationConstraintInterface = oc.constraints
	rotationConstraintInterface.appendtarget ctrlSpine1 100

	pc = Position_Constraint()
	arrayIKSpline[2].pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget ctrlSpine2 100
	arrayIKSpline[2].pos.controller.relative = true 
	oc = Orientation_Constraint()
	arrayIKSpline[2].rotation.controller = oc
	rotationConstraintInterface = oc.constraints
	rotationConstraintInterface.appendtarget ctrlSpine2 100

	pc = Position_Constraint()
	arrayIKSpline[3].pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget ctrlSpine3 100
	arrayIKSpline[3].pos.controller.relative = true 
	oc = Orientation_Constraint()
	arrayIKSpline[3].rotation.controller = oc
	rotationConstraintInterface = oc.constraints
	rotationConstraintInterface.appendtarget ctrlSpine3 100

	pc = Position_Constraint()
	arrayIKSpline[4].pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget ctrlSpine4 100
	arrayIKSpline[4].pos.controller.relative = true 
	oc = Orientation_Constraint()
	arrayIKSpline[4].rotation.controller = oc
	rotationConstraintInterface = oc.constraints
	rotationConstraintInterface.appendtarget ctrlSpine4 100

	-------------------------------------------------------------------------------------------------------
	--END Position Constraints for Spline Knots
	-------------------------------------------------------------------------------------------------------
	--START Path Constraints for Bone position Points
	-------------------------------------------------------------------------------------------------------

	pathc = Path_Constraint()
	BonePos1.pos.controller = pathc
	pathc.path = ikSpline
	pathc.percent = 0

	pathc = Path_Constraint()
	BonePos2.pos.controller = pathc
	pathc.path = ikSpline
	pathc.percent = 20

	pathc = Path_Constraint()
	BonePos3.pos.controller = pathc
	pathc.path = ikSpline
	pathc.percent = 40

	pathc = Path_Constraint()
	BonePos4.pos.controller = pathc
	pathc.path = ikSpline
	pathc.percent = 60

	pathc = Path_Constraint()
	BonePos5.pos.controller = pathc
	pathc.path = ikSpline
	pathc.percent = 80

	pathc = Path_Constraint()
	BonePos6.pos.controller = pathc
	pathc.path = ikSpline
	pathc.percent = 100

	deletekeys BonePos1
	deletekeys BonePos2
	deletekeys BonePos3
	deletekeys BonePos4
	deletekeys BonePos5
	deletekeys BonePos6

	-------------------------------------------------------------------------------------------------------
	--END Path Constraints for Bone position Points
	-------------------------------------------------------------------------------------------------------
	--START Bone Position and Look At Constraints.
	-------------------------------------------------------------------------------------------------------

	pc = Position_Constraint()
	hipBone.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos1 100
	lc = LookAT_Constraint()
	hipbone.rotation.controller = lc
	rotationconstraintInterface =  lc.constraints
	rotationconstraintInterface.appendtarget  BonePos2 100
	hipBone.rotation.controller.viewline_length_abs = off
	pc = Position_Constraint()
	hipBoneNub.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos2 100

	pc = Position_Constraint()
	spineBone1.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos2 100
	lc = LookAT_Constraint()
	spineBone1.rotation.controller = lc
	rotationconstraintInterface =  lc.constraints
	rotationconstraintInterface.appendtarget  BonePos3 100
	spineBone1.rotation.controller.viewline_length_abs = off
	pc = Position_Constraint()
	spineBone1Nub.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos3 100

	pc = Position_Constraint()
	spineBone2.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos3 100
	lc = LookAT_Constraint()
	spineBone2.rotation.controller = lc
	rotationconstraintInterface =  lc.constraints
	rotationconstraintInterface.appendtarget  BonePos4 100
	spineBone2.rotation.controller.viewline_length_abs = off
	pc = Position_Constraint()
	spineBone2Nub.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos4 100

	pc = Position_Constraint()
	spineBone3.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos4 100
	lc = LookAT_Constraint()
	spineBone3.rotation.controller = lc
	rotationconstraintInterface =  lc.constraints
	rotationconstraintInterface.appendtarget  BonePos5 100
	spineBone3.rotation.controller.viewline_length_abs = off
	pc = Position_Constraint()
	spineBone3Nub.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos5 100
	hhh
	pc = Position_Constraint()
	spineBone4.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos5 100
	lc = LookAT_Constraint()
	spineBone4.rotation.controller = lc
	rotationconstraintInterface =  lc.constraints
	rotationconstraintInterface.appendtarget  BonePos6 100
	spineBone4.rotation.controller.viewline_length_abs = off
	pc = Position_Constraint()
	spineBone4Nub.pos.controller = pc
	positionConstraintInterface = pc.constraints
	positionConstraintInterface.appendtarget BonePos6 100

	-------------------------------------------------------------------------------------------------------
	--END Bone Position and Look At Constraints.
	-------------------------------------------------------------------------------------------------------
	--START Upnode Placement, Path Constraints and Bone Setup
	-------------------------------------------------------------------------------------------------------

	upnodePos1 = point name: "upnode_Pos1" size: 10
	upnodepos2 = point name: "upnode_Pos2" size: 10
	upnodePos3 = point name: "upnode_Pos3" size: 10
	upnodePos4 = point name: "upnode_Pos4" size: 10
	upnodePos5 = point name: "upnode_Pos5" size: 10

	pathc = Path_Constraint()
	upnodePos1.pos.controller = pathc
	pathc.path = ikNodeSpline
	pathc.percent = 10

	pathc = Path_Constraint()
	upnodePos2.pos.controller = pathc
	pathc.path = ikNodeSpline
	pathc.percent = 30

	pathc = Path_Constraint()
	upnodePos3.pos.controller = pathc
	pathc.path = ikNodeSpline
	pathc.percent = 50

	pathc = Path_Constraint()
	upnodePos4.pos.controller = pathc
	pathc.path = ikNodeSpline
	pathc.percent = 70

	pathc = Path_Constraint()
	upnodePos5.pos.controller = pathc
	pathc.path = ikNodeSpline
	pathc.percent = 90

	deletekeys upnodePos1
	deletekeys upnodePos2
	deletekeys upnodePos3
	deletekeys upnodePos4
	deletekeys upnodePos5

	hipBone.rotation.controller.upnode_world = off
	hipBone.rotation.controller.pickUpNode = upnodePos1
	hipBone.rotation.controller.upnode_ctrl = 0
	hipBone.rotation.controller.StoUP_axis = 1

	spineBone1.rotation.controller.upnode_world = off
	spineBone1.rotation.controller.pickUpNode = upnodePos2
	spineBone1.rotation.controller.upnode_ctrl = 0
	spineBone1.rotation.controller.StoUP_axis = 1

	spineBone2.rotation.controller.upnode_world = off
	spineBone2.rotation.controller.pickUpNode = upnodePos3
	spineBone2.rotation.controller.upnode_ctrl = 0
	spineBone2.rotation.controller.StoUP_axis = 1

	spineBone3.rotation.controller.upnode_world = off
	spineBone3.rotation.controller.pickUpNode = upnodePos4
	spineBone3.rotation.controller.upnode_ctrl = 0
	spineBone3.rotation.controller.StoUP_axis = 1

	spineBone4.rotation.controller.upnode_world = off
	spineBone4.rotation.controller.pickUpNode = upnodePos5
	spineBone4.rotation.controller.upnode_ctrl = 0
	spineBone4.rotation.controller.StoUP_axis = 1

-------------------------------------------------------------------------------------------------------
--END Upnode Placement, Path Constraints and Bone Setup
-------------------------------------------------------------------------------------------------------

Thanks in advance