Added support for UsdSkel animation import. This addresses #110076. Added USDSkeletonReader class which imports UsdSkelSkeleton primitives as armatures. Extended USDMeshReader to import UsdSkelBlendShape as shape keys. Extended USDMeshReader to import USD skinning data as as deform groups and an armature modifier on the mesh object. Added USDMeshReader::get_local_usd_xform() to override the transform computation to account for the binding transformation for skinned meshes. Pull Request: https://projects.blender.org/blender/blender/pulls/110912
31 lines
796 B
C++
31 lines
796 B
C++
/* SPDX-FileCopyrightText: 2023 NVIDIA Corporation. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
#pragma once
|
|
|
|
#include "usd.h"
|
|
#include "usd_reader_xform.h"
|
|
|
|
#include <pxr/usd/usdSkel/skeleton.h>
|
|
|
|
namespace blender::io::usd {
|
|
|
|
class USDSkeletonReader : public USDXformReader {
|
|
private:
|
|
pxr::UsdSkelSkeleton skel_;
|
|
|
|
public:
|
|
USDSkeletonReader(const pxr::UsdPrim &prim,
|
|
const USDImportParams &import_params,
|
|
const ImportSettings &settings)
|
|
: USDXformReader(prim, import_params, settings), skel_(prim)
|
|
{
|
|
}
|
|
|
|
bool valid() const override;
|
|
void create_object(Main *bmain, double motionSampleTime) override;
|
|
void read_object_data(Main *bmain, double motionSampleTime) override;
|
|
};
|
|
|
|
} // namespace blender::io::usd
|