Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - raft

#1
Bones / Re: BonesIO Question
September 16, 2020, 08:11:47 PM
that's a weird question AGP! :o

I dont have an IDE ATM either. use grep and look closer at the results.


$ grep -rl "Skeleton skeleton"
raft/jpct/bones/Animated3D.java
raft/jpct/bones/AnimatedGroup.java
raft/jpct/bones/BonesImporter.java
raft/jpct/bones/JointChannel.java
raft/jpct/bones/SkeletonDebugger.java
raft/jpct/bones/SkeletonPose.java
raft/jpct/bones/SkinClip.java
raft/jpct/bones/SkinClipSequence.java

$ grep -r "Skeleton skeleton"
raft/jpct/bones/Animated3D.java:        private Skeleton skeleton;
raft/jpct/bones/Animated3D.java://      void replaceSkeleton(Skeleton skeleton) {
raft/jpct/bones/AnimatedGroup.java:             Skeleton skeleton1 = one.objects[0].getSkeleton();
raft/jpct/bones/AnimatedGroup.java:             Skeleton skeleton2 = other.objects[0].getSkeleton();
raft/jpct/bones/AnimatedGroup.java://           Skeleton skeleton = groups[0].get(0).getSkeleton();
raft/jpct/bones/BonesImporter.java:             Skeleton skeleton = convertArdorSkeleton(findUniqueArdorSkeleton(colladaStorage));
raft/jpct/bones/BonesImporter.java:             Skeleton skeleton = null;
raft/jpct/bones/BonesImporter.java:             com.ardor3d.extension.animation.skeletal.Skeleton skeleton = null;
raft/jpct/bones/BonesImporter.java:     private static Skeleton convertArdorSkeleton(com.ardor3d.extension.animation.skeletal.Skeleton skeleton) {
raft/jpct/bones/BonesImporter.java:             Skeleton skeleton = new Skeleton(joints);
raft/jpct/bones/BonesImporter.java:     private static JointChannel convertJMEJointChannel(com.jmex.model.ogrexml.anim.BoneTrack track, Skeleton skeleton, int[] jointOrder) {
raft/jpct/bones/BonesImporter.java:     private static SkinClip convertArdorSkinClip(Skeleton skeleton,
raft/jpct/bones/BonesImporter.java:     private static SkinClip convertJMESkinClip(Skeleton skeleton, com.jmex.model.ogrexml.anim.BoneAnimation boneAnimation, int[] jointOrder) {
raft/jpct/bones/JointChannel.java:      void rotate(Skeleton skeleton, Quaternion rotation) {
raft/jpct/bones/SkeletonDebugger.java:  private final Skeleton skeleton;
raft/jpct/bones/SkeletonPose.java:      final Skeleton skeleton;
raft/jpct/bones/SkeletonPose.java:      public SkeletonPose(Skeleton skeleton) {
raft/jpct/bones/SkinClip.java:  private Skeleton skeleton;
raft/jpct/bones/SkinClip.java:  public SkinClip(Skeleton skeleton, JointChannel... channels) {
raft/jpct/bones/SkinClip.java:  public SkinClip(Skeleton skeleton, List<JointChannel> channels) {
raft/jpct/bones/SkinClip.java:  SkinClip(Skeleton skeleton, SkinClip other) {
raft/jpct/bones/SkinClip.java:  private SkinClip(Skeleton skeleton) {
raft/jpct/bones/SkinClip.java:  void replaceSkeleton(Skeleton skeleton) {
raft/jpct/bones/SkinClipSequence.java:          Skeleton skeleton = sequences[0].getSkeleton();
#2
Bones / Re: BonesIO Question
August 17, 2020, 10:12:02 AM
that's correct, every Animated3D must share the same skeleton to be in the same AnimatedGroup.

I cant see anything breaking the animation in that method.
#3
Bones / Re: BonesIO Question
August 03, 2020, 02:12:19 PM
isnt this always returning false?
if (lastClip.getSkeleton().equals(objects[0].getSkeleton()) && lastClip.getSkeleton() != objects[0].getSkeleton())

like
if (a.equals(b) && a != b)
#4
Bones / Re: BonesIO Question
July 30, 2020, 10:21:37 AM
Difficult to make a comment without knowing how you are actually importing/reading the data.
#5
Bones / Moved to GitHub
July 19, 2020, 07:23:33 PM
Source code of Bones moved to GitHub.
https://github.com/raftAtGit/Bones.

The latest downloadable zip file can be found at releases page.

Of course this doesnt mean, Bones is moving away from jPCT community. It's a library for jPCT after all :)

The primary feedback and question medium will still be jPCT forums as mentioned in the feedback section.

This was something I wanted to do since long time, to get rid of the burden of keeping the source code safe. Cloudforge, the previous host of Bones' code is closing, so this looked like the proper time to do that.

Egon, can you please update the links :)
#6
Bones / Re: BonesIO Question
July 16, 2020, 06:56:49 PM
sorry for the late answer, somehow I didnt receive the notification email.

BonesIO class reads and writes using Java serialization. Java serialization preserves objects references.

So, as long as SkinClips and SkinClipSequences share the same Skeleton instance when they are written by BonesIO, they will share the same Skeleton instance when read by BonesIO.

#7
Bones / Re: BonesIO Question
July 10, 2020, 07:36:31 PM
not sure what's asked here, but loaded SkinClips and SkinClipSequences share the same Skeleton instance.
#8
Bones / Re: synchronize audio and animation
May 03, 2019, 05:10:37 PM
Well, you are in control of starting an animation sequence and starting audio callback, you can do both at the same time and stop audio when you decide to stop animation sequence. or vice versa, stop animation sequence when audio ends.
#9
Bones / Re: Not Repeat animation
May 01, 2019, 10:13:53 AM
Is this a Vuforia question or Bones question?

for Bones, there is no such thing of stopping animation, because there is no such thing of starting an animation.
#10
Bones / Re: Parsing SkinClipSequence
May 08, 2018, 07:51:07 PM
okay, exposed a copy of internal data structures in JointChannel. please re-download.

hope this helps
#11
Bones / Re: Parsing SkinClipSequence
May 08, 2018, 05:44:50 PM
SkinClip is the analogue of sub sequence in jPCT's Animation class. It's for whole skeleton, JointChannel is only for a joint in skeleton.

I can expose the internal data in JointChannel, but may not be trivial to split a channel's animation into shorter ones.

It's a bit weird EasyOgreExporter doesnt support multiple animations, it's written 'multiple Skeleton Animations' in their web page. Anyway, if that is the case, I would suggest, export each animation into a different file, and merge them with Bones, so you will end up with separate animations. merging can be done either with scripts (multiple input files) or programatically with AnimatedGroup.mergeAnimations(..) method.
#12
Bones / Re: Parsing SkinClipSequence
May 07, 2018, 08:19:33 PM
yup, supposed to be
#13
Bones / Re: Parsing SkinClipSequence
May 07, 2018, 08:14:01 PM
well, as the Javadoc says, SkinClip.iterator() may return null values, just skip null ones in your code
#14
Bones / Re: Parsing SkinClipSequence
May 07, 2018, 01:48:39 PM
/** <p>Returns an iterator of channels. Note some channels may be null.</p> */
public Iterator<JointChannel> iterator() {
return Arrays.asList(channels).iterator();
}
#15
Bones / Re: Parsing SkinClipSequence
May 04, 2018, 11:27:03 PM
ah okay. well, still the same method in other scale, get JointChannel's from SkinClip, create new clips, add channels into new clips