Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.8]Creating Player Model Animations?


Mecblader
 Share

Recommended Posts

Hello, I was just wondering how complicated it would be to add new player model animations, or poses, whenever a certain event is triggered. If it is reasonable, in terms of effort, then how would i have to go about adding new player model animations?

Don't be afraid to ask question when modding, there are no stupid question! Unless you don't know java then all your questions are stupid!

Link to comment
Share on other sites

What kind of animation do you looking for? If it just uses vanilla player model parts, you can do it easily in RenderPlayerEvent, by modifying the model's rotation value.

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Link to comment
Share on other sites

I tried using that as an event a tried registering the event with both: MinecraftForge.EVENT_BUS.register(new CLASSGOESHERE); & FMLCommonHandler.instance().bus().register(new CLASSGOESHERE());, but the event is not being called. I have worked with other events before, but am I using this one wrong?

Don't be afraid to ask question when modding, there are no stupid question! Unless you don't know java then all your questions are stupid!

Link to comment
Share on other sites

Well basically I added a different fishing system into minecraft an I want to make the player bend over and render the item, being a fishing net, in the water.

Don't be afraid to ask question when modding, there are no stupid question! Unless you don't know java then all your questions are stupid!

Link to comment
Share on other sites

I would do that, but my mod is meant to be a a standalone mod, except forge of course.  My mod completely overhauls minecraft, meaning that is will not be and is not intended to be compatible with other mods and I wanted it be be a pickup and go kind of mod, meaning that I don't really want the user to have to download the api and then use it.

Don't be afraid to ask question when modding, there are no stupid question! Unless you don't know java then all your questions are stupid!

Link to comment
Share on other sites

OK, so I have overridden the whole RenderPlayer class, via reflection during the the post init period in my client proxy class, with my new class that extends RenderPlayer, but none of the methods seem to be called, did I do it wrong.

 

My reflection code(keep in mind that I have not done reflection very often before, I know about it, but not much experience with it)

 

	
                Minecraft mc = Minecraft.getMinecraft();
	Field privateStringField = null;

	try {
		privateStringField = RenderManager.class.getDeclaredField("field_178637_m");
	} catch (NoSuchFieldException e) {
		e.printStackTrace();
	} catch (SecurityException e) {
		e.printStackTrace();
	}

	privateStringField.setAccessible(true);

//Test Code
	try {
		Log.println("Before: " + privateStringField.get(mc.getRenderManager()));
	} catch (IllegalArgumentException e1) {
		e1.printStackTrace();
	} catch (IllegalAccessException e1) {
		e1.printStackTrace();
	}
//Test Code
	PlayerRender playerRender = new PlayerRender(mc.getRenderManager());
	Log.println("New: " + playerRender);
	try {
		privateStringField.set(mc.getRenderManager(), playerRender);
	} catch (IllegalArgumentException e) {
		e.printStackTrace();
	} catch (IllegalAccessException e) {
		e.printStackTrace();
	}

//Test Code
	try {
		Log.println("After: " + privateStringField.get(mc.getRenderManager()));
	} catch (IllegalArgumentException e1) {
		e1.printStackTrace();
	} catch (IllegalAccessException e1) {
		e1.printStackTrace();
	}

	privateStringField.setAccessible(false);

 

 

My RenderPlayerClass(Don't really think you'll need it, but here is it anyway)

@SideOnly(Side.CLIENT)
public class PlayerRender extends RenderPlayer {

public PlayerRender(RenderManager renderManager) {
	this(renderManager, true);
}

public PlayerRender(RenderManager renderManager, boolean useSmallArms) {
	super(renderManager, useSmallArms);
}
}

 

Don't be afraid to ask question when modding, there are no stupid question! Unless you don't know java then all your questions are stupid!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
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.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • This isn't something we can fix (or even work around) without someone on the Dev team having an M1 Mac. For context, this is not a Forge issue, Apple being Apple they decided M1's didn't need backwards compatiblity with their old graphics API when they made the new one and the update to GLFW to accomodate the change hasn't made its way through LWJGL as of this writing
    • Hello. I am trying to add custom ores. Everything seems to be called and executed (when print statements are added), but nothing changes in game. I had it working in 1.16, but not in 1.17. I changed some of it to work with the new forge version, and it compiles without errors, but nothing changes in game. Any help figuring this out is appreciated.   Code: @Mod.EventBusSubscriber public class OreGeneration { public static ImmutableList<TargetBlockState> ORE_TARGET_LIST; public static final ArrayList<ConfiguredFeature<?, ?>> overworldOres = new ArrayList<ConfiguredFeature<?, ?>>(); public static void registerOres(){ ORE_TARGET_LIST = ImmutableList.of(OreConfiguration.target(Predicates.NATURAL_STONE, Blocks.STONE.defaultBlockState())); overworldOres.add(register("tin_ore_block", Feature.ORE.configured(new OreConfiguration(ORE_TARGET_LIST, 5)) .rangeUniform(VerticalAnchor.absolute(0), VerticalAnchor.absolute(48)) .squared() .count(20) )); } private static <FC extends FeatureConfiguration> ConfiguredFeature<FC, ?> register(String name, ConfiguredFeature<FC, ?> configuredFeature) { return Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new ResourceLocation(Extras.MODID, name), configuredFeature); } @SubscribeEvent(priority = EventPriority.HIGHEST) public static void registerBiomeModification(BiomeLoadingEvent event) { BiomeGenerationSettingsBuilder generation = event.getGeneration(); for(ConfiguredFeature<?, ?> ore : overworldOres){ if (ore != null) { generation.getFeatures(Decoration.UNDERGROUND_ORES).add(() -> { return ore; }); } } } }
    • you haven't, you still store the ModEventBus in a static Field and you register the Renderer of your Entity in FMLCommonSetupEvent and not in FMLClientSetupEvent Edit: you still use static initializer for your EntityTypes, I would recommend you to look again at the basics for the Registry System: FCW or the Forge doc
    • post debug log, if you use java 17 downgrade to java 16, since at the moment not supported by Forge
    • Forge doesn't support java 17 yet, use java 16 instead 
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.