Home Dota 2

Dota 2 - Workshop Thread

1910121415374

Replies

  • Sparkwire
    Offline / Send Message
    Sparkwire polycounter lvl 9
  • Tomm
    @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.
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    @Tomm:
    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 -.-'
  • System
    Offline / Send Message
    System admin
    @Spudnik

    You have in your qc file here:
    $cdmaterials "models/items/dragon_knight/helmet_gladiator_color"
    

    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.
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    Spudnik wrote: »
    Alright, last ditch effort: Here's my entire compiling process step by step. Please tell me where I'm fucking up.

    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]
  • Zeldrak
    Offline / Send Message
    Zeldrak polycounter lvl 8
    Started on a helm for Dragon knight. Still learning my way through Maya but i think i can manage.
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    the turns are not working... here is my .qc
    // 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
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    @Eleryn:
    Thank you thank you thank you! That did the trick, textures are showing up now, wooohooo. Here's the ingame preview shot:
    IngamePreview_V02.jpg
    with this .cq:
    $modelname "items/dragon_knight/helmet_gladiator.mdl"
    $cdmaterials "models/items/dragon_knight/"
    $model "default" "helmet_gladiator_lod0.smd"
    
    
    $scale 1.00
    $surfaceprop "default"
    
    $lod 1
    {
    replacemodel "helmet_gladiator_lod0.smd" "helmet_gladiator_lod1.smd"
    }
    
    $sequence idle "helmet_gladiator_lod0_idle" loop fps 1
    

    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.
  • Nubleet
    Ok so i coloured my axes, not really happy with the colors to be honest but not really sure where i should go from here, any suggestions? :D
    Ocoq8.png
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    Spudnik wrote: »
    @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 =]
  • praetus
    Offline / Send Message
    praetus interpolator
    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.
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    Nubleet wrote: »
    Ok so i coloured my axes, not really happy with the colors to be honest but not really sure where i should go from here, any suggestions? :D

    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
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    Spudnik wrote: »
    @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 =]
  • crazyfingers
    Offline / Send Message
    crazyfingers polycounter lvl 10
    @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?

    Town_Portal_Scroll.png

    Good stuff though! Especially like the animation :D
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    @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?

    Town_Portal_Scroll.png

    Good stuff though! Especially like the animation :D

    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 =]
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    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)

    Omniknight - Hammer of Hope
    InGame-2.jpg

    Dragon Knight - Gladiator's Guard
    InGame-1.jpg
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    Spudnik wrote: »
    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"
  • Archimedes
    @Spudnik

    Very nice! I'm looking forward to it!
  • lancemaker
    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.

    axeqd.jpg


    axeqd.jpg
  • Ancalagon
    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!
  • ike_ike
    Offline / Send Message
    ike_ike polycounter lvl 12
    having given up on modelling for the twenty seventh time i return to doodling.

    howdoilanaya.jpghairs.jpgarms.jpg
  • System
    Offline / Send Message
    System admin
    That's really cool. It looks so much better than my set already :( Cool ideas!
  • crazyfingers
    Offline / Send Message
    crazyfingers polycounter lvl 10
    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
    59bMX.jpg

    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 :)
  • SariusMonk
    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):

    e4KFH.jpg

    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.
  • Nubleet
    praetus wrote: »
    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)

    G5U8d.png
    Tvidotto wrote: »
    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

    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
    7vIpg.png

    New - 500 Faces
    cwLJk.png

    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?
  • Largs
    I got 2 problems, first I can't compile by any means the texture(I can't even create .vmf),
    and why my jigglebones aren't working,
    workshoptest.jpg
    workshoptest2.jpg
    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
    }
    }
  • DemoSama
    man all the steps needed to get the model viewing and such working is making me dizzy
    cant get the damn smd working with maya i am going crazy soon
  • Tightbob
    We need Spudbros guide soon!
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    Nubleet wrote: »

    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
  • Frump
    Offline / Send Message
    Frump polycounter lvl 12
    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.

    This is the baked version, no texture yet.
    2012-07-24_0355.png
    2012-07-24_0354.png
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    @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?

    Town_Portal_Scroll.png

    Good stuff though! Especially like the animation :D

    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

    townportal.png

    maube a little more brownish?
  • crazyfingers
    Offline / Send Message
    crazyfingers polycounter lvl 10
    Better!

    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.

    XEMhc.jpg

    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
    Offline / Send Message
    Frump polycounter lvl 12
    @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.
  • Nubleet
    Tvidotto wrote: »
    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 :D
  • System
    Offline / Send Message
    System admin
    Been doing some more work on my Lanaya set.

    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.

    27.jpg

    28.jpg
  • Zipfinator
    Offline / Send Message
    Zipfinator polycounter lvl 9
    @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.
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    Eleryn wrote: »
    Been doing some more work on my Lanaya set.

    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
  • System
    Offline / Send Message
    System admin
    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!
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    @nvmak1
    Images not working for me :(
    @donalder
    Images not working either :(
  • Visceral
    Spudnik wrote: »
    @nvmak1
    Images not working for me :(
    @donalder
    Images not working either :(

    They are just spammer bots.
  • Spudnik
    Offline / Send Message
    Spudnik polycounter lvl 11
    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.

    MayaPreferences.jpg

    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 (doesn’t 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 you’ll probably notice that it’s 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 doesn’t 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 let’s 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. We’ve 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 don’t need.

    Now let’s 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.

    RemoveReference.jpg

    Now the only objects in the scene should be your item mesh, any LoDs you may have and the bone it’ll 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.

    BindSkin.jpg

    Go to the folder of your current project (if you haven’t 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.

    Shader.jpg

    Save your scene. You can never save enough.


    2. Exporting

    If you haven’t already, install Prall’s .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).

    ReferenceLayer.jpg

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

    PrallSettings-1.gif

    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 you’ll 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 "items/[heroname]/[slotname]_[itemname].mdl"
    $cdmaterials "models/items/[heroname]/"
    $model "default" "[slotname]_[itemname]_lod0.smd"
    
    $scale 1.00
    $surfaceprop "default"
    
    $sequence idle "[slotname]_[itemname]_lod0_idle" loop fps 1
    
    $lod 1
    {
    replacemodel "[slotname]_[itemname]_lod0.smd" "[slotname]_[itemname]_lod1.smd"
    }
    
    • $modelname specifies what the compiled model is named and what folder it’ll 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 we’ll use to compile from. Unless an absolute path is specified, it’ll look for it in the same location as the .QC.
    • $sequence specifies the animation sequences for a model. Since we’re making a static model, it’s only 1 frame long. Unless an absolute path is specified, it’ll look for it in the same location as the .QC.
    • $lod specifies that that there are multiple LoDs. Unless an absolute path is specified, it’ll 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, let’s compile our maps. If you’ve 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. There’s 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.

    VTFOptions.jpg

    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 that’s similar (say you’re making a sword for DragonKnight, you’d 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 you’ll see something like this:
    CustomHero
    {
    $baseTexture "models/items/dragon_knight/Sword_Davion_color"
    $normalmap "models/items/dragon_knight/Sword_Davion_normal"
    $maskmap2 "models/items/dragon_knight/Sword_Davion_mask2"
    $maskmap1 "models/items/dragon_knight/Sword_Davion_mask1"
    $nocull 1
    $IgnoreBudgetCheck 1
    $FRESNELWARP "models/heroes/dragon_knight/knight_fresnelranges"
    
    $SPECULAREXPONENT 11
    $SPECULARSCALE 5
    
    
    $RIMLIGHTSCALE 1
    
    $cloakPassEnabled 1
    Proxies
    {
    invis_proxy
    {
    }
    status_proxy
    {
    }
    }
    }
    

    The important part here is the $baseTexture, $normalmap, $maskmap1 and $maskmap2. Change the path so it looks like this:
    $baseTexture "models/items/[heroname]/[slotname]_[itemname]_color"
    $normalmap "models/items/[heroname]/[slotname]_[itemname]_normal"
    $maskmap2 "models/items/[heroname]/[slotname]_[itemname]_mask2"
    $maskmap1 "models/items/[heroname]/[slotname]_[itemname]_mask1"
    

    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:
    1. [slotname]_[itemname]_color.vmt
    2. [slotname]_[itemname]_color.vtf
    3. [slotname]_[itemname]_mask1.vtf
    4. [slotname]_[itemname]_mask2.vtf
    5. [slotname]_[itemname]_normal.vtf

    3.3 Compiling Models

    All that’s 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.

    StudioCompiler_GameDir.jpg

    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”)

    StudioCompiler-1.jpg

    All that’s left now is to hit “Compile”

    4. Viewing in game

    Open up Dota 2 and go to Customize->Workshop->Publish New Item. Here you’ll 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!

    Dota.jpg

    Congratulations on reaching the end without having punched a hole through your monitor!
  • murphy7
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    Eleryn wrote: »
    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
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    Spudnik wrote: »
    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.

    thanks for your effort on that =]
  • Nubleet
    Spudnik wrote: »
    Here you’ll 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!

    Dota.jpg

    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?
  • Largs
    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
    workshoptest.jpgworkshoptest2.jpg
    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?
  • Tvidotto
    Offline / Send Message
    Tvidotto polycounter lvl 9
    I finally sent to the workshop

    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 =]
  • System
    Offline / Send Message
    System admin
    Well, today I learned how to rig. Hooray!

    36.jpg

    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.
  • Largs
    Tvidotto wrote: »
    I finally sent to the workshop

    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 =]

    Very nice and smooth job, rated already
  • lancemaker
    hey guys, seems the process is becomming less painfull. Check out this link :
    http://dev.dota2.com/showthread.php?t=48273
1910121415374
Sign In or Register to comment.