Require( "animob/animob.ts" ) return AnimobAconf({ version = 1, -- All aconf files have a version number. We will be backwards compatable object = { productName = "Labrador", appearance = { modelName = "dog01skin.model", skuteSettings = { skuteName = "dog01skin", skinTextureNames = { "dogcolors_6.jpg" }, } }, }, appKeys = { breed = "lab", gender = "male", personality = "friendly", -- body size chestToPawLengthWithLegsExtended = 0.5, chestRadius = 0.152, -- maximum distance in meters petter can move without cancelling pet request maxPetterMotionMeters = 1.0, -- when we're going to get petted, how far away from the av should we stop? getPettedStoppingDistanceMeters = 0.7, -- how many twinkles to display for twinkling dog treat twinkleCount = 20, -- how many ticks sould a deadly treat put the dog to sleep for? deadlyTreatSleepTicks = 90, -- how big is a twinkling dog treat twinkle? twinkleRadiusMeters = 0.02, maxDurationGoToGetPettedMode = 100, -- these parameters control how the dog catches flying treats -- the dog jumps, opens its mouth, and looks up a bit jawOpennessDegrees = -100.0, -- relative to end of animation snapTreatStartTicks = -12, -- relative to end of animation snapTreatEndTicks = 0, -- *** Begin tunable trick constants *** -- The number of steps to delay after the user triggers 'give treat' before the dog -- begins jumping. This could be before or after the treat leaves the avatar's hand. trickJumpDelay = 54, -- The number of steps to delay after the user triggers 'give treat' before animating -- the treat flying through the air. This must be less than trickPlayDelay. trickFlightAnimationDelay = 25, -- The number of steps to delay after the user triggers 'give treat' before -- triggering the treat local animation. This must be more than -- trickFlightAnimationDelay. trickPlayDelay = 25 + 34, -- The number of steps to delay after the user triggers 'give treat' before the treat -- changes the dog's mode and mood. Thus MUST be greater than trickPlayDelay, because -- it will reset the mood, which resets the state counter, which is what the viewable -- is using to count to trickPlayDelay. (The extra + 1 is for safety.) trickSetModeAndMoodDelay = 25 + 34 + 1 + 1, -- The duration of the ear flaps, from when they start flapping. trickEarFlapDuration = 120, -- The number of steps prior to the end of the catch animation at which I should play -- the bite sound. trickCatchSoundTicksFromEnd = 0, -- *** End tunable trick constants *** pitchUpAngleDegrees = 70, -- relative to end of animation pitchUpStartTicks = -4, -- relative to end of animation pitchUpEndTicks = 0, -- how many ticks after the end of the treat toss do we need in -- order to play all of our catch animation? treatJumpDelayTicks = 2, -- how high is a default jump? jumpHeightMeters = 1.0, -- how long does our jump last? gettingTreatJumpTicks = 30, pauseBeforeGoToGetPettedTicks = 30, maxGoToGetPettedTicks = 300, -- this should asset driven, gotten from animation maxBeingPettedTicks = 200, -- ***** SOUND **** -- The individual scalars bring the default soundfiles, which have all been normalized, -- into a useful range. dogSoundMasterScalar = 1.0, barkSoundCount = 3, barkSoundMasterScalar = 1.6, bark1SoundVolume = 0.29, bark2SoundVolume = 0.28, bark3SoundVolume = 0.28, footFallSoundCount = 4, footFallSoundMasterScalar = 0.6, footFall1SoundVolume = 0.035, footFall2SoundVolume = 0.035, footFall3SoundVolume = 0.035, footFall4SoundVolume = 0.035, whineSoundCount = 9, whineSoundMasterScalar = 1.0, whine1SoundVolume = 0.085, whine2SoundVolume = 0.09, whine3SoundVolume = 0.146, whine4SoundVolume = 0.147, whine5SoundVolume = 0.087, whine6SoundVolume = 0.12, whine7SoundVolume = 0.055, whine8SoundVolume = 0.075, whine9SoundVolume = 0.12, growlSoundCount = 5, growlSoundMasterScalar = 1.0, growl1SoundVolume = 0.294, growl2SoundVolume = 0.294, growl3SoundVolume = 0.294, growl4SoundVolume = 0.17, growl5SoundVolume = 0.29, biteSoundVolume = 0.59, pantSoundVolume = 0.0181, sniffSoundVolume = 0.016, humSoundVolume = 0.27, sneezeSoundVolume = 0.109, breedChangeSoundVolume = 0.25, scratchSoundVolume = 0.1, noPoseSoundVolume = 0.12, fallSoundScalarMin = 1.0, -- this is ignored; the min footfall scalar is always 1.0 fallSoundScalarMax = 3.0, soundRadiusScalar = 1.0, }, balls = { root = { joint = "root", radius = 0.152, restitution = 0.1, staticFriction = 2.5, dynamicFriction = 2.5, nearbyCollisionRadius = 0.55, collisionRadius = 0.75, }, }, actions = { pet = { teleblurDuration = 20, -- teleblur to spot in steps inAction = { -- animation to play during the action userAnim = "a002dog01_pet" } }, come = { teleblurDuration = 0, -- teleblur to spot in steps inAction = { -- animation to play during the action userAnim = "a001dog01_call" } } }, pilot = { -- This refers to triggers on the pilot animationTriggers = { come = { type = "emotion", -- only type currently supported is "emotion" emotionName = "em001dog01_call", -- refers to lib/xt0/come.emotion }, }, }, Sounds3d = { bark1Sound = { soundName = "bark_1", ballSource = "root", }, bark2Sound = { soundName = "bark_2", ballSource = "root", }, bark3Sound = { soundName = "bark_3", ballSource = "root", }, footFall1Sound = { soundName = "foot_fall_1", ballSource = "root", }, footFall2Sound = { soundName = "foot_fall_2", ballSource = "root", }, footFall3Sound = { soundName = "foot_fall_3", ballSource = "root", }, footFall4Sound = { soundName = "foot_fall_4", ballSource = "root", }, growl1Sound = { soundName = "growl_1", ballSource = "root", }, growl2Sound = { soundName = "growl_2", ballSource = "root", }, growl3Sound = { soundName = "growl_3", ballSource = "root", }, growl4Sound = { soundName = "growl_4", ballSource = "root", }, growl5Sound = { soundName = "growl_5", ballSource = "root", }, whine1Sound = { soundName = "whine_1", ballSource = "root", }, whine2Sound = { soundName = "whine_2", ballSource = "root", }, whine3Sound = { soundName = "whine_3", ballSource = "root", }, whine4Sound = { soundName = "whine_4", ballSource = "root", }, whine5Sound = { soundName = "whine_5", ballSource = "root", }, whine6Sound = { soundName = "whine_6", ballSource = "root", }, whine7Sound = { soundName = "whine_7", ballSource = "root", }, whine8Sound = { soundName = "whine_8", ballSource = "root", }, whine9Sound = { soundName = "whine_9", ballSource = "root", }, pantSound = { soundName = "panting", ballSource = "root", looping = 1, }, sneezeSound = { soundName = "sneeze", ballSource = "root", }, sniffSound = { soundName = "sniffing", ballSource = "root", looping = 1, }, scratchSound = { soundName = "foot_fall_1", ballSource = "root", }, biteSound = { soundName = "bite", ballSource = "root", }, breedChangeSound = { soundName = "breed_change", ballSource = "root", }, humSound = { soundName = "clickity", ballSource = "root", looping = 1, }, noPoseSound = { soundName = "no_pose", ballSource = "root", }, }, carriable = { carriableOnlyByOwner = 1, icon = "big_dog.png", grabDropPerm = "canAnimals", }, })