Psychoticpyro Posted May 27, 2009 Share Posted May 27, 2009 First of all... I assume that the weapons has to be orientated and scaled in certain way in milkshape before importing to nifskope... Or else you´d find yourself holding a too tiny/huge weapon pointing in the wrong direction, ain´t that so? How do I know the correct position and scale in milkshape according to how I want my result to look like ingame? apart from that... does the weapon need animations? physics? how do I take care of that part if I only have the textured model? what animations/physics do I give it? can I import existing vanilla ones? what about nodes whatever they are? what about physics? I am quite certain that grenades use physics and firearms use nodes to know where the flash goes and all that kind of stuff, and animations too or else it´d be static, and what about the physics, how would my world models work without them?Do you have any idea of what I am asking? Could you please help me? thanks. Link to comment Share on other sites More sharing options...
Skree000 Posted May 27, 2009 Share Posted May 27, 2009 Getting stuff working is tricky, but once you learn the process it will be second nature.Gambryo/Netimmerse is a very powerful modular game engine using Nif files which are basically prepackaged modules that can contain alot of data, primarily meshes in some organized structure that is pre-setup so that the engine just needs to reference it and it will work. The way objects factor into animations in most games is by referencing properly named bones/nodes on those objects. In fallout3, there are a wide variety of animations already made for you, all we need to do is make sure the parts of our mesh are 'parented' (ie. 'attached') to the right bones/nodes and they are named properly. Once you import a mesh that has bones/nodes that are named properly and you replace a vanilla object with it, the engine will detect the bone names and automatically use them in the animations, ie. know exactly where to put the hands and what to grab. ie. clips, bolts, etc. So as long as you can separate your mesh into parts just like the vanilla mesh, then rename those parts to match vanilla, then re-parent the parts to the existing bones, you dont have to worry about any animation stuff. The bones are preset with animations and you just need to plug your mesh parts into those bones and it will be animated properly. Hope it doesnt sound too confusing, its a fairly simple concept im just not explaining it right lol. Physics in Fallout3 are done via Havok module which is integrated into the engine. As long as your object comes with a collision shape, it will be able to interact with the environment and its characters using havok physics. The key to getting this to work is just to make sure your collision shape is properly made and properly named. Once the geck sees your collision shape it will do the rest. heres my pipeline for getting stuff working.3d package (max, maya, blender, milkshape, xsi, modo, etc)1. create mesh (including textures and all that. Make the mesh and finish it)2. import a vanilla fallout3 object that most closely resembles your new object into the 3d editor you are using3. scale/transform/rotate your mesh so that it conforms to the shape of the vanilla object. (hopefully it should be the same type of object, ie. assault rifle--> assault rifle etc)4. once your mesh is basically overlapping the fallout3 mesh where needed, rename your object the exact same as the vanilla mesh parts. case sensetive.5. relink up the bones or hierarchy of parenting from your own custom mesh, replacing vanilla mesh components to its own bones/parents. (basically you replace vanilla with yours6. Delete vanilla mesh components that you replaced. (NOTE: depending on what 3d package you use, you might have to delete the vanilla mesh parts before you rename them to match. Some 3d programs dont allow duplicate names)6. export frum 3d package Nifskope7. open 2 copies of nifskope8. in one nifskope, again open the original vanilla nif model you are going to be using as a template.9. in the other nifskope, open the nif file you just exported from your 3d package containing your own mesh, named and parented just like the vanilla, as mentioned above.10. transfer the nitristrips data blocks over from yours to the vanilla model where appropriate, matching up the names so you know what goes where. 11. transfer over your collision shape(s) as well if you are using them. These would usually be the vanilla collision shape custom tailored in 3d package to envelop your mesh.12. assign textures using the existing vanilla block structure in the nif file, should be called BSSTextureSet(s) or something like that, with 6 slots for textures in the tree.13. Save As, name it and save it somewhere in fallout3/data/meshes/ Geck14. to test and see if geck will recognize it, find the nif file in your windows folders and right click, 'Open wIth', then pick GECK.15. if your mesh appears in the preview window and looks fine, you win!. If not, share whats wrong with it so we can diagnose it :)16. Open full geck, open the template vanilla fallout3 object you copied and pasted your stuff over in nifskope. Edit the name then say 'Create New Form' when you hit ok (do not replace)17. In the edit options of that new object/mesh/actor you created, find the slot where it points to the mesh file and point it towards your new one.18. preview your object (right click, preview) take note of the ItemID code appearing at the top of the preview window, write it down. Will be like 010531EE3 or something.18. save your data in geck (make sure you are saving to your own mod file not the root fallout3.esm!!!!In-Game19. in fallout3, load up a game.20. open console, type (minus the quotation marks) "player.placeatme" then type space, then enter the itemID code that your object had in the preview window, ie. 010531EE3 or whatever. So it should look like this--> player.placeatme 010531EE3 (assuming your object had that itemID code) 21. move away, and you should see the object on the ground in front of you. NOTE: it might spawn it under the floor so you might have to jump in the air, then open console while hovering mid-jump in the air, then type it in ps. depending on what type of gun it is, your weapon will need to be broken up into pieces if you want those pieces to be animated. This is done in the 3d-package stage inwhich you examine the imported vanilla template mesh and see how its laid out. Match yours to that one by detaching parts where necessary to fit. Typically the gun comes in 3 basic parts - -gun body, usually just called the name of the weapon, ie. ##G3Rifle:0 (parented to a bone, in this case it would be ##G3Rifle)-trigger (ie. ##Trigger:0, parented to a bone called ##Trigger)-clip/magazine (ie. ##Clip:0, parented to a bone called ##Clip) if your weapon also comes with a bolt/lever or clip/mag-release you will probably want to detach those as well, provided the mesh you are templating onto has those seperate parts as well. Also, nifs are broken up by material assignment, so if a part of your mesh has a different texure, like a scope lens or glowing areas that use seperate texture(s) you will need to detach those as seperate mesh objects from the main mesh as well. By default, nifskope automatically breaks apart your mesh by material assignment, so if multiple materials are used across your object, they will be broken into pieces as such. The reason why we want to do that in advance in 3d package is so we can rename them in a controlled manner. Nifskope breaks up the mesh into parts but each part retains the original name so it can get confusing with 4-5 'G3Rifle' pieces, not able to tell which is which. Harking back on what i mentioned a few sentences ago, bone names are Key, to recognize what is what, just remember this: ## digits before any nif component basically denote bones or mesh components that are parented to bones. Basically an interactive element, i would guess. :0 digits after any nif component tell you that this mesh piece is parented (or supposed to be parented) to a bone/node matching the name, minus these digits. Ie. ##Trigger<--##Trigger:0 :1 :2 :3 :4 etc basically denote the same as above, but are used when multiple mesh pieces are linked/parented to the same bone. Such is the case in weapons where the body of the gun is broken into multiple parts, like the Chinese assault rifle. It comes in 2 big pieces, named something like ##Rifle:0 and ##Rifle:1, both parented to ##Rifle bone/node. good luck and ask if you have any questions! Its a hard process and if i didnt have SpeedyB to answer my questions, i never would have learned how :) Link to comment Share on other sites More sharing options...
Psychoticpyro Posted May 28, 2009 Author Share Posted May 28, 2009 Thanks but I don't understand much, I only have the model (now rotated and scaled correctly) but I don't understand bones and nodes and that kind of stuff could you please either explain it to me as if I where a 4 year old or link me to a step by step tutorial on correctly adding bones,nodes and collisions to a model and actually getting it ingame? And for making correctly uv maps? If possibly for blender cause that is the program I Link to comment Share on other sites More sharing options...
Psychoticpyro Posted May 28, 2009 Author Share Posted May 28, 2009 Thanks but I don't understand much, I only have the model (now rotated and scaled correctly) but I don't understand bones and nodes and that kind of stuff could you please either explain it to me as if I where a 4 year old or link me to a step by step tutorial on correctly adding bones,nodes and collisions to a model and actually getting it ingame? And for making correctly uv maps? If possibly for blender cause that is the program I tend to use Link to comment Share on other sites More sharing options...
Psychoticpyro Posted May 28, 2009 Author Share Posted May 28, 2009 DOUBLE POST PLEASE DELETE Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.