Cogito, ergo sum
Difference between revisions of "UE1:RSkeletalMeshEx"
m (→Functions) |
|||
Line 69: | Line 69: | ||
* SkeletalMesh - skeletal mesh. Can look like: SkeletalMesh(Mesh) | * SkeletalMesh - skeletal mesh. Can look like: SkeletalMesh(Mesh) | ||
* int index - bone index (use GetNumBones to have list of all bones) | * int index - bone index (use GetNumBones to have list of all bones) | ||
+ | |||
+ | ==RSkeletalActor== | ||
+ | |||
+ | ===Variables=== | ||
+ | |||
+ | * bool bUpdateRotation - if true, rotation will also be updated | ||
+ | * bool bDisableNativeUpdate - if true, native update will be disabled. In order to update location you'll have to yse UpdateAttached function. | ||
+ | * rotator RotationOffset - rotation offset (relative to bone rotation) | ||
+ | * vector LocationOffset - location offset (relative to bone location) | ||
+ | |||
+ | ===Funstions=== | ||
+ | |||
+ | ====AttachToBone==== | ||
+ | <uscript>native final function bool AttachToBone(Actor ABase , string Bone);</uscript> | ||
+ | When called will attach itself into ABase bone. | ||
+ | |||
+ | input parameters: | ||
+ | * Actor ABase - actor we'll be attached to | ||
+ | * string BoneName - bone name. Eg. "Bip01 R Finger1" | ||
+ | |||
+ | ====UpdateAttached==== | ||
+ | <uscript>native final function UpdateAttached();</uscript> | ||
+ | Updates actor location (can be used only if bDisableNativeUpdate is true) | ||
+ | |||
+ | ====DetachFromBone==== | ||
+ | <uscript>native final function DetachFromBone();</uscript> | ||
+ | If called will detach itself from attached actor. | ||
+ | |||
==Changelog== | ==Changelog== | ||
+ | *'''v 0.0.2''' | ||
+ | **added function RSkeletalActor which implements AttachToBone function | ||
*'''v 0.0.1 (first public release)''' | *'''v 0.0.1 (first public release)''' | ||
**added function GetBoneRotation and GetBoneLocation | **added function GetBoneRotation and GetBoneLocation |
Revision as of 08:23, 23 June 2008
Contents
About
I've wrote extended skeletal animation support. Features:
- returns bone details (position, orientation, etc)
- returns whenever bone exists or not
- returns number of bones
- returns bone name by index
RSkeletalMeshEx static functions
function GetBoneDetails
native static final function GetBoneDetails(SkeletalMesh SkeletalMesh, string BoneName, bool bNoRelative, out rotator Orientation, out vector Position, out float Length, out vector Size);
Returns bone details as output parameters
input parameters:
- SkeletalMesh - skeletal mesh. Can look like: SkeletalMesh(Mesh)
- string BoneName - bone name. Eg. "Bip01 R Finger1"
- bool bNoRelative - if false, it'll also take all root bones position/orientation into account
output parameters
- rotator Orientation - bone rotation
- vector Position - bone position
- float Length - bone lenght
- vector Size - bone size
function GetBoneLocation
native static final function vector GetBoneLocation(SkeletalMesh SkeletalMesh, string BoneName, bool bNoRelative);
Returns bone position
input parameters:
- SkeletalMesh - skeletal mesh. Can look like: SkeletalMesh(Mesh)
- string BoneName - bone name. Eg. "Bip01 R Finger1"
- bool bNoRelative - if false, it'll also take all root bones
function GetBoneRotation
[coden]ative static final function rotator GetBoneRotation(SkeletalMesh SkeletalMesh, string BoneName, bool bNoRelative);</uscript> Returns bone orientation
input parameters:
- SkeletalMesh - skeletal mesh. Can look like: SkeletalMesh(Mesh)
- string BoneName - bone name. Eg. "Bip01 R Finger1"
- bool bNoRelative - if false, it'll also take all root bones
function BoneExists
native static final function bool BoneExists(SkeletalMesh SkeletalMesh, string BoneName);
Returns whenever given bone exists or not
input parameters:
- SkeletalMesh - skeletal mesh. Can look like: SkeletalMesh(Mesh)
- string BoneName - bone name. Eg. "Bip01 R Finger1"
function GetNumBones
native static final function int GetNumBones(SkeletalMesh SkeletalMesh);
Returns number of bones in given skeletal mesh
input parameters:
- SkeletalMesh - skeletal mesh. Can look like: SkeletalMesh(Mesh)
function GetBoneNameByIndex
native static final function name GetBoneNameByIndex(SkeletalMesh SkeletalMesh, int index);
Returns bone name
input parameters:
- SkeletalMesh - skeletal mesh. Can look like: SkeletalMesh(Mesh)
- int index - bone index (use GetNumBones to have list of all bones)
RSkeletalActor
Variables
- bool bUpdateRotation - if true, rotation will also be updated
- bool bDisableNativeUpdate - if true, native update will be disabled. In order to update location you'll have to yse UpdateAttached function.
- rotator RotationOffset - rotation offset (relative to bone rotation)
- vector LocationOffset - location offset (relative to bone location)
Funstions
AttachToBone
native final function bool AttachToBone(Actor ABase , string Bone);
When called will attach itself into ABase bone.
input parameters:
- Actor ABase - actor we'll be attached to
- string BoneName - bone name. Eg. "Bip01 R Finger1"
UpdateAttached
native final function UpdateAttached();
Updates actor location (can be used only if bDisableNativeUpdate is true)
DetachFromBone
native final function DetachFromBone();
If called will detach itself from attached actor.
Changelog
- v 0.0.2
- added function RSkeletalActor which implements AttachToBone function
- v 0.0.1 (first public release)
- added function GetBoneRotation and GetBoneLocation
Download
As always source code is included in zip file.
link: RSkeletalMeshEx (~51kb)
Credits
- Raven - whole code :)
- Astyanax - quaternion to rotator function (found somewhere at BU)
- Smirftsch - being patient to my noob C++ questions :P