Jump to content

[1.10.2][1.9.4] Blockbuster - simple machinimas and cinematics for Minecraft


horsewithnoname

Recommended Posts

Hello there! :)

 

I'm proud to introduce to you my first published mod, meet Blockbuster mod!

 

Blockbuster will let you capture some basic machinimas (without having to hire/organize crowd of actors and cameras), and create some scripted cinematics (simple yet) for your adventure maps.

 

My mod's player's capturing mod is based on Mocap's source code. Author of this mod gave me permission to use his code.

 

The instruction and all information about the mod is hosted here (I'll create video later):

https://github.com/mchorse/blockbuster/blob/master/README.md

 

Download mod jar and adventure map here:

https://github.com/mchorse/blockbuster/releases/tag/pre-1.0

 

I tested my mod on OS X 10.10, but it should work on Windows and *nix too.

 

What do you think? Any issues/errors/crashes with mod? Any suggestions (I have some list of ideas, so there's a lot of room to grow 8) )?

 

Thank you for attention! :)

 

P.S.: Pun intended.

Blockbuster – simple machinimas and cinematics for Minecraft
Link to comment
Share on other sites

Hello!  Glad to see someone is still working on a Mocap mod.

I have a question:

Are you planning to go to 1.9.4 once you have things ironed out?

 

and a suggestion:

A flag in the /play command that, when set, makes the actor entity invulnerable.

Would be useful for preventing players from messing with a cutscene, or making recordings of a wizard or such walking through deadly things like lava.

Link to comment
Share on other sites

Hello!  Glad to see someone is still working on a Mocap mod.

I have a question:

Are you planning to go to 1.9.4 once you have things ironed out?

 

Sure! Right now I'm working on a overview/tutorial video for my mod, and then I'll start working on support for 1.9.4. By the way, what is difference between 1.9 and 1.9.4? Is it performance mostly or there are some new features?

 

A flag in the /play command that, when set, makes the actor entity invulnerable.

Would be useful for preventing players from messing with a cutscene, or making recordings of a wizard or such walking through deadly things like lava.

 

Good idea, I'll add this feature. Done.

Blockbuster – simple machinimas and cinematics for Minecraft
Link to comment
Share on other sites

By the way, what is difference between 1.9 and 1.9.4? Is it performance mostly or there are some new features?

Well, according to the Minecraft wiki:

 

1.9.1 added elytra sound effects, the generic.armorToughness stat, and made the crosshair attack indicator visible by default, as well as other minor changes and bugfixes.

1.9.2 was released soon thereafter to fix a crash in 1.9.1, when riding boats and minecarts on Realms servers.

1.9.3 was released to fix several stability issues, add the /stopsound command, and to implement a blacklist for servers not in conformance with the Minecraft EULA.

1.9.4 was released soon thereafter to fix an erroneous Realms warning.

 

So it was a bit of both.

Glad to hear about the invulnerability.

Can Blockbuster record players using the Elytra?

 

Link to comment
Share on other sites

Edit: it's really close to public release 1.0, first I'll publish the demo & tutorial video, and then release.

Great to hear!

I think I should tell you, I did load it into an Eclipse instance and play with it.

One of the things I tried doing was porting it to 1.9.4.

I appear to have succeeded, it's working properly.

 

Except that it won't build for me for some reason, the log seems to indicate that it's the § in ChatAction.  No idea what to do there.

I've put the source with my changes here so you can see what I did (I don't really know how to use Github, sorry):

https://dl.dropboxusercontent.com/u/58854535/src.zip

 

It was mostly name changes for functions and one field.

writeToNBT changed for tile entities, it needs to return an NBTTagCompound now. 

You might want to take a look at that, I'm not sure my solution to that change was the most elegant. (It seems to work though, it saved and loaded properly)

I am pretty much an amateur, after all.

Link to comment
Share on other sites

I think I should tell you, I did load it into an Eclipse instance and play with it.

One of the things I tried doing was porting it to 1.9.4.

I appear to have succeeded, it's working properly.

Wow, that's great, means less work. :D

 

I don't really know how to use Github, sorry

It's totally fine.

 

I am pretty much an amateur, after all.

Hey, I'm amateur too, at least in Minecraft modding, I started one month ago :D

 

the log seems to indicate that it's the § in ChatAction

I did a little workaround to enable text formatting in chat while recording chat messages. When you type '[' it would be replaced as '§' and will allow to use minecraft text formatting. You have this problem in log, because, it seems to me, your eclipse doesn't do UTF (when I opened your zip, it had kind of this <?> (used to represent missing representation AFAIK) symbol).

 

Edit: Did some testing on 1.9.4, it's not fully ready, there's some corruption recording code, I'll work on it after release.

Blockbuster – simple machinimas and cinematics for Minecraft
Link to comment
Share on other sites

I did a little workaround to enable text formatting in chat while recording chat messages. When you type '[' it would be replaced as '§' and will allow to use minecraft text formatting. You have this problem in log, because, it seems to me, your eclipse doesn't do UTF (when I opened your zip, it had kind of this <?> (used to represent missing representation AFAIK) symbol).

Yeah, I figured out what it did pretty quickly.  I just couldn't understand why my eclipse/gradle didn't like it.

I did manage to make it work after looking at the encoding stuff, so thank you.

 

Edit: Did some testing on 1.9.4, it's not fully ready, there's some corruption recording code, I'll work on it after release.

Well, I'm still glad to have helped at all.

I look forward to the possibilities that will open up when the mod is ready.

Link to comment
Share on other sites

Well, I'm still glad to have helped at all.

I look forward to the possibilities that will open up when the mod is ready.

 

Thank you! By the way, I've just figured out why there was the corruption with the recording code. Basically when I refactored action code, I forgot to override one method. In turn, the whole playback in those places were read wrong, so it was my fault. Right now everything should work as expected.

 

I'm planning to publish video and mod today or tomorrow (but not promising).

 

Edit: uploading video to YouTube, release really soon!

Blockbuster – simple machinimas and cinematics for Minecraft
Link to comment
Share on other sites

  • 3 weeks later...

Update 1.1 is out! Change log:

 

– GUIs for director blocks

– Improved actor and camera configuration GUIs

– Extended place block action (and broke the compatibility with 1.0)

– Better camera model (IMO)

– Works on dedicated server (fix)

 

Download mod:

https://github.com/mchorse/blockbuster/releases/tag/1.1

 

Tutorial video:

Blockbuster – simple machinimas and cinematics for Minecraft
Link to comment
Share on other sites

  • 4 weeks later...

Completely forgot to update this topic, sorry for that :D

 

Blockbuster 1.2 is out, and it adds better camera system which works way better than previous entity-like cameras. It is also integrated with director block.

 

Download link, video tutorial, and change log:

https://github.com/mchorse/blockbuster/releases/tag/1.2

Blockbuster – simple machinimas and cinematics for Minecraft
Link to comment
Share on other sites

  • 1 month later...

Dang it, forgot to update this forum post again  :(

 

1.3 update was released. This update is focused on giving actors custom look. It introduces custom models and player morphing! It also changes the way director block works, making director map block useless (hence removed).  :D

 

This update supports both 1.9.4 and 1.10.2 versions.

 

YouTube tutorial link:

 

Download and change log link:

https://github.com/mchorse/blockbuster/releases/tag/1.3

Blockbuster – simple machinimas and cinematics for Minecraft
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.
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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • They were already updated, and just to double check I even did a cleanup and fresh update from that same page. I'm quite sure drivers are not the problem here. 
    • i tried downloading the drivers but it says no AMD graphics hardware has been detected    
    • Update your AMD/ATI drivers - get the drivers from their website - do not update via system  
    • As the title says i keep on crashing on forge 1.20.1 even without any mods downloaded, i have the latest drivers (nvidia) and vanilla minecraft works perfectly fine for me logs: https://pastebin.com/5UR01yG9
    • Hello everyone, I'm making this post to seek help for my modded block, It's a special block called FrozenBlock supposed to take the place of an old block, then after a set amount of ticks, it's supposed to revert its Block State, Entity, data... to the old block like this :  The problem I have is that the system breaks when handling multi blocks (I tried some fix but none of them worked) :  The bug I have identified is that the function "setOldBlockFields" in the item's "setFrozenBlock" function gets called once for the 1st block of multiblock getting frozen (as it should), but gets called a second time BEFORE creating the first FrozenBlock with the data of the 1st block, hence giving the same data to the two FrozenBlock :   Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=head] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@73681674 BlockEntityData : id:"minecraft:bed",x:3,y:-60,z:-6} Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=3, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=2, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} here is the code inside my custom "freeze" item :    @Override     public @NotNull InteractionResult useOn(@NotNull UseOnContext pContext) {         if (!pContext.getLevel().isClientSide() && pContext.getHand() == InteractionHand.MAIN_HAND) {             BlockPos blockPos = pContext.getClickedPos();             BlockPos secondBlockPos = getMultiblockPos(blockPos, pContext.getLevel().getBlockState(blockPos));             if (secondBlockPos != null) {                 createFrozenBlock(pContext, secondBlockPos);             }             createFrozenBlock(pContext, blockPos);             return InteractionResult.SUCCESS;         }         return super.useOn(pContext);     }     public static void createFrozenBlock(UseOnContext pContext, BlockPos blockPos) {         BlockState oldState = pContext.getLevel().getBlockState(blockPos);         BlockEntity oldBlockEntity = oldState.hasBlockEntity() ? pContext.getLevel().getBlockEntity(blockPos) : null;         CompoundTag oldBlockEntityData = oldState.hasBlockEntity() ? oldBlockEntity.serializeNBT() : null;         if (oldBlockEntity != null) {             pContext.getLevel().removeBlockEntity(blockPos);         }         BlockState FrozenBlock = setFrozenBlock(oldState, oldBlockEntity, oldBlockEntityData);         pContext.getLevel().setBlockAndUpdate(blockPos, FrozenBlock);     }     public static BlockState setFrozenBlock(BlockState blockState, @Nullable BlockEntity blockEntity, @Nullable CompoundTag blockEntityData) {         BlockState FrozenBlock = BlockRegister.FROZEN_BLOCK.get().defaultBlockState();         ((FrozenBlock) FrozenBlock.getBlock()).setOldBlockFields(blockState, blockEntity, blockEntityData);         return FrozenBlock;     }  
  • Topics

×
×
  • Create New...

Important Information

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