Require( "animob/animob.ts" ) function rgb8Color( r, g, b ) return ( r*65536 + g*256 + b ) end return AnimobAconf({ version = 1, -- All aconf files have a version number. We will be backwards compatable default = "hc/hovercraft.aconf", object = { productName = "Hovercraft", gameKitVehicleControls = { class = "HBRadical", }, appearance = { modelName = "mhc002hb_jaws.model", modelSettings = { main = { colormap = "hc/thc02hb001_shark.jpg", }, engine = { colormap = "hc/thc02hb004a_rabowexawst.jpg", lit = 0, }, }, }, animationTriggers = { default = { type = "emotion", emotionName = "em002hco00hb_idle", }, NoseGrabBoard = { type = "emotion", emotionName = "em002hco01hb_nosegrab", }, RightGrabBoard = { type = "emotion", emotionName = "em002hco02hb_rightgrab", }, TailGrabBoard = { type = "emotion", emotionName = "em002hco03hb_tailgrab", }, LeftGrabBoard = { type = "emotion", emotionName = "em002hco04hb_leftgrab", }, RocketBoard = { type = "emotion", emotionName = "em002hco07hb_rocket", }, }, }, appKeys = { -- levitation physics variables levitationSpringCompressionConstant = 840.0, levitationSpringCompressionExponent = 0.8, levitationSpringExtensionConstant = 2000.0, levitationSpringExtensionExponent = 0.85, levitationSpringLength = 3.1, levitationDamperConstant = 100.0, -- avatar animation avAnimSpeedMax = 22.0, -- doesn't have to be same as maxVelocity avAnimSpeedInfluence = 0.7, -- if the influences don't sum to 1, their sum will be clamped. Allowed. avAnimLeanCentripetalFactorMax = 1.0, -- 1.0 means sideways; 0.0 means vertical avAnimPitchDownMax = 0.32, -- 1.0 means pitching straight down, 0.0 means horizontal -- drive physics maxVelocity = 24.0, maxAcceleration = 17.0, maxDeceleration = 11.0, lateralStaticFrictionForce = 1800.0, pendulumMass = 40.0, -- motion forces brakeRotationForce = 320.0, brakeRotationSpeed = 0.0, -- heading control headingStableKp = 40.0, -- camera smoothFactor = 0.065, mouseMomentMagnitude = 1350.0, mouseMomentDecay = 0.97, mouseMomentMaximum = 2100.0, mouseDeltaXMax = 400.0, mouseDeltaYMax = 700.0, trickDefs = { AirTurnLeft = { key = {"HbLeftKey","HbForwardKey"}, riderTriggerName = "HcJump", leanInfluence = {5.0, 0.0, 0.0}, forces = { { type = "HbRotate", direction = "HbYAxis", magnitude = -2200, }, }, }, AirTurnRight = { key = {"HbRightKey","HbForwardKey"}, riderTriggerName = "HcJump", leanInfluence = {-5.0, 0.0, 0.0}, forces = { { type = "HbRotate", direction = "HbYAxis", magnitude = 2200, }, }, }, }, tricks = { "NoseGrab", "BacksideGrab", "TailGrab", "FrontsideGrab", "Rocket", "AirTurnLeft", "AirTurnRight", "RocketRoll", }, fxDefs = { trickFx = { type = "Flame", flameAngle = 0.0, particleStartWidth = 0.06, flameHeight = 0.4, flameSpeed = 0.3, particlePerFrame = 1.0, joint = "Exhaust00", direction = { 0, 1, 0 }, velSource = "root", }, dirtKick = { type = "TerrainKickUp", kickUpCone = 80.0, particlePerSecond = 100.0, speed = 0.2, offset = { 0, -.18, -1.5 }, velSource = "root", }, thrustSmokeLeft = { type = "Flame", joint = "Exhaust00", flameAngle = 30.0, particleStartWidth = 0.18, flameHeight = 0.1, flameSpeed = 2.5, particlePerFrame = 2.0, direction = { 0, -0.1, 0.9 }, velSource = "root", velSourceInfluence = 0.95, flameTexture = "fx/t0000fx6_hpxawstblue.png", }, nitroSmokeLeft = { type = "SmokeTrail2", joint = "Exhaust00", puffInitialRadius = 0.25, puffRadiusGrowthRate = -0.6, color = rgb8Color( 142, 188, 197 ), density = 1.5, puffLifespan = 0.3, trailRandomSeed = 1.0, direction = { 0, -0.1, 0.9 }, puffTexture = "fx/smokeTrailPuff1.png", streakTexture = "fx/smokeTrailStreak1.png", }, }, fxCtrls = { nitro = { input = "HbNitro", output = { { fx = "nitroSmokeLeft", onOff = 1, }, { fx = "nitroSmokeRight", onOff = 0, }, }, }, engine = { input = "HbThrust", output = { { fx = "thrustSmokeLeft", onOff = 1, }, { fx = "thrustSmokeRight", onOff = 0, }, }, }, kick = { input = "HbDirtKick", output = { { fx = "dirtKick", onOff = 1, }, }, }, }, }, balls = { root = { joint = "mhc002hb_jaws", }, rearBall = { joint = "rearBall", offset = {0.0, 0.0, 0.0}, }, frontBall = { joint = "frontBall", offset = {0.0, 0.0, 0.0}, }, }, springs = { { ball1 = "root", ball2 = "rearBall", idealLength = 1.7, }, { ball1 = "root", ball2 = "frontBall", idealLength = 1.7, }, { ball1 = "frontBall", ball2 = "rearBall", idealLength = 2.75, }, }, seats = { driver = { joint = "driver", offset = { 0.0, 0.06, 0.0 }, teleblurDuration = 10, animationTriggers = { default = { type = "emotion", emotionName = "em001hc01_rider01", axes = { { axisName = "UiAxis", direction = "FB", prevValueBlend = 0.5 }, { axisName = "UiAxis", direction = "LR", valueScalar = 2.0, prevValueBlend = 0.37 }, }, }, HcJump = { -- Animation while jumping name = "HcJump", type = "emotion", emotionName = "em001hc00_tuck01", }, HcNose = { name = "HcNose", type = "emotion", emotionName = "em002hc01_grabnose", }, HcTail = { name = "HcTail", type = "emotion", emotionName = "em002hc03_grabtail", }, HcLeft = { name = "HcLeft", type = "emotion", emotionName = "em002hc04_grableft", }, HcRight = { name = "HcRight", type = "emotion", emotionName = "em002hc02_grabright", }, }, getOn = { -- Optional get on animation section userAnim = "a001hc05hb_hopon", objectAnim = "a002hco01hb_hopon" -- optional }, getOff = { userAnim = "a001hc06hb_hopoff", objectAnim = "a002hco02hb_hopoff" }, }, }, carriable = { icon = "ico_hoverboard02.png", }, })