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 = "HBFreestyle", }, appearance = { modelName = "mhc003hb_trickboard.model", modelSettings = { main = { colormap = "hc/thc03hb001_tatoo.jpg", }, engine = { colormap = "hc/thc03hb001_tatoo.jpg", lit = 0, twosided = 1, }, engineAlpha = { colormap = "hc/thc03hb000_fan.jpg", opacitymap = "hc/thc03hb000xx_fanalpha.jpg", }, }, }, animationTriggers = { default = { type = "emotion", emotionName = "em003hco00hb_idle", }, activated = { type = "emotion", emotionName = "em003hco01hb_running", }, NoseGrabBoard = { type = "emotion", emotionName = "em003hco01hb_nosegrab", }, RightGrabBoard = { type = "emotion", emotionName = "em003hco02hb_rightgrab", }, TailGrabBoard = { type = "emotion", emotionName = "em003hco03hb_tailgrab", }, LeftGrabBoard = { type = "emotion", emotionName = "em003hco04hb_leftgrab", }, StaleFishBoard = { type = "emotion", emotionName = "em003hco05hb_stalefish", }, KickFlipBoard = { type = "emotion", emotionName = "em003hco06hb_kickflip", }, KickFlip02Board = { type = "emotion", emotionName = "em003hco10hb_kickflip02", }, BackSideBoard = { type = "emotion", emotionName = "em003hco07hb_backside", }, SupermanBoard = { type = "emotion", emotionName = "em003hco08hb_superman", }, TailSlideBoard = { type = "emotion", emotionName = "em003hco09hb_tailslide", }, RocketBoard = { type = "emotion", emotionName = "em003hco13hb_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 = 21.0, maxAcceleration = 20.0, maxDeceleration = 17.0, lateralStaticFrictionForce = 1800.0, pendulumMass = 40.0, -- motion forces brakeRotationForce = 320.0, brakeRotationSpeed = 0.0, -- heading control headingStableKp = 40.0, headingStableKd = 100.0, headingUnstableKp = 7.0, headingUnstableKd = 100.0, headingAerialKp = 20.0, headingAerialKd = 100.0, -- camera smoothFactor = 0.065, mouseMomentMagnitude = 1500.0, mouseMomentDecay = 0.97, mouseMomentMaximum = 2600.0, mouseDeltaXMax = 400.0, mouseDeltaYMax = 700.0, landingScoreMultiplier = 0.5, landingScoreMinimum = 0.1, trickScoreMultiplier = 0.7, trickDefs = { FrontsideGrab = { key = {"HbLeftKey"}, riderTriggerName = "HcLeft", objectTriggerName = "LeftGrabBoard", leanInfluence = {5.0, 0.0, 0.0}, }, BacksideGrab = { key = {"HbRightKey"}, riderTriggerName = "HcRight", objectTriggerName = "RightGrabBoard", leanInfluence = {-5.0, 0.0, 0.0}, dragCoefficients = { 0.1, 1.0, 0.01 }, }, NoseGrab = { key = {"HbForwardKey"}, riderTriggerName = "HcNose", objectTriggerName = "NoseGrabBoard", leanInfluence = {0.0, 0.0, -10.0}, }, KickFlip = { key = {"HbLeftKey","HbForwardKey"}, riderTriggerName = "HcKickFlip", objectTriggerName = "KickFlipBoard", leanInfluence = {0.0, 0.0, 0.0}, }, KickFlip02 = { key = {"HbForwardKey","HbRightKey"}, riderTriggerName = "HcKickFlip", objectTriggerName = "KickFlip02Board", leanInfluence = {0.0, 0.0, 0.0}, }, StaleFish = { key = {"HbLeftKey","HbBackwardKey"}, riderTriggerName = "HcStaleFish", objectTriggerName = "StaleFishBoard", leanInfluence = {0.0, 0.0, -3.0}, }, BacksideBig = { key = {"HbRightKey","HbBackwardKey"}, riderTriggerName = "HcBackSide", objectTriggerName = "BackSideBoard", canLand = 0, leanInfluence = {0.0, 0.0, 0.0}, }, Superman = { key = {"HbForwardKey","HbBackwardKey"}, riderTriggerName = "HcSuperman", objectTriggerName = "SupermanBoard", canLand = 0, leanInfluence = {0.0, 0.0, -8.0}, }, TailSlide = { key = {"HbRightKey","HbBackwardKey","HbLeftKey"}, riderTriggerName = "HcTailSlide", objectTriggerName = "TailSlideBoard", canLand = 0, leanInfluence = {0.0, 0.0, -5.0}, }, }, --*************************************************************** -- Tricks -- Up to 12 tricks are supported per hoverboard aconf. -- Tricks must reference a trick definition. -- --*************************************************************** tricks = { "StaleFish", "KickFlip", "BacksideBig", "NoseGrab", "BacksideGrab", "TailGrab", "FrontsideGrab", "KickFlip02", "Superman", "TailSlide", "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", }, thrustSmokeTail = { type = "Flame", joint = "Exhaust00", flameAngle = 30.0, particleStartWidth = 0.19, flameHeight = 0.08, flameSpeed = 1.5, particlePerFrame = 1.0, direction = { 0, -0.3, 0.7 }, velSource = "root", velSourceInfluence = 0.97, flameTexture = "fx/t0000fx1_hpxawstgreen.png", }, nitroSmokeTail = { type = "SmokeTrail2", joint = "Exhaust00", puffInitialRadius = 0.25, puffRadiusGrowthRate = -0.6, color = rgb8Color( 82, 238, 0 ), density = 1.5, puffLifespan = 0.3, trailRandomSeed = 1.0, direction = { 0, -0.3, 0.7 }, puffTexture = "fx/smokeTrailPuff1.png", streakTexture = "fx/smokeTrailStreak1.png", }, thrustSmokeLeft = { type = "Flame", joint = "Exhaust01", flameAngle = 60.0, particleStartWidth = 0.12, flameHeight = 0.05, flameSpeed = 1.0, particlePerFrame = 0.7, direction = { -1.0, -0.5, 0.0 }, velSource = "root", velSourceInfluence = 0.99, flameTexture = "fx/t0000fx1_hpxawstgreen.png", }, thrustSmokeRight = { type = "Flame", joint = "Exhaust02", flameAngle = 60.0, particleStartWidth = 0.12, flameHeight = 0.05, flameSpeed = 1.0, particlePerFrame = 0.7, direction = { 1.0, -0.5, 0.0 }, velSource = "root", velSourceInfluence = 0.99, flameTexture = "fx/t0000fx1_hpxawstgreen.png", }, brakeSmokeLeft = { type = "Flame", joint = "Exhaust01", flameAngle = 40.0, particleStartWidth = 0.13, flameHeight = 0.05, flameSpeed =1.0, particlePerFrame = 0.3, direction = { -1.0, -0.5, 0.5 }, velSource = "root", velSourceInfluence = 1.0, flameTexture = "fx/t0000fx1_hpxawstgreen.png", }, brakeSmokeRight = { type = "Flame", joint = "Exhaust02", flameAngle = 40.0, particleStartWidth = 0.13, flameHeight = 0.05, flameSpeed = 1.0, particlePerFrame = 0.3, direction = { 1.0, -0.5, 0.5 }, velSource = "root", velSourceInfluence = 1.0, flameTexture = "fx/t0000fx1_hpxawstgreen.png", }, }, fxCtrls = { nitro = { input = "HbNitro", output = { { fx = "nitroSmokeTail", onOff = 1, }, { fx = "nitroSmokeLeft", onOff = 0, }, { fx = "nitroSmokeRight", onOff = 0, }, }, }, engine = { input = "HbThrust", output = { { fx = "thrustSmokeTail", onOff = 1, }, { fx = "thrustSmokeLeft", onOff = 1, }, { fx = "thrustSmokeRight", onOff = 1, }, }, }, brake = { input = "HbBrakeThrust", output = { { fx = "brakeSmokeLeft", onOff = 1, }, { fx = "brakeSmokeRight", onOff = 1, }, }, }, kick = { input = "HbDirtKick", output = { { fx = "dirtKick", onOff = 1, }, }, }, }, }, balls = { root = { joint = "mhc002hb_jaws", collisionRadius = 0.6, }, 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.05, 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 = "em003hc01_grabnose", }, HcTail = { name = "HcTail", type = "emotion", emotionName = "em003hc03_grabtail", }, HcLeft = { name = "HcLeft", type = "emotion", emotionName = "em003hc04_grableft", }, HcRight = { name = "HcRight", type = "emotion", emotionName = "em003hc02_grabright", }, HcStaleFish = { name = "HcStaleFish", type = "emotion", emotionName = "em003hc05_stalefish", }, HcKickFlip = { name = "HcKickFlip", type = "emotion", emotionName = "em003hc06_kickflip", }, HcBackSide = { name = "HcBackSide", type = "emotion", emotionName = "em003hc07_backside", }, HcSuperman = { name = "HcSuperman", type = "emotion", emotionName = "em003hc08_superman", }, HcTailSlide = { name = "HcTailSlide", type = "emotion", emotionName = "em003hc09_tailslide", }, HcRocket = { name = "HcRocket", type = "emotion", emotionName = "em003hc10_rocket", }, }, getOn = { -- Optional get on animation section userAnim = "a001hc05hb_hopon", objectAnim = "a003hco01hb_hopon" -- optional }, getOff = { userAnim = "a001hc06hb_hopoff", objectAnim = "a003hco02hb_hopoff" }, }, }, carriable = { icon = "ico_hoverboard03.png", }, })