Skip to content

Version History

v2.0.0

Release Date: 27. Feb. 2026

New Features

  • Modules
    most existing userscripts are now built-in and available from one place where they can be selectively activated. The module system parses the files in the module directory at startup, so more modules can be added on the fly, while existing modules can be edited. Check the website / bsky / 𝕏 for updates - new modules can be installed without having to wait for a new release.

    • The main advantages of this new system are:
      • complex UI layouts are possible, same as with native blender addons
      • Extensible - add / remove modules
      • Having many features available without cluttering the UI.
      • no more dependency on text blocks that are unique to blender files
      • Modules can work together - e.g. The Autofocus module takes into account changes made by the Camera Switcher module.
      • Note: the modules are identified by name, so when adding new ones, make sure they do not conflict
    • the old UserScript features are still here and a fast way to prototype directly in blender.
    • the new Module system shares all API calls with UserScripts
  • the UserScript and Module system are using a new API - they now directly access OmniSteps internal classes and methods. Old Userscripts from version 1 wont work without some changes. Claude, ChatGPT or similar are really good at translating it once they see some old vs new examples and parts of the addon source.

  • Animated Colliders: Dynmamic collisions are supported now. Any object (and hierarchy) with keyframed animations is now an animated collider. This enables moving platforms etc.

  • Start at current Frame: makes it easier to re-shoot parts of an animation.
  • Cursor Warp: Prevents the cursor from losing window focus during fast movements on multi-monitor setups. This replaces the old 'Center Cursor' option. Currently marked as Experimental.

Bugfixes

  • Euler Rotations are correctly filtered to prevent discontinuities.
    • Fixes motion blur glitches
    • Euler rotation keys can now be smoothed without issues
  • Scene Scale: Resolved a bug in acceleration calculations that made it unusable in walk mode.
  • Active Tool automatically switches to Cursor while OmniStep is running to avoid distractions from active tool overlays.

Scripting API

  • Full rewrite - see the Scripting section for details

v1.1.0

Release Date: 23. Oct. 2024

New Features

  • The player can 'Crouch' in Walk mode with Left Ctrl
    • Crouch factor and damping settings are available in Advanced Player Settings.
  • Recording and playback can be paused with P
  • Keyframes for the current frame are inserted when OmniStep ends, provided Blender's 'Auto-Keying' toggle is on. This is useful for manually setting walk/flythrough keys.
    (Note: new UserScripts demos include advanced functionality for manual keyframing.)
  • Q / E and Left/Right Gamepad Triggers are used for 'Roll' when 'Trackball Rotation' is active.
    • Up / Down movement in 'Fly' mode is additionally controlled with Left Ctrl and Space ('Crouch' / 'Jump').
    • Q / E still function as Up / Down in normal 'Fly' mode
  • 'Radial View Control' can be set to auto-center for gamepad inputs (found in 'Advanced Player Settings').
  • Blender's Status Bar displays the current frames per second.
  • Action keys support modifiers:
    • Action1 defaults to Left Mouse and Action2 to Left Alt + Left Mouse These settings can be customized in the Add-on Preferences.
  • Experimental support for cursor centering and hiding has been added. This feature helps prevent the cursor from leaving the window on multi-monitor setups. However, it may introduce slight lag and stutters, so it is off by default. It can be enabled in the Add-on Preferences.
  • Specific objects can be excluded from collisions using a custom boolean attribute named OStep.NoColl on the object.

Changes

  • E / Q default key mappings have been reversed to match the standard in major engines.
  • 'Jump' default mapping has been changed to the Space
  • 'Teleport' default mapping has been changed to the Z
  • Jump and crouch keys now also function as up/down controls in 'Fly' mode, in addition to E / Q
  • Trackball Auto Leveling now defaults to 0.0, as roll has been implemented.
  • Add-on preferences UI has been cleaned up.

Bugfixes

  • Stairs recognition has been improved:
    • Works much better with 3D scanned stairs that have uneven geometry.
    • Correctly recognizes stairs with bevels.
  • View locks are now restored correctly.
  • 'Fly Mode' friction can be set to 0.0.
  • Quaternion rotations no longer flip signs, providing several advantages:
    • Motion blur works without glitches.
    • Quaternion keyframes can be reduced without issues.
    • Note: Always use quaternions for camera animations; use Euler only for auto-keying single keyframes.
  • Old keyframes are removed much faster when restarting or starting a new recording.
  • Gamepad look rotation is now independent of framerate

Scripting API

  • The Scripting API includes several new and updated methods, which you can see in action on the new UserScripts Sample Page.
  • Although there are quite a few changes, the update is 99% backwards compatible. Most changes involve added or fixed features, and all the Examples have been updated to work with version v1.1.
  • Here is an overview of the new and updated methods/classes:
    # Data Class new Properties:
    data.input.mouse_move       # Vector (respects Input Smoothing)
    data.input.mouse_pos_raw    # Vector
    data.input.respawn          # bool
    data.player.fov             # float
    
    # Data Class Changes:
    data.player.root_mat        # Matrix now includes the player rotation around the Z-Axis
    
    
    # New Methods:
    self.player.align_root(self, normal, limit_deg=None)
    self.player.override_move_input(self, input_x=None, input_y=None, input_z=None)
    self.player.override_look_input(self, delta_pitch=None, delta_yaw=None, delta_roll=None)    
    self.player.set_fov(self, fov=None, seconds=None)
    
    self.util.insert_camera_keys(self, frame=None, mute_tracks=True)
    self.util.insert_camera_fov_key(self, mute=True)
    self.util.rotate_obj(self, obj, angle, axis, origin, space='global')
    self.util.get_shader_node(self, obj, node_name, material_name=None)
    self.util.clear_obj_animation(self, obj)
    self.util.get_children(self, obj, recursive=False)
    
    # Updated Methods:
    self.player.spawn(self, obj=None, set_active=True)
    
    self.scene.set_dynamic_collider(self, obj, full_evaluation=False, include_children=False, recursive=False)
    self.scene.remove_dynamic_collider(self, obj, include_children=False, recursive=False)
    
    self.util.duplicate_obj(self, obj, target_collection=None, deep_copy=False, include_children=False, recursive=False, clear_animation=False)
    self.util.delete_obj(self, obj, include_children=False, recursive=False)
    self.util.get_collection_objs(self, collection, type_filter=None, include_children=False, recursive=False)
    

v1.0.0

Release Date: 16. Sep. 2024

  • Initial Release