Odorant Components
An overview of all the odorant component options and what they d.
Last updated
An overview of all the odorant component options and what they d.
Last updated
Add a Sphere component to any game-object you want to possess a radially based odor. When the Olfactory Epithelium is found within the inner radius, maximum activation of the odorant occurs. When the Olfactory Epithelium is found outside the outer radius, no activation occurs. When the Olfactory Epithelium is found between the two, Radial Scaler augments how the intensity of the odor increases from the outer radius to inner radius, that way designers are not limited to a liner intensity ramp. Note: Radial Scaler will typically start at [0.0, 1.0] and end at [1.0, 0.0]Inspector view of Odorant ProximityScene view of Odorant Proximity
Odorant Particle System is functionally the same as Odorant Sphere except it supports integration with a particle systems. Add a Odorant Particle System component to any game-object with a particle system that you want to have a radially based odor. Odor intensity calculations are done relative to particle locations.Inspector view of Odorant Particle System Gizmo wire meshes will appear on your particle system game-object in the scene showing the inner and outer radii. Radii will scale automatically based on individual particle size as shown below. This system supports Local and World Space particle system simulation. Scene view of Odorant Particle System
Odorant Box is the most basic of all the odorant components and is generally used for background scents the user should only perceive on subconscious to just barely noticeable level. Because of this, making precise zones of ambient odors is not so important. To define this zone of odor, a Box Size is defined along with an Offset in the inspector. The Offset allows for one game-object to contain a collection of background odors with or without overlap. Maximum Thresholds for ambient scents should be relatively low as to not distract the user from other in-game interactions.Inspector view of Odorant AmbientA gizmo wire box will appear in editor showing the odorant zone. Below you’ll see the “Forest” odorant component encapsulating a testing environment.Scene view of Odorant Ambient
Odorant Cone was designed to accommodate the complicated nature of interacting with an object and intentionally smelling an odor effusing from said object. It may help to show a little math here to describe how it works. But first, let's take a look at some of the options that are unique to Odorant Cone . Odorant Vector determines two things: the size of the odor zone, just like the Outer Radius of Odorant Sphere; and it determines the direction of the scent. Inner Diffusion Angle defines a spherical sector. If the Olfactory Epithelium is within the inner spherical sector, the directional scale is set to one. Outer Diffusion Angle defines a spherical sector. If the Olfactory Epithelium is anywhere outside of the outer spherical sector, the directional scale is set to zero. Radial Scaler changes how the directional scaler interpolates between the inner and outer spherical sector. Decay Seconds determines the life-span of the odor after activation. Activation can be done through code with OdorantSpecific.EmitOdorant()
. After that, the countdown begins, and the odor gradually decays. Think of a trash can opening, or decanting a beverage. If Decay Seconds is set to a negative value, it will be continuously active, like an exhaust vent or a candle burning. No need to activate it through code. OdorantIntensity = distanceScaler * decayScaler * directionalScaler * maximumThreshold
Inspector view of Odorant Specific A set of gizmo lines will appear in editor on an Odorant Specific component based on the Odorant Vector and the Diffusion Angles. Blue lines represent the sides of the inner spherical sector and the cyan lines represent the sides of the outer spherical sector. Scene view of Odorant Specific
Designed to facilitate odorant interactions where the "speed of smell" is critical to the user experience. When OdorantBurst.Burst()
is called, an expanding sphere of odor emanates from your gameobject based on the perimeters provided in the inspector.Effusion Rate, in short, is a scalar describing how quickly a gas moves into another gas through a hole. Effusion Rate can be calculated with𝑟=1/√𝑚r=1/√mwhere𝑟ris the effusion rate and𝑚mis the molar mass of the molecules effusing. Burst will automatically calculate the diffusion tensor for you at run-time based on other run-time variables. Debug Radius can have a sphere mesh prefab assigned to it. This can be used to experiment with different perimeters. Note: It is assumed that the sphere mesh has a radius of 50cm.Parent Transform when active, tells the Burst Component to run scent intensity calculations based on where the gameobject is currently. If inactive, intensity calculations will be run on the location Burst was activated with Burst()
.Inspector view of Odorant Burst A gizmo wire sphere will appear indicating the center of the Burst. Scene view of Odorant Burst