@Spudnik
Don't use that qc file from the exporter. I'm not even sure about $staticprop and I think dota doesn't need $collisionmodel. Check out the qc file from the decompiled models and I recommend doing it all manually.. exporting only the smd files with material applied.
And it seems like you didn't assign that helmet to head bone.
I see a lot of people having problems compiling(no wonder) .. I'll probably write a short guide on compiling stuff when I get home.
To attach the helm to the head bone, what $ command do I use? It seems to be that $attachment is unfitting since it only seems to add an attachment point but doesn't actually attach anything -.-'
I may be misunderstanding, but you want to be cd'ing into the directory, not the the actual texture file.
Change it to
$cdmaterials "models/items/dragon_knight/"
and then apply the helmet_gladiator_color as a material to your helmet. The exporter writes the material to the model, and it'll look for the corresponding .vmt file (it looks for the vmt file named the same as the bitmap in the material!) in that directory.
Hopefully that will solve your missing texture problem.'
You could also delete the collision model part. It's really needed, and I have no idea if that'll cause problems or not.
// Below is the definition of the turn layer.
// First we start by creating 3 poses
// The 3 "animations" (center, left, right) are actually just single frame poses. Center is usually the 0 frame of the run animation, left and right are poses based on the 'center' frame to give the illusion of a left or right turn.
// 'subtract' is defining each animation as the difference in pose between itself and the center pose
$sequence courier_turn_center "courier_turn_center.smd" subtract courier_turn_center 0
$sequence courier_turn_left "courier_turn_left.smd" subtract courier_turn_center 0
$sequence courier_turn_right "courier_turn_right.smd" subtract courier_turn_center 0
// The turn is comprised of the 3 poses we defined above all connected together.
// 'blendwidth' tells the sequence it is a combination of the 3 specified animations
// 'blend' tells it which pose parameter to label it as, in this case "turn"
// 'delta' signifies to the engine that this sequence is an additive layer, rather than completely stomping whatever animation it is added to.
$sequence courier_turns {
courier_turn_left courier_turn_center courier_turn_right
blendwidth 3
blend turn -1 1
delta
}
i was studying the Mirana character, and there the turns works but, JUST on the run cycle, it dont affect any other animation
i think its related with my problem, maybe i need to assign the run cycle as a "blendable" animation with the turns
mirana also has one smd file for each of the 3 turn stats
the bones are the same, should be working, but the fact that on mirana just work on the run animation makes me confused
on the donkey model, the .ma file with the run have the 3 states of the turn animation. perhaps the smd export saves some reference of the source animation and just works with the source? maybe its the cause of just working on the run cycle of mirana? it appear too improbable (edited: tested that and its not the case, still not working)
unfortunatelly i dont have access to the .qc file of mirana or other mounter character to check how they treat the turns, i just have the example .qc that comes with the donkey´s zip
The only thing that remains is attaching it to the head. Which command do I use for that? I looked through the Valve dev Wiki but didn't find one
@Tvidotto:
Does the Source Film Maker support the Mask1/Mask2 maps? Because that's the main thing I want to test out. I tried loading up the model in the SFM and the textures didn't work there (purple/black checkers).
The Alien Swarm SDK (with Dota2 as the active game) still gives me an "Error loading model."
I checked the extracted .MDLs (that are already in the game) earlier and I was able to open them up anywhere. Though the most important place (inside Dota2) is working now, I'm still wondering if I can compile it so the model works with the model viewer, SFM and Dota2 all at the same time.
@Tvidotto:
Does the Source Film Maker support the Mask1/Mask2 maps? Because that's the main thing I want to test out. I tried loading up the model in the SFM and the textures didn't work there (purple/black checkers).
The Alien Swarm SDK (with Dota2 as the active game) still gives me an "Error loading model."
I checked the extracted .MDLs (that are already in the game) earlier and I was able to open them up anywhere. Though the most important place (inside Dota2) is working now, I'm still wondering if I can compile it so the model works with the model viewer, SFM and Dota2 all at the same time.
-mask1/mask2: NO, it doens support, and the normalmap too, i dont know why but i tested the mighty boar model and its normal map doesnt appeared
on the alienswarm the normalmap works BUT the mask1/2 dont work as in game on DOTA
im not sure what part of the mask doenst appear as in the game, in my case can be the blue channel on mask1 or green channel on mask2 (probably the metalness of the mask1 blue channel)
on the alien swarm sdk my wings appears most of the time black, i tested the dragon knight knight model and the same happens, the dragon wings is almost black and in the game is different
error loading model appeared to me when i changed the dx90 to dx80, it was just a matter of returning the normal name
other problem, make sure when you launch alien sdk to choose DOTA2 (or the name you choosen) on the botton pannel called "current game"
Edited
maybe its a matter of configuring the model viewer to match the dota enviroment lightning, but i doubt that, its too diferent the dragon knight dragon model from the in game view
edited again
TADA!!!
$sequence courier_run "sillydragon_run.smd" loop addlayer "courier_turns" ACT_DOTA_RUN 1
ok, its a little strange, i still dont know how the add the information on a addlayer and my model explodes now on the run, but i can see that the turn is working =]
Your axe has an interesting shape, however the diffuse kills it right now. It is fairly obvious to me that you used a textured brush all over it but you need to work on clearly defining the major shapes. Right now I can't tell if your axe is made of stone or metal.
@Eleryn:
Thank you thank you thank you! That did the trick, textures are showing up now, wooohooo. Here's the ingame preview shot:
to attach to the head, as i read on other tutorial, you need to skin it to the bone and export the model, im not sure if it need the bone on this file
you can just create a bone with the name of the head bone, skin your helmet and export, i tested importing the frog courier in the juggernaut model and it got a frog head =]
@Tvidotto I'm really liking your dragon courier just a quick suggestion for ya. I'm not sure what that is on his back that's bumping up and down, maybe you could turn it into something a bit more iconic like a rolled up town portal scroll?
@Tvidotto I'm really liking your dragon courier just a quick suggestion for ya. I'm not sure what that is on his back that's bumping up and down, maybe you could turn it into something a bit more iconic like a rolled up town portal scroll?
Good stuff though! Especially like the animation
Thanks crazyfingers
it was supposed to be a king of heavy blanket but i got a little lazy with that
your sugestions of a town portal is awesome, i will change for sure! really thanks =]
Hey guys,
thanks to all your awesome help, I was finally able to get the models to compile and work in the test tool. I'll write a tutorial tomorrow so we can gather all the awesome advice and help you guys have provided in this thread!
I'd like to hear what you guys think of these two items so I can add a final round of polish before I submit them. (the hammer's position is a bit off, I'll move it up in his hands so the left hand doesn't clip)
Hey guys,
thanks to all your awesome help, I was finally able to get the models to compile and work in the test tool. I'll write a tutorial tomorrow so we can gather all the awesome advice and help you guys have provided in this thread!
congrats!
about the omni´s mace, you can work on the specular of the grip, i thin its to shinny and "phong style"
sup guys ? First time posting on this forum, ive been lurking here for some time tho. Please, tell me what u think. I have this weird waviness on the handle . and i cant fix it. The colours are abit off since i used some colored lights to render. Oh and i made this for Axe.
Complete newbie here - a few questions - if you all wouldn't mind. I'm looking into Dota 2 workshop work here over the summer.
1. What 3D program(s) do you use?
Maya? Blender? 3DS Max? Do you use your program because you're used to it, or does a certain program have an advantage over the other?
2. For those of you who use 3DS Max, what SMD importer/exporter plugin do you use? I've tried a few, but I can't get them to load correctly (I get errors during startup).
Thanks!
The stuff in this thread is amazing. Keep up the good work!
Ditched the wood completely, dunno what i was thinking as enough "tree" characters exist in dota 2 so I just went with ice. I also ditched the face cover as she just wasn't recognizable, frees up some UV space I may use for something else /shrug
Calling this set "Frost Struck" for now
Shifted the pallet a little bit towards a sky blue, but i think she still reads as drow ranger. I also shifted her hair towards her hood color so the radical change in head appearance isn't too drastic.
The plan now is to do up a bow, change up the cape and finish spec and normal maps. Not too much further to go. Feedback as always appreciated
I suuuuuuuhhuuuuck at texturing, I have no idea how to do it. Anyway, started working on a "classic" Kunkka (A.k.a just the handlebar moustache):
For the skin texture I've literally just "clone brushed" from the existing one,.. *sigh* Gonna keep working on the texture and some fine tweaks etc.. No idea how I'm going to get the other "maps" besides Diffuse though. Don't plan to change the existing normal map other than to remove normals where there is no longer any beard.
Your axe has an interesting shape, however the diffuse kills it right now. It is fairly obvious to me that you used a textured brush all over it but you need to work on clearly defining the major shapes. Right now I can't tell if your axe is made of stone or metal.
Thanks, i fixed up the coloring of the axe so that its more defined, not really sure what you meant by diffuse though? (Sorry im new to the whole modelling/photoshop)
Lod0 - Original
Vertices:198-198
Edges:570-570
Faces:380-380
Lod1 - Original
Vertices:198-198
Edges:570-570
Faces:380-380
Anyone know how to reduce them? - i tried using a program that google sent me too 'Meshlab'
Resulted in
Original - 5168 Faces
New - 500 Faces
Anyone know how to do this without making the axe look horrible or maybe a trick i could do with the textureing so that it looks like the old model? or was my original 5168 faces low enough for valve?
Anyone know how to do this without making the axe look horrible or maybe a trick i could do with the textureing so that it looks like the old model? or was my original 5168 faces low enough for valve?
best way of doing is doing by yourself =]
no problem will be best than you in this case
for example, i can see that the wooden part of your axe have a lot of poligons to appear round, did you studied how mych there is on the axe´s axe?
im not sure but i think its 4
other thin that you need is to work with your normals smoothed, in game it will be smoothed
im not meaning mesh smooth, but normal smooth, they are a lot different
I shelved the Axe stuff because I think it will take too long (there was other stuff to go with it as a set) and wanted to do something quicker instead. I kind of want to make hair to go along with these since I don't really like any of the other so far.
@Tvidotto I'm really liking your dragon courier just a quick suggestion for ya. I'm not sure what that is on his back that's bumping up and down, maybe you could turn it into something a bit more iconic like a rolled up town portal scroll?
Good stuff though! Especially like the animation
Thanks again for the suggestion Crazyfinger
i was near the polycount limit and couldnt do the 2 cilynders of the scroll... im on 2998 tris with the limit of 3000 on the lod1
Hope i'm not being overly critical here, but keep in mind detailing like the scales on the dragon should be much larger, when i'm working on this custom set stuff i'm always zooming way the heck back as 99% of the time this is the view the player is going to have of your assets.
This is more the scale the player will see the dragon at, and as you can see a lot of your detailing goes away. It's actualy sorta liberating to start concentrating on larger scale details as it lets you "paint with broader strokes" so to speak.
@Frump I'd be wary of adjusting things on the character that cold directly affect their lore. I was thinking of doing larger ears myself for drow and it was pointed out that drow is likely human and that valve is being a bit more strict with custom stuff at this point in the games lifespan.
@Frump I'd be wary of adjusting things on the character that cold directly affect their lore. I was thinking of doing larger ears myself for drow and it was pointed out that drow is likely human and that valve is being a bit more strict with custom stuff at this point in the games lifespan.
I've read stuff from Valve saying they want contributors to help grow and develop the lore. It's also somewhat of a throwback to the old dota where she was using a WC3 model and had ears. In the lore it says she's not a Drow, but I don't know how many bluish purple humans there are. I think she'd still be an elf or something.
I just wanted to make it for fun and I'll put it up and let the people decide if they like it. If it doesn't get used, that's fine, I'll make some more stuff.
other thin that you need is to work with your normals smoothed, in game it will be smoothed
im not meaning mesh smooth, but normal smooth, they are a lot different
Normals smoothed?
Never heard of that I only started modeling first time 5 days ago, still trying to get my head around all the different techniques and methods
@Eleryn, looks pretty good. The textures don't need too much detail. The camera is pretty high up in game and the various masks help a lot. Maybe just put a bit more color variation on the shoulders similar to the dark spots on the bracers and waist piece.
Well, apparently the decompiler screws up some of the bones, so I'm not really sure how I'm going to rig this. I barely know anything about rigging so I have no idea how to go about fixing it either. If anyone can help it'd be great. Once I've got that I can probably polish it up and work on something else!
Thanks for all the help guys. I've gathered all of the info that I was able to pick up on in this thread and made a tutorial for my process of compiling (disclaimer: there are probably better ways). If you have anything to add or correct, please let me know. Maya 2012 is used for modeling/exporting.
1. Setting up your scene
The Source Engine works in a Z-up environment while Maya (typically) works in a Y-up environment, so lets change our Maya settings to match. Open up a new scene and go to Window->Settings/Preferences->Preferences. In the dialogue box, click on the Settings category and under the first entry, World Coordinate System, change the Up axis from Y to Z.
Note: If you find your camera behaves strangely after the change, go to Display->Heads Up Display->[X] View Cube. The View Cube will appear in the top right corner of your viewport (doesnt work in Viewport 2.0) and clicking the little house will fix your camera.
Now that our settings are correct, let's bring in our model. I prefer to bring in an .OBJ into a clean scene. You can skip these steps if your scene is already clean, I just like to make absolutely sure that nothing is there to confuse the exporter since it can be pretty weird at times.
Open the scene in which you modeled your item and youll probably notice that its on its side or rotated because of the changes to the Up Axis we made earlier. Select all meshes that are part of your item and go to File->Export Selection and export it as a .OBJ file. Repeat this for any LoDs you may have.
Note: If the option for exporting as an .OBJ doesnt show up, go to Windows->Settings/Preferences->Plug-in Manager and make sure that objExport.mll is loaded.
Open up a new scene and import your freshly exported .OBJs. If the meshes are still on their sides or on the ground plane, select all of them, group them (CTRL+G) and rotate the group 90 degrees on the X-axis, then freeze its transformations (Modify->Freeze Transformations).
Position your item on the character the way you want it (match the LoDs position to the original). Look for the (probably closest) joint in the skeleton hierarchy that your item should be parented to (for hats this is usually the Head joint, for weapons the Weapon joint, etc.). Now select that joint and hit CTRL+D (to duplicate) and SHIFT+P (to unparent) right after each other. Weve now made a copy of the bone that is not part of the reference that we can use as a dummy to bind our item to. Delete any other bones in the hierarchy under our newly created bone that we dont need.
Now lets get rid of the reference since we no longer need it. Go to File->Reference Editor. In the window that pops up, select the reference and hit the Remove Reference button or go to Reference->Remove Reference.
Now the only objects in the scene should be your item mesh, any LoDs you may have and the bone itll follow. Select your meshes and delete history (Edit->Delete by Type->History) and freeze transformations (Modify->Freeze Transformations). Select your meshes and your bone and go to the Animation tab and then to Skin->Bind Skin->Smooth Bind. If you move the joint around, the meshes should follow now.
Go to the folder of your current project (if you havent made a project yet, make one now) and inside create two folders called model_sources and materialsrc. This is where what you name your files becomes very important! Learn the correct naming conventions at http://www.dota2.com/workshop/requirements. I also suggest extracting the whole Dota2 content directory and looking through the way Valve organizes their files inside the game. From now on, whenever you see [itemname], [heroname], or [slotname] it MUST be consistent. In your newly created materialsrc folder inside your project, save a .TGA of your color texture naming it [slotname]_[itemname]_color.tga
Okay, only one more step before exporting! Back in Maya, open up your Hypershade (Window->Rendering Editors->Hypershade) and create a PhongE shader. In the Attribute Editor, click the little checker box next to the Color attribute and click File in the Create Render Node window that pops up. Navigate to the [slotname]_[itemname]_color.tga in your materialsrc folder in your project. Select your models and rightclick in the viewport. In the rightclick menu, select Assign Existing Material->PhongE1. Your models should have our newly created shader now.
Save your scene. You can never save enough.
2. Exporting
If you havent already, install Pralls .SMD in-/exporter. A fantastic tutorial on how to do that (and to fix some bugs it has) can be found at http://www.northcapestudios.com/blog/?p=45 (the first section called 1.1. Pralls .smd in- /exporter).
Create a new Display layer in the Channel Box/Layer Editor and name it reference. Rightclick the newly created layer and select Membership. The Relationship Editor will pop up and in it, select first the reference layer in the left half of the window and then your lod0 mesh AND its shape node (which is grouped under it).
Go to File->Export SMD... and click the little box next to it which will bring up the SMD export options. In the Export tab check
export Reference from Layer reference
export 1 frame Idle smd
export Textures
Compile
In the Path Settings tab, set your smd/qc Path to be
[PROJECT]/model_sources/[slotname]_[itemname]_lod0.smd
and your texture Path to be
[PROJECT]/materialsrc.
Replace [PROJECT] with the path for your project and [slotname] and [itemname] with the applicable names as always and hit Full Compile.
Repeat the 2. Exporting step for any other LoDs you may have, making sure to add the lod1 mesh and shape node and remove lod0 from the reference layer as well as to change the smd/qc Path to [PROJECT]/model_sources/[slotname]_[itemname]_lod1.smd
3. Compiling
3.1 QC file
Now that we have our model in .SMD format, the next step is to compile. to do that, however, we need to tell the compiler how to do that exactly. This is where the .QC file comes in - all it does is instruct the compiler what to do.
Open up your code editor of choice (I suggest Notepad ++, found here: http://notepad-plus-plus.org/), make a new document and save it as [slotname]_[itemname].qc in your model_sources folder (make sure that All types is selected as save type, otherwise youll save a .qc.txt).
Copy and paste this into your .qc file and fill in [heroname], [slotname] and [itemname] appropriately (again, look at the original file structure to see what the correct [heroname] and [slotname] are) :
$modelname specifies what the compiled model is named and what folder itll go to. This path is relative to [gamedir]/models/
$cdmaterials specifies the folder in which the compiled textures can be found. This path is relative to [gamedir]/materials/
$model specifies our source .SMD that well use to compile from. Unless an absolute path is specified, itll look for it in the same location as the .QC.
$sequence specifies the animation sequences for a model. Since were making a static model, its only 1 frame long. Unless an absolute path is specified, itll look for it in the same location as the .QC.
$lod specifies that that there are multiple LoDs. Unless an absolute path is specified, itll look for the lod1 in the same location as the .QC.
If you do not have any LoDs, delete everything after and including $lod 1.
Save your .qc file.
3.2 Compiling Materials
Before we compile our model, lets compile our maps. If youve read and followed the naming conventions, your maps should look like this:
We need to get those .TGAs or .PSDs into a format that the Source Engine can understand, which is the .VTF (Valve Texture File) format. Theres multiple ways to achieve this and I suggest the Photoshop plug-in found here (works only with Photoshop x32): http://nemesis.thewavelength.net/index.php?p=39
After installation, simply open your texture and go to File->Save as... and chose the .VFT format. I generally leave the default options and select the template Uncompressed Texture with Alpha. Save them to
[STEAM]\steamapps\common\dota 2 beta\dota\materials\models\items\[heroname]\
where [STEAM] is your Steam install directory. Do this for all four of your maps.
The Source engine needs one more file to understand these .VTFs, a .VMT. I would again suggest going into the original files and getting a .VMT from one of the items in the game thats similar (say youre making a sword for DragonKnight, youd grab the .VMT from workshop swords for DragonKnight that are in the game) to use as a starting point. Open the .VMT up with Notepad++ (or equivalent) and youll see something like this:
Go to File->Save as... and save the file in the same place where your .VTFs are ([STEAM]\steamapps\common\dota 2 beta\dota\materials\models\items\[heroname]\)
naming it [slotname]_[itemname]_color. Now the folder should have five files:
[slotname]_[itemname]_color.vmt
[slotname]_[itemname]_color.vtf
[slotname]_[itemname]_mask1.vtf
[slotname]_[itemname]_mask2.vtf
[slotname]_[itemname]_normal.vtf
3.3 Compiling Models
All thats left now is to compile the model. Go to your [PROJECT]/model_sources folder and grab all the .SMDs and the .QC (5 files for 2 LoDs, 3 files for 1 LoD) and copy them to
[STEAM]\steamapps\common\dota 2 beta\dota\models\items\[heroname]\
Once installed, fire it up and at the top, hit the Configure button and enter this information:
Steam Game Directory: [STEAM]\steamapps\common\dota 2 beta\dota
SDK Tools Directory: [STEAM]\steamapps\common\alien swarm\bin
where, again, [STEAM] is your Steam install directory.
Next, go to Model Compile -> Compile w/Existing QC and navigate to your .QC file ([STEAM]\steamapps\common\dota 2 beta\dota\models\items\[heroname]\[slotname]_[itemname].qc)
All thats left now is to hit Compile
4. Viewing in game
Open up Dota 2 and go to Customize->Workshop->Publish New Item. Here youll find the test tool where you can select the hero, loadout slot and then browse to your freshly, still warm out of the oven, compiled .MDL file ([STEAM]\steamapps\common\dota 2 beta\dota\models\items\[heroname]\[slotname]_[itemname].mdl). Hit the Test button and everything should be working!
Congratulations on reaching the end without having punched a hole through your monitor!
Well, apparently the decompiler screws up some of the bones, so I'm not really sure how I'm going to rig this. I barely know anything about rigging so I have no idea how to go about fixing it either. If anyone can help it'd be great. Once I've got that I can probably polish it up and work on something else!
what program are you using and what is your problem? you can post some prints or the file if its on maya and i can take a look at it
Thanks for all the help guys. I've gathered all of the info that I was able to pick up on in this thread and made a tutorial for my process of compiling (disclaimer: there are probably better ways). If you have anything to add or correct, please let me know. Maya 2012 is used for modeling/exporting.
Here youll find the test tool where you can select the hero, loadout slot and then browse to your freshly, still warm out of the oven, compiled .MDL file ([STEAM]\steamapps\common\dota 2 beta\dota\models\items\[heroname]\[slotname]_[itemname].mdl). Hit the Test button and everything should be working!
Congratulations on reaching the end without having punched a hole through your monitor!
Is their a way to test the item if the hero isn't in the test area?
I compiled the model so I could see if I'd have to change something in the model, I think the shape is OK! but the jigglebones aren't working properlly
The texture isn't the final one, it's just a Test,
my .qc for jigglebones are:
$jigglebone "Jiggle1" {
is_flexible {
yaw_stiffness 500
yaw_damping 1
pitch_stiffness 500
pitch_damping 1
tip_mass 20
length 20
angle_constraint 30
}
}
Anyone know a good way to make that effect on her shoulder, something like gold/cooper with an red glow?
one more thing, do I need to animate it for all the QoP's animations?
I thought jigglebones would do the trick, but in her Idle position for workshop, qop keep looking up, so my helmet pass through her belly, and looks like something very wierd, there's something I can put that make "gravity" work on her hair?
There's still a few problems, places where stuff clips in some animations, but this whole set has been a great learning process, so I'm not too fussed on fixing them all (heck, even valve's stuff clips lots).
One thing I'd like to know, for 3DS users, is there a way to copy your rigging onto a lower LOD model, or remove polygons/edgeloops without destroying the skin modifier? I'd rather not have to skin it again, but I will if I have to.
Replies
part of a set
Don't use that qc file from the exporter. I'm not even sure about $staticprop and I think dota doesn't need $collisionmodel. Check out the qc file from the decompiled models and I recommend doing it all manually.. exporting only the smd files with material applied.
And it seems like you didn't assign that helmet to head bone.
I see a lot of people having problems compiling(no wonder) .. I'll probably write a short guide on compiling stuff when I get home.
That'd be awesome!
To attach the helm to the head bone, what $ command do I use? It seems to be that $attachment is unfitting since it only seems to add an attachment point but doesn't actually attach anything -.-'
You have in your qc file here:
I may be misunderstanding, but you want to be cd'ing into the directory, not the the actual texture file.
Change it to and then apply the helmet_gladiator_color as a material to your helmet. The exporter writes the material to the model, and it'll look for the corresponding .vmt file (it looks for the vmt file named the same as the bitmap in the material!) in that directory.
Hopefully that will solve your missing texture problem.'
You could also delete the collision model part. It's really needed, and I have no idea if that'll cause problems or not.
did you tested on the sdk modelviewer? im using the source film maker
your workflow appears entire right, almost the same as mine but im using the sfm export plugins and sfm sdk to visualize
i didnt tested on the dota game yet, but on the sfm it looks like this
[ame="http://www.youtube.com/watch?v=bfd0Ml6hEeQ"]Silly Dragon no Source Film Maker - YouTube[/ame]
i was studying the Mirana character, and there the turns works but, JUST on the run cycle, it dont affect any other animation
i think its related with my problem, maybe i need to assign the run cycle as a "blendable" animation with the turns
mirana also has one smd file for each of the 3 turn stats
the bones are the same, should be working, but the fact that on mirana just work on the run animation makes me confused
on the donkey model, the .ma file with the run have the 3 states of the turn animation. perhaps the smd export saves some reference of the source animation and just works with the source? maybe its the cause of just working on the run cycle of mirana? it appear too improbable (edited: tested that and its not the case, still not working)
unfortunatelly i dont have access to the .qc file of mirana or other mounter character to check how they treat the turns, i just have the example .qc that comes with the donkey´s zip
Thank you thank you thank you! That did the trick, textures are showing up now, wooohooo. Here's the ingame preview shot:
with this .cq:
The only thing that remains is attaching it to the head. Which command do I use for that? I looked through the Valve dev Wiki but didn't find one
@Tvidotto:
Does the Source Film Maker support the Mask1/Mask2 maps? Because that's the main thing I want to test out. I tried loading up the model in the SFM and the textures didn't work there (purple/black checkers).
The Alien Swarm SDK (with Dota2 as the active game) still gives me an "Error loading model."
I checked the extracted .MDLs (that are already in the game) earlier and I was able to open them up anywhere. Though the most important place (inside Dota2) is working now, I'm still wondering if I can compile it so the model works with the model viewer, SFM and Dota2 all at the same time.
-mask1/mask2: NO, it doens support, and the normalmap too, i dont know why but i tested the mighty boar model and its normal map doesnt appeared
on the alienswarm the normalmap works BUT the mask1/2 dont work as in game on DOTA
im not sure what part of the mask doenst appear as in the game, in my case can be the blue channel on mask1 or green channel on mask2 (probably the metalness of the mask1 blue channel)
on the alien swarm sdk my wings appears most of the time black, i tested the dragon knight knight model and the same happens, the dragon wings is almost black and in the game is different
error loading model appeared to me when i changed the dx90 to dx80, it was just a matter of returning the normal name
other problem, make sure when you launch alien sdk to choose DOTA2 (or the name you choosen) on the botton pannel called "current game"
Edited
maybe its a matter of configuring the model viewer to match the dota enviroment lightning, but i doubt that, its too diferent the dragon knight dragon model from the in game view
edited again
TADA!!!
$sequence courier_run "sillydragon_run.smd" loop addlayer "courier_turns" ACT_DOTA_RUN 1
ok, its a little strange, i still dont know how the add the information on a addlayer and my model explodes now on the run, but i can see that the turn is working =]
the red rope doenst appears "sturdy" enough for me, the wooden part too
it appears that will brake in the first hit, i think axe´s axe are a good reference of a strong weapon
to attach to the head, as i read on other tutorial, you need to skin it to the bone and export the model, im not sure if it need the bone on this file
you can just create a bone with the name of the head bone, skin your helmet and export, i tested importing the frog courier in the juggernaut model and it got a frog head =]
Good stuff though! Especially like the animation
Thanks crazyfingers
it was supposed to be a king of heavy blanket but i got a little lazy with that
your sugestions of a town portal is awesome, i will change for sure! really thanks =]
thanks to all your awesome help, I was finally able to get the models to compile and work in the test tool. I'll write a tutorial tomorrow so we can gather all the awesome advice and help you guys have provided in this thread!
I'd like to hear what you guys think of these two items so I can add a final round of polish before I submit them. (the hammer's position is a bit off, I'll move it up in his hands so the left hand doesn't clip)
Omniknight - Hammer of Hope
Dragon Knight - Gladiator's Guard
congrats!
about the omni´s mace, you can work on the specular of the grip, i thin its to shinny and "phong style"
Very nice! I'm looking forward to it!
1. What 3D program(s) do you use?
Maya? Blender? 3DS Max? Do you use your program because you're used to it, or does a certain program have an advantage over the other?
2. For those of you who use 3DS Max, what SMD importer/exporter plugin do you use? I've tried a few, but I can't get them to load correctly (I get errors during startup).
Thanks!
The stuff in this thread is amazing. Keep up the good work!
Calling this set "Frost Struck" for now
Shifted the pallet a little bit towards a sky blue, but i think she still reads as drow ranger. I also shifted her hair towards her hood color so the radical change in head appearance isn't too drastic.
The plan now is to do up a bow, change up the cape and finish spec and normal maps. Not too much further to go. Feedback as always appreciated
For the skin texture I've literally just "clone brushed" from the existing one,.. *sigh* Gonna keep working on the texture and some fine tweaks etc.. No idea how I'm going to get the other "maps" besides Diffuse though. Don't plan to change the existing normal map other than to remove normals where there is no longer any beard.
Thanks, i fixed up the coloring of the axe so that its more defined, not really sure what you meant by diffuse though? (Sorry im new to the whole modelling/photoshop)
I kind of thought that too but not really sure how i would go about making it more sturdier without having to recolour the entire axe again
Hmm i might be screwed anyway, i just looked at Verts/edges/faces and compared them to The original axe that beast master had.
Mine
Vertices:3740-3740
Edges:8916-8916
Faces:5168-5168
Lod0 - Original
Vertices:198-198
Edges:570-570
Faces:380-380
Lod1 - Original
Vertices:198-198
Edges:570-570
Faces:380-380
Anyone know how to reduce them? - i tried using a program that google sent me too 'Meshlab'
Resulted in
Original - 5168 Faces
New - 500 Faces
Anyone know how to do this without making the axe look horrible or maybe a trick i could do with the textureing so that it looks like the old model? or was my original 5168 faces low enough for valve?
and why my jigglebones aren't working,
That's my .qc:
$modelname "items\queenofpain\head_viperqueen_lod0"
$scale 1.00
$cdmaterials "models\items\queenofpain"
$body "Body" "SnakeHelm.smd"
$sequence "Idle" "D:\dota2GCFScape\Dota Mods\Akasha\Helmet Final\Final\SnakeHelm.smd" fps 30 ACT_IDLE 1
$surfaceprop "metal"
$collisionmodel "D:\dota2GCFScape\Dota Mods\Akasha\Helmet Final\Final\SnakeHelm.smd" {
$concave
$mass 100.000
}
$jigglebone "Jiggle1" {
is_flexible {
yaw_stiffness 500
yaw_damping 1
pitch_stiffness 500
pitch_damping 1
tip_mass 20
length 20
angle_constraint 30
}
}
$jigglebone "Jiggle2" {
is_flexible {
yaw_stiffness 100
yaw_damping 5
pitch_stiffness 100
pitch_damping 5
tip_mass 20
length 20
angle_constraint 30
}
}
$jigglebone "Jiggle3" {
is_flexible {
yaw_stiffness 100
yaw_damping 5
pitch_stiffness 100
pitch_damping 5
tip_mass 20
length 20
angle_constraint 30
}
}
$jigglebone "Jiggle4" {
is_flexible {
yaw_stiffness 100
yaw_damping 5
pitch_stiffness 100
pitch_damping 5
tip_mass 20
length 20
angle_constraint 30
}
}
$jigglebone "Jiggle5" {
is_flexible {
yaw_stiffness 100
yaw_damping 5
pitch_stiffness 100
pitch_damping 5
tip_mass 20
length 20
angle_constraint 30
}
}
$jigglebone "Jiggle6" {
is_flexible {
yaw_stiffness 100
yaw_damping 5
pitch_stiffness 100
pitch_damping 5
tip_mass 20
length 20
angle_constraint 30
}
}
$jigglebone "Jiggle7" {
is_flexible {
yaw_stiffness 100
yaw_damping 5
pitch_stiffness 100
pitch_damping 5
tip_mass 20
length 20
angle_constraint 30
}
}
cant get the damn smd working with maya i am going crazy soon
best way of doing is doing by yourself =]
no problem will be best than you in this case
for example, i can see that the wooden part of your axe have a lot of poligons to appear round, did you studied how mych there is on the axe´s axe?
im not sure but i think its 4
other thin that you need is to work with your normals smoothed, in game it will be smoothed
im not meaning mesh smooth, but normal smooth, they are a lot different
This is the baked version, no texture yet.
Thanks again for the suggestion Crazyfinger
i was near the polycount limit and couldnt do the 2 cilynders of the scroll... im on 2998 tris with the limit of 3000 on the lod1
maube a little more brownish?
Hope i'm not being overly critical here, but keep in mind detailing like the scales on the dragon should be much larger, when i'm working on this custom set stuff i'm always zooming way the heck back as 99% of the time this is the view the player is going to have of your assets.
This is more the scale the player will see the dragon at, and as you can see a lot of your detailing goes away. It's actualy sorta liberating to start concentrating on larger scale details as it lets you "paint with broader strokes" so to speak.
@Frump I'd be wary of adjusting things on the character that cold directly affect their lore. I was thinking of doing larger ears myself for drow and it was pointed out that drow is likely human and that valve is being a bit more strict with custom stuff at this point in the games lifespan.
I've read stuff from Valve saying they want contributors to help grow and develop the lore. It's also somewhat of a throwback to the old dota where she was using a WC3 model and had ears. In the lore it says she's not a Drow, but I don't know how many bluish purple humans there are. I think she'd still be an elf or something.
I just wanted to make it for fun and I'll put it up and let the people decide if they like it. If it doesn't get used, that's fine, I'll make some more stuff.
Normals smoothed?
Never heard of that I only started modeling first time 5 days ago, still trying to get my head around all the different techniques and methods
I'm liking how it's going, but I'm not the greatest at texturing and I think it's a bit basic...but I'm not sure what to add.
i like the texture too, you could try a degrade on the base color to look less flat
Images not working for me
@donalder
Images not working either
They are just spammer bots.
1. Setting up your scene
The Source Engine works in a Z-up environment while Maya (typically) works in a Y-up environment, so lets change our Maya settings to match. Open up a new scene and go to Window->Settings/Preferences->Preferences. In the dialogue box, click on the Settings category and under the first entry, World Coordinate System, change the Up axis from Y to Z.
Note: If you find your camera behaves strangely after the change, go to Display->Heads Up Display->[X] View Cube. The View Cube will appear in the top right corner of your viewport (doesnt work in Viewport 2.0) and clicking the little house will fix your camera.
Now that our settings are correct, let's bring in our model. I prefer to bring in an .OBJ into a clean scene. You can skip these steps if your scene is already clean, I just like to make absolutely sure that nothing is there to confuse the exporter since it can be pretty weird at times.
Open the scene in which you modeled your item and youll probably notice that its on its side or rotated because of the changes to the Up Axis we made earlier. Select all meshes that are part of your item and go to File->Export Selection and export it as a .OBJ file. Repeat this for any LoDs you may have.
Note: If the option for exporting as an .OBJ doesnt show up, go to Windows->Settings/Preferences->Plug-in Manager and make sure that objExport.mll is loaded.
Open up a new scene and import your freshly exported .OBJs. If the meshes are still on their sides or on the ground plane, select all of them, group them (CTRL+G) and rotate the group 90 degrees on the X-axis, then freeze its transformations (Modify->Freeze Transformations).
Now lets bring in a reference so we can position our item correctly in world space. Go to File->Create Reference and select the mesh of the hero you want your item to be for. Some of the heroes can be found here (http://www.dota2.com/workshop/requirements) while others have to be manually decompiled (http://www.cyborgmatt.com/dota-2-model-viewer-guide/).
Position your item on the character the way you want it (match the LoDs position to the original). Look for the (probably closest) joint in the skeleton hierarchy that your item should be parented to (for hats this is usually the Head joint, for weapons the Weapon joint, etc.). Now select that joint and hit CTRL+D (to duplicate) and SHIFT+P (to unparent) right after each other. Weve now made a copy of the bone that is not part of the reference that we can use as a dummy to bind our item to. Delete any other bones in the hierarchy under our newly created bone that we dont need.
Now lets get rid of the reference since we no longer need it. Go to File->Reference Editor. In the window that pops up, select the reference and hit the Remove Reference button or go to Reference->Remove Reference.
Now the only objects in the scene should be your item mesh, any LoDs you may have and the bone itll follow. Select your meshes and delete history (Edit->Delete by Type->History) and freeze transformations (Modify->Freeze Transformations). Select your meshes and your bone and go to the Animation tab and then to Skin->Bind Skin->Smooth Bind. If you move the joint around, the meshes should follow now.
Go to the folder of your current project (if you havent made a project yet, make one now) and inside create two folders called model_sources and materialsrc. This is where what you name your files becomes very important! Learn the correct naming conventions at http://www.dota2.com/workshop/requirements. I also suggest extracting the whole Dota2 content directory and looking through the way Valve organizes their files inside the game. From now on, whenever you see [itemname], [heroname], or [slotname] it MUST be consistent. In your newly created materialsrc folder inside your project, save a .TGA of your color texture naming it [slotname]_[itemname]_color.tga
Okay, only one more step before exporting! Back in Maya, open up your Hypershade (Window->Rendering Editors->Hypershade) and create a PhongE shader. In the Attribute Editor, click the little checker box next to the Color attribute and click File in the Create Render Node window that pops up. Navigate to the [slotname]_[itemname]_color.tga in your materialsrc folder in your project. Select your models and rightclick in the viewport. In the rightclick menu, select Assign Existing Material->PhongE1. Your models should have our newly created shader now.
Save your scene. You can never save enough.
2. Exporting
If you havent already, install Pralls .SMD in-/exporter. A fantastic tutorial on how to do that (and to fix some bugs it has) can be found at http://www.northcapestudios.com/blog/?p=45 (the first section called 1.1. Pralls .smd in- /exporter).
Create a new Display layer in the Channel Box/Layer Editor and name it reference. Rightclick the newly created layer and select Membership. The Relationship Editor will pop up and in it, select first the reference layer in the left half of the window and then your lod0 mesh AND its shape node (which is grouped under it).
Go to File->Export SMD... and click the little box next to it which will bring up the SMD export options. In the Export tab check
In the Path Settings tab, set your smd/qc Path to be
[PROJECT]/model_sources/[slotname]_[itemname]_lod0.smd
and your texture Path to be
[PROJECT]/materialsrc.
Replace [PROJECT] with the path for your project and [slotname] and [itemname] with the applicable names as always and hit Full Compile.
Repeat the 2. Exporting step for any other LoDs you may have, making sure to add the lod1 mesh and shape node and remove lod0 from the reference layer as well as to change the smd/qc Path to [PROJECT]/model_sources/[slotname]_[itemname]_lod1.smd
3. Compiling
3.1 QC file
Now that we have our model in .SMD format, the next step is to compile. to do that, however, we need to tell the compiler how to do that exactly. This is where the .QC file comes in - all it does is instruct the compiler what to do.
Open up your code editor of choice (I suggest Notepad ++, found here: http://notepad-plus-plus.org/), make a new document and save it as [slotname]_[itemname].qc in your model_sources folder (make sure that All types is selected as save type, otherwise youll save a .qc.txt).
Copy and paste this into your .qc file and fill in [heroname], [slotname] and [itemname] appropriately (again, look at the original file structure to see what the correct [heroname] and [slotname] are) :
If you do not have any LoDs, delete everything after and including $lod 1.
Save your .qc file.
3.2 Compiling Materials
Before we compile our model, lets compile our maps. If youve read and followed the naming conventions, your maps should look like this:
[slotname]_[itemname]_color.tga
[slotname]_[itemname]_mask1.tga
[slotname]_[itemname]_mask2.tga
[slotname]_[itemname]_normal.tga
We need to get those .TGAs or .PSDs into a format that the Source Engine can understand, which is the .VTF (Valve Texture File) format. Theres multiple ways to achieve this and I suggest the Photoshop plug-in found here (works only with Photoshop x32):
http://nemesis.thewavelength.net/index.php?p=39
After installation, simply open your texture and go to File->Save as... and chose the .VFT format. I generally leave the default options and select the template Uncompressed Texture with Alpha. Save them to
[STEAM]\steamapps\common\dota 2 beta\dota\materials\models\items\[heroname]\
where [STEAM] is your Steam install directory. Do this for all four of your maps.
The Source engine needs one more file to understand these .VTFs, a .VMT. I would again suggest going into the original files and getting a .VMT from one of the items in the game thats similar (say youre making a sword for DragonKnight, youd grab the .VMT from workshop swords for DragonKnight that are in the game) to use as a starting point. Open the .VMT up with Notepad++ (or equivalent) and youll see something like this:
The important part here is the $baseTexture, $normalmap, $maskmap1 and $maskmap2. Change the path so it looks like this:
Go to File->Save as... and save the file in the same place where your .VTFs are ([STEAM]\steamapps\common\dota 2 beta\dota\materials\models\items\[heroname]\)
naming it [slotname]_[itemname]_color. Now the folder should have five files:
3.3 Compiling Models
All thats left now is to compile the model. Go to your [PROJECT]/model_sources folder and grab all the .SMDs and the .QC (5 files for 2 LoDs, 3 files for 1 LoD) and copy them to
[STEAM]\steamapps\common\dota 2 beta\dota\models\items\[heroname]\
Now we need to download this handy tool called StudioCompiler found at
http://www.chaosincarnate.net/cannonfodder/studiocompiler.php
Once installed, fire it up and at the top, hit the Configure button and enter this information:
Steam Game Directory: [STEAM]\steamapps\common\dota 2 beta\dota
SDK Tools Directory: [STEAM]\steamapps\common\alien swarm\bin
where, again, [STEAM] is your Steam install directory.
Next, go to Model Compile -> Compile w/Existing QC and navigate to your .QC file ([STEAM]\steamapps\common\dota 2 beta\dota\models\items\[heroname]\[slotname]_[itemname].qc)
All thats left now is to hit Compile
4. Viewing in game
Open up Dota 2 and go to Customize->Workshop->Publish New Item. Here youll find the test tool where you can select the hero, loadout slot and then browse to your freshly, still warm out of the oven, compiled .MDL file ([STEAM]\steamapps\common\dota 2 beta\dota\models\items\[heroname]\[slotname]_[itemname].mdl). Hit the Test button and everything should be working!
Congratulations on reaching the end without having punched a hole through your monitor!
what program are you using and what is your problem? you can post some prints or the file if its on maya and i can take a look at it
thanks for your effort on that =]
The texture isn't the final one, it's just a Test,
my .qc for jigglebones are:
$jigglebone "Jiggle1" {
is_flexible {
yaw_stiffness 500
yaw_damping 1
pitch_stiffness 500
pitch_damping 1
tip_mass 20
length 20
angle_constraint 30
}
}
Anyone know a good way to make that effect on her shoulder, something like gold/cooper with an red glow?
one more thing, do I need to animate it for all the QoP's animations?
I thought jigglebones would do the trick, but in her Idle position for workshop, qop keep looking up, so my helmet pass through her belly, and looks like something very wierd, there's something I can put that make "gravity" work on her hair?
really thanks for all the help guys, now i need to start a new project
http://steamcommunity.com/sharedfiles/filedetails/?id=84991947
im open for coop projects, i rig and animate =]
There's still a few problems, places where stuff clips in some animations, but this whole set has been a great learning process, so I'm not too fussed on fixing them all (heck, even valve's stuff clips lots).
One thing I'd like to know, for 3DS users, is there a way to copy your rigging onto a lower LOD model, or remove polygons/edgeloops without destroying the skin modifier? I'd rather not have to skin it again, but I will if I have to.
Very nice and smooth job, rated already
http://dev.dota2.com/showthread.php?t=48273