lovr.headset.animate

Edit

Animates a model to match its input state. The buttons and joysticks on a controller will move as they're pressed/moved and hand models will move to match hand tracking joints.

The model must have been created using lovr.headset.newModel with the animated flag set to true.



Arguments

NameTypeDescription
modelModel The model to animate.

Returns

NameTypeDescription
successboolean Whether the animation was applied successfully to the Model. If the Model was not compatible or animation data for the device was not available, this will be false.

Arguments

NameTypeDefaultDescription
deviceDevice'head' The device to use for the animation data.
modelModel The model to animate.

Returns

NameTypeDescription
successboolean Whether the animation was applied successfully to the Model. If the Model was not compatible or animation data for the device was not available, this will be false.

Notes

It's possible to animate a custom hand model by retargeting joint poses, see the Interaction/Custom_Hand_Rig example.

Example

function lovr.load()
  models = {
    left = lovr.headset.newModel('hand/left'),
    right = lovr.headset.newModel('hand/right')
  }
end

function lovr.draw(pass)
  for hand, model in pairs(models) do
    if lovr.headset.isTracked(hand) then
      lovr.headset.animate(model)
      pass:draw(model, mat4(lovr.headset.getPose(hand)))
    end
  end

  if not next(models) then
    pass:text('No models loaded', 0, 1.7, -1, .1)
  end
end

See also