Skip to content

Commit f9a999c

Browse files
committed
Adds anim_sequence_get_skeleton
1 parent a811af1 commit f9a999c

File tree

4 files changed

+33
-0
lines changed

4 files changed

+33
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include "UnrealEnginePythonPrivatePCH.h"
2+
#include "Animation/AnimSequence.h"
3+
4+
PyObject *py_ue_anim_sequence_get_skeleton(ue_PyUObject * self, PyObject * args) {
5+
ue_py_check(self);
6+
7+
if (!self->ue_object->IsA<UAnimSequence>())
8+
return PyErr_Format(PyExc_Exception, "UObject is not a UAnimSequence.");
9+
10+
UAnimSequence *anim_seq = (UAnimSequence *)self->ue_object;
11+
USkeleton *skeleton = anim_seq->GetSkeleton();
12+
if (!skeleton) {
13+
Py_INCREF(Py_None);
14+
return Py_None;
15+
}
16+
17+
ue_PyUObject *ret = ue_get_python_wrapper((UObject *)skeleton);
18+
if (!ret)
19+
return PyErr_Format(PyExc_Exception, "uobject is in invalid state");
20+
Py_INCREF(ret);
21+
return (PyObject *)ret;
22+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#pragma once
2+
3+
4+
5+
#include "UnrealEnginePython.h"
6+
7+
PyObject *py_ue_anim_sequence_get_skeleton(ue_PyUObject *, PyObject *);

Source/UnrealEnginePython/Private/UEPyModule.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,9 @@ static PyMethodDef ue_PyUObject_methods[] = {
283283
#if WITH_EDITOR
284284
// AssetUserData
285285
{ "asset_import_data", (PyCFunction)py_ue_asset_import_data, METH_VARARGS, "" },
286+
287+
// AnimSequence
288+
{ "anim_sequence_get_skeleton", (PyCFunction)py_ue_anim_sequence_get_skeleton, METH_VARARGS, "" },
286289
#endif
287290

288291
// Input

Source/UnrealEnginePython/Private/UnrealEnginePythonPrivatePCH.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343

4444
#if WITH_EDITOR
4545
#include "UEPyFARFilter.h"
46+
#include "UEPyAnimSequence.h"
4647
#endif
4748

4849
#define ue_py_check(py_u) if (!py_u->ue_object || !py_u->ue_object->IsValidLowLevel() || py_u->ue_object->IsPendingKillOrUnreachable())\

0 commit comments

Comments
 (0)