Jump to content

[1.8.9] Anyone know any kind of model software for entities?


Recommended Posts

Posted

Anyone know how to make animation APIs? I'm still very new to APIs and animatoins

You don't need to write an API to make animations. Look at vanilla - they hard-coded all of their animations using math within the context of the model and renderer frameworks. You can do that, too.

 

Or you can try to write an 'API', but people throw that term around without really thinking about it. Do you know what it means? What would be your goals in making such an API? Who is the target audience? How, exactly, would it work? Is your API going to read in the animation frames from Tabula, for example? Or are users of the API going to need to do some coding and math of their own? This is a HUGE task no matter which approach you decide to take.

 

Also, why do you want to write your own animation 'API' instead of using ones that are available? I believe TheHippoMaster wrote one, and then BobMowzie has one that is adapted from the first, and I think there is even one that does allow you to import / read animations from the Tabula files.

 

If you still want to write your own API, that's fine - I did. But I did it for fun and also so that my mod wouldn't have any dependencies. Is it the best animation API out there? Probably not, but that was never its goal. It does what I need it to do and I enjoyed creating it.

 

Anyway, think about why you think you need to write an animation API. You probably don't need to, but if you do, be prepared for a pretty monumental task and read up on your math.

Posted

It's a mix between the first and third option.

 

Here is the animation video too:

 

Those animations are all 1 movement you move a part to its destination then back to the start. The walking an idle animations would use sine cosine waves to loop. Just check if the entity is moving for the walking otherwise use the idle.

 

The bite looks like an attack. I would look at how the iron golem attacks and mimic its code. The scratch...not sure what it is for as it doesn't extend past the face....but it could make use of the same code.

 

Something to think about when your creature attacks though. Living entities are immune to damage for a few ticks after being hurt. If your creature has touch damage enabled then chances are it will run face first into its target and cause touch damage before attacking, knocking back its target or negating any attacks soon after. Just something to keep in mind

 

I've been looking at the code but I want to utilize the degrees in the degrees I made in Tabula, similar to what Jabelar did but I'm not sure how to call the animations or set them up properly

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

Minecraft model rotation 'angles' are in radians, not degrees, so you'll need to convert them.

 

As for 'how' - look at some vanilla mob model classes and check out their setRotationAngles and setLivingAnimation methods.

 

If you want to use the values from Tabula, you can make an array containing them converted to radians, where each element is a 'frame', and then interpolate the value each render tick based on the animation progress. Or you can get super complicated and have an entire framework set up to help you, so that you end up with something like this:

// helper method
public static boolean applyAnimation(IAnimation animation, int frame, float partialTick, float speed, float multiplier, float offset, boolean invert) {
if (animation.shouldApply(frame, partialTick, speed)) {
	animation.apply(frame, partialTick, speed, multiplier, offset, invert);
	return true;
}
return false;
}

// called in the model class
private void animateActions(EntityWithAnimationInterface entity, float par2, float par3, float partialTick) {
Entity target = entity.getCurrentTarget();
List<EntityAction> actions = entity.getActiveActions();
for (EntityAction action : actions) {
	int frame = entity.getActionTime(action.id);
	if (frame > 0) {
		float speed = entity.getActionSpeed(action.id);
		float offset = entity.getActionOffset(action.id);
		IAnimation.Helper.applyAnimation(getAnimation(action), frame, partialTick, speed, 1.0F, offset, false);
	}
}
}

Where an animation might look something like this:

READY_ANIMATION = new ImmutableList.Builder<IAnimation>()
	.add(new AnimationTargetAngle(stem1, RotationAxis.X, -15.0F, 5, 10, true))
	.add(new AnimationTargetAngle(stem2, RotationAxis.X, 20.0F, 5, 10, true))
	.add(new AnimationTargetAngle(stem3, RotationAxis.X, 30.0F, 5, 10, true))
	.add(new AnimationTargetAngle(head_base, RotationAxis.X, 60.0F, 5, 10, true))
	.build();

Note that those are the same values as from Tabula and the animation code converts them to radians internally.

 

But anyway, that kind of thing takes an entire framework to support it, whereas you can get by doing things more like vanilla especially if your animations are not too complicated (which they don't appear to be).

Posted

Thats acutally what I want to go, a framework that I utilize for the entity im working on currently and all of my other ones. But I don't know where to acutally start off with when it comes to developing the framework. So far I started making an interface based on the code off of the original AnimationAPI mod and JurrasiCraft. I did make a seperate 'mod' built within (just in a different package).

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Posted

Scratch what I said in the previous, I'd just like to go for something easy for animation, since this is my first time dealing with it. I'd like to go with methods hardcoded into the model since I have only one entity as of right now. Later on I would like to progress it into a framework

Main Developer and Owner of Zero Quest

Visit the Wiki for more information

If I helped anyone, please give me a applaud and a thank you!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.