Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BSLagBoneController support #529

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

TackYs
Copy link
Contributor

@TackYs TackYs commented Jul 1, 2022

@niftools/blender-niftools-addon-reviewer

Overview

[Overview of the content of the pull request]
BSLagBoneControllers are available in the nifformat but not exposed, this is a simple setup to allow for import and export.

Detailed Description

[List of functional updates]
The implementation is entirely custom property driven on niftools bone properties, it doesn't cause any actual behavior on the blender side. The behavior of lagbones would be quite similar to 'wiggle' or 'jiggly' bones in blender but those are addons, afaik similar functionality doesn't exist in base blender...

Fixes Known Issues

[Ordered list of issues fixed by this PR]
None, new feature

Documentation

[Overview of updates to documentation]
I should add some, if you think this PR has some merit.
Afaik lagbones are Skyrim only and in LE they work for skeletons and skins, whereas in SSE its skeleton only (caveat; I think this is the case, might be off)

Testing

[Overview of testing required to ensure functionality is correctly implemented]
Import/export nif with bslagbones set.

Manual

[Set of steps to manually verify updates are working correctly]

Automated

[List of tests run, updated or added to avoid future regressions]

Additional Information

[Anything else you deem relevant]
I've not set up properties for everything, just the ones I think are meaningful, should I?
Should this be refactored/ placed somewhere else?

n_controller.frequency = 1.0
n_controller.phase = 0.0
n_controller.start_time = consts.FLOAT_MIN
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure these two aren't reversed? Both in the xml and the (admittedly single) BSLagBoneController I checked start_time is FLOAT_MAX and stop_time is FLOAT_MIN.

#BSLagBoneControllers are only for skyrim and later, afaik
game = bpy.context.scene.niftools_scene.game
if game not in ('SKYRIM'):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could now be changed to if not bpy.context.scene.niftools_scene.is_skyrim():

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants