[Automated] Merged develop into main

This commit is contained in:
ynbot 2023-05-17 05:25:02 +02:00 committed by GitHub
commit 8e9d216971
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 54 deletions

View file

@ -35,6 +35,7 @@ body:
label: Version
description: What version are you running? Look to OpenPype Tray
options:
- 3.15.7
- 3.15.7-nightly.3
- 3.15.7-nightly.2
- 3.15.7-nightly.1
@ -134,7 +135,6 @@ body:
- 3.14.1
- 3.14.1-nightly.4
- 3.14.1-nightly.3
- 3.14.1-nightly.2
validations:
required: true
- type: dropdown

View file

@ -89,50 +89,26 @@ class ExistingLayoutLoader(plugin.Loader):
raise NotImplementedError(
f"Unreal version {ue_major} not supported")
def _get_transform(self, ext, import_data, lasset):
conversion = unreal.Matrix.IDENTITY.transform()
fbx_tuning = unreal.Matrix.IDENTITY.transform()
def _transform_from_basis(self, transform, basis):
"""Transform a transform from a basis to a new basis."""
# Get the basis matrix
basis_matrix = unreal.Matrix(
basis[0],
basis[1],
basis[2],
basis[3]
)
transform_matrix = unreal.Matrix(
transform[0],
transform[1],
transform[2],
transform[3]
)
basis = unreal.Matrix(
lasset.get('basis')[0],
lasset.get('basis')[1],
lasset.get('basis')[2],
lasset.get('basis')[3]
).transform()
transform = unreal.Matrix(
lasset.get('transform_matrix')[0],
lasset.get('transform_matrix')[1],
lasset.get('transform_matrix')[2],
lasset.get('transform_matrix')[3]
).transform()
new_transform = (
basis_matrix.get_inverse() * transform_matrix * basis_matrix)
# Check for the conversion settings. We cannot access
# the alembic conversion settings, so we assume that
# the maya ones have been applied.
if ext == '.fbx':
loc = import_data.import_translation
rot = import_data.import_rotation.to_vector()
scale = import_data.import_uniform_scale
conversion = unreal.Transform(
location=[loc.x, loc.y, loc.z],
rotation=[rot.x, rot.y, rot.z],
scale=[-scale, scale, scale]
)
fbx_tuning = unreal.Transform(
rotation=[180.0, 0.0, 90.0],
scale=[1.0, 1.0, 1.0]
)
elif ext == '.abc':
# This is the standard conversion settings for
# alembic files from Maya.
conversion = unreal.Transform(
location=[0.0, 0.0, 0.0],
rotation=[0.0, 0.0, 0.0],
scale=[1.0, -1.0, 1.0]
)
new_transform = (basis.inverse() * transform * basis)
return fbx_tuning * conversion.inverse() * new_transform
return new_transform.transform()
def _spawn_actor(self, obj, lasset):
actor = EditorLevelLibrary.spawn_actor_from_object(
@ -140,16 +116,13 @@ class ExistingLayoutLoader(plugin.Loader):
)
actor.set_actor_label(lasset.get('instance_name'))
smc = actor.get_editor_property('static_mesh_component')
mesh = smc.get_editor_property('static_mesh')
import_data = mesh.get_editor_property('asset_import_data')
filename = import_data.get_first_filename()
path = Path(filename)
transform = self._get_transform(
path.suffix, import_data, lasset)
transform = lasset.get('transform_matrix')
basis = lasset.get('basis')
actor.set_actor_transform(transform, False, True)
computed_transform = self._transform_from_basis(transform, basis)
actor.set_actor_transform(computed_transform, False, True)
@staticmethod
def _get_fbx_loader(loaders, family):
@ -320,9 +293,12 @@ class ExistingLayoutLoader(plugin.Loader):
containers.append(container)
# Set the transform for the actor.
transform = self._get_transform(
path.suffix, import_data, lasset)
actor.set_actor_transform(transform, False, True)
transform = lasset.get('transform_matrix')
basis = lasset.get('basis')
computed_transform = self._transform_from_basis(
transform, basis)
actor.set_actor_transform(computed_transform, False, True)
actors_matched.append(actor)
found = True