HeroEngine Forums

HeroEngine Support => Design & World Building => Topic started by: ComatoseRoses on Aug 23, 13, 01:30:32 AM

Title: 3d mesh manipulation
Post by: ComatoseRoses on Aug 23, 13, 01:30:32 AM
    Hello for the first time everyone. As our world is in the 2 day setup stage and haven't even been able to use it yet, this may be a bit early to ask this question however we are doing as much research as we can so we have the right direction. Please pardon any ignorance as this is for dev planning.

    The primary feature of our MMO is a robust crafting system that involves live 3d mesh manipulation for building everything, armor, weapons, houses, ext... We want the user to be able to pull up the crafting window associated with the skill/item being created and be able to physically grab different parts of the object and change the mesh. Easiest example would be a chest piece. A player with a smithing level of 10 or so would have access to a very basic prefab mesh looking much like a T-shirt.
    The piece of armor will have editable regions relative to the skill level. The player could grab these locations directly and pull the vertices and shape the piece of armor into a unique item shape. He could chose from maybe 3 low level materials obtained in the normal world and add the material to the object. The stat would then be updated to reflect the quality of the material used plus a couple of mods they could chose from.(Spikes, rivets, ext..) Once the player was satisfied with the piece, they could commit to it and the item would be forged granting experience relative to material rarity and possibly complexity. The player could also modify existing pieces of gear if level requirements were met.
    A player with say lvl 80 smithing would have access to a much larger array of materials obtained in the world. Every few levels would add more vertices that could be grabbed and modified, also more locations for adding modifications. We are almost after an in-game Blender of sorts with simple prefabs that can be turned into amazing, complex and totally unique objects.
    More prefabs(blue prints) could be obtained through auction houses or dungeon drops. Players could reverse engineer objects for their materials and blueprints.

    For the sake of simplicity, I'll keep the skill names generic. We want to use this same system for the following, just to name a few.

Leather Working
Home construction
Local Teriformation for home plots

Hopefully most of the code will be cut and paste with just a few modifications to each skill.

As I said, we haven't even opened the Game world yet but I need as much direction as we can get in order not to tackle a fundamental of our game from the wrong direction and wasting months of time. Any tips and suggestions would help us a great deal. Thank you!
Title: Re: 3d mesh manipulation
Post by: keeperofstars on Aug 23, 13, 09:54:22 AM
It's very doable, but a bunch of work for your modelers.

HeroEngine has dynamic parts system. This allows you to easily swap pieces of armor or in real essence "meshes" on any part of the body.

What you could do, (might be a better way but this has the most flexibility), is create a bunch more dynamic mesh areas. In most games you will see them for like boots, greaves, legs, bracers, helm, chest, sholders.

In your game though your chest piece will have subparts that are linked to the main piece that can only alter parts in that main piece. So your chest piece will lets say have 5 regions, bottom, center, over sholders, back, back bottom.

Then in the game you just build the GUI for the crafting interface, that allows for all of those things to get swapped around. When the item is successfully created you will create an item node that has all the customized information for each region, so basically what mesh part to use for each region of the armor.

Something like this.
item node
Name: Chest Piece of Something
Item Level: 40
Front bottom: copperFrontBottom.par  (part file)
Front Center: goldFrntCenter.par
Over Shoulders: leatherStraps.par

Now where this gets really tricky is making all of those customed parts that fit each of your character models. I highly suggest if you go this route to shoot for 1 maybe 2 races at most. OR have a small army of really good 3d modelers and texture people. Cause you will have to create and fit every individual part option onto the character model. So if you keep with our example and of the 5 region chest piece. And have Copper, gold, steel, iron, chain, plate as an option for each one. You get 25 different model pieces that need molded for just the chest piece. Start doing this for boots, arms, helm, gloves, legs, etc and you quickly get into a huge amount of work. Now granted doing it, has it pay offs, you get 3125 possible combinations alone for that one chest piece.

Now for a possible downside is that is a bunch of variation options for the client to have to load so might get a bit of performance hit, that you could save with more people having similar looking armor. Depending on your games focus this may or may not matter.

In regards to the skill system / gui system look at the spec system, and learn to build with it. Will make your life so much easier.
Title: Re: 3d mesh manipulation
Post by: ComatoseRoses on Aug 23, 13, 03:22:08 PM
Thank you very much for the reply! The task seams achievable now. My world just can online. Looking forward to this coming to life!
Title: Re: 3d mesh manipulation
Post by: JoshHalls on Aug 24, 13, 05:52:01 AM
Depends on what you mean by vertices. If you are just talking add/removing parts that are done outside of the engine that is quite possible. If you want to turn an 8 side rectangle into an octagon that isn't going to be possible.
Title: Re: 3d mesh manipulation
Post by: keeperofstars on Aug 24, 13, 10:33:31 AM
yeah in game mesh modification won't happen, you have to think more on the lines of swap one mesh for another mesh, but just doing it in a non-transparent magical way.