Hello Ladies and Gentlemen and welcome to my little tutorial about Dota2 and Flex animations In this tutorial I'll try to explain to you all I've learned about Flex animations regarding Dota2, specifically cosmetics First of all please read the description It'll contain updated information if there's any available all the links to the software used and the guides that I've used to gather this information up and also a written copy of what I'm trying to tell you here, so you can look it up later and don't have to bother with my sometimes long-winded explanations in this video Ok, so first of all what are Flex animations If we take a look at the Valve developer wiki You can see, these are mainly used for facial animations But they can be generalized to say they are vertex animations which change the model without using the traditional skeletal animations used in all the other movements of characters for Dota 2 models here you can read up on all the details of the file-formats used which I've used to gain some insight into it as well so if you need to program something or understand the formats in detail you can look up this website, as I've said links will be in the description So first of all, how do we get the Dota 2 models There's 2 avenues here, one is, you can get the reference models on the official website by valve but there's only the models available for all the heroes that have already been broken down and made ready for cosmetics You can use ... You can get all the other ones by another method So, here you can click on the individual heroes, like, let's say Faceless Void. and here you can see his individual body parts and the limits that are imposed for the cosmetics if you want to make some and here's also a download link for you to get the model and in this download link there's 3 file-formats available: the Maya Ascii format, *.ma which you can ... which can be used with the Maya program from Autodesk, it's a commercial software which is not available for free for commercial use but if you're a student you can go to the students.autodesk.com website which will allow you to sign up with a student email address and obtain software for free but only for non-commercial use So, you can not use it to make cosmetical items for Dota 2 keep that in mind I use the educational version but I'm not creating cosmetics with it, so I'm within the legal boundaries of what is ..
allowed ... to do with this software Alright so, besides actually downloading the official files there a way to extract the game files and this can be done with the Cannonfodder Studio Compiler There's a few caveats to this. You can not extract the facial animations with this for some reason because this is using an older version of the *.mdl file-format and you even have to make some changes to the files before extracting them Ok, let's show you this now. Ok, so you need to first unpack the Dota 2 files with GCFScape So you have to navigate to your Dota 2 folder which is typically in "Program Files\Steam\steamapps\common\dota2 beta" and there under the "dota" folder there's a file called pak01_dir.vpak and you open that and here you see all the game files and you need to extract these somewhere onto your harddrive Preferably into this folder I'll tell you about later but if you extract them then you find the models in "model/heroes" and then the hero name in this case faceless_void Alright, I've already done that so I'll navigate to that folder now dota2/models/heroes/faceless_void Alright, here we see the *.mdl files which link to the vertex files and ... the other info files the thing is, the Cannonfodder Studio Compiler can not deal with the newer version of the vertex lists dx90.vtx so you have to rename them into dx80.vtx I'll use a script to do that because I can't be bothered to copy all the files and rename them manually but ... you can get the script in the description or just copy it over, it's not that big a hassle So, yeah, I'll use the script So now you see there's the dx80.vtx So now in the Studio Compiler you go to "model decompile" You choose the model file Which I like to do by just copying the filename because for some reason the file-browser on this thing sometimes blows up the program and it just goes down and choose a folder to extract I'll just create a new folder for that now Alright, so now it decompiles And here we have some files, which we'll use later on as well. But just for now you have the *.smd files with the different level of detail versions which in this case are both the same So, not really much exciting here.
Then Quake C file That was extracted. That can be used to compile these files again. Which we'll use later on as well. Anyways, you can either obtain it either this way by extracting or you can get them from the official website. Now, how do we view these files? We can use 3 programs to just view these I like to use the Source Filmmaker to view the models.
You can download it for free on Steam And when you start it, you need to start the SDK not the Source Filmmaker itself Then you need to create a mod. I called it "dota2" because I like to edit the Dota 2 files And then it'll create ... then you can go into the Steam folder There you go into the steamapps, <your username>. Sorry, about that. Just the "common" folder then the Source Filmmaker folder Then under "game" there is a folder by the name of your newly created mod in this case "dota2" This one. And I extracted all the Dota 2 files into this folder Also, be sure to not replace the "gameinfo.txt" because if you do then you may not be able to start the Source Filmmaker Extract the files here into this folder, then use the modelviewer of the Source Filmmaker to open the models. Let's open the head of Faceless Void right now Go to "heroes/faceless_void" and open his head model So nothing very exciting, it's just Faceless Voids regular head.
as you can there's all the regular bone structure that the head is attached to if you open the head you can see under the flex tab there's the Flex animation controllers for this particular head you can play around with these like open the jaw uh, I don't know, make the phenome, uh, phoneme sound for an "F" or V and other things. Let me hide the bones real quick. But the information you can see here is also already very important You can see the controller names That correspond to the different vertex animation frames that you need to recreate to make your cosmetic be able to have facial animation There's not a lot of cosmetics in Dota 2 that actually have any Flex animation supplied to them I just know of Faceless Voids head and Sand Kings head. But there are some other, I believe. Except for the Half-Life Model Viewer you can either use Maya, Blender or any other 3D package that supports any of the file-types that come with either the download on the offical website or that you can export with the decompiler So it's *.smd, *.fbx or *.ma files, anything that can open those can be used to open these files Now let me show you how you can open these in Blender You have to install the SMD plugin which you can also find on the Valve developer wiki or you can follow the links in the description and here you have to go to import and then ..., well you can open the *.smd files which I'll show you right now. So if you download the files from the Valve website it also comes with the *.smd files. But the problem with these is, if I open the head right now real quick these only come with the vertecies pretty much, there is now shape keys or Flex animations in this case.
So you can't really use these as a reference for which blend shapes you need to create to be able to bind these to your Flex controllers So there's a little bit of a problem here. We can't natively open *.fbx files with Blender. But there is an *.fbx importer/exporter available which contains some proprietary code which is why it can't be shipped out with Blender by default but you can follow the links in the description and install the *.fbx plugin for Blender So let me open the *.fbx files. In this case the head for Faceless Void I'll just open an empty scene and do that again. *.fbx file for the head, great. So the problem is the importer doesn't open the animations on the bones correctly So, in this case the head is not bound to any bones So you'll need to reference the *.smd files to see which bones you have to attach the head to or you can consult the website which usually has some information, but not in this case. But you can see here the staff tells you which bone you have to bind it to I usually just go by what the supplied *.smd models are actually bound to So, if you want to export this again you have to make sure that you bind the head to the bones again and parent it under the bones Anyways, as for the shape keys you can see here the fully qualified names of the shape keys, for example the jaw_open But you see there are a lot more shape keys than there are flex controllers in the model viewer So, multiple shape keys sometimes make up one Flex controller. For example the eye up and down and the eye left and right are combined channels from these shape keys How they'll combine into each other I'll explain later but for now all that is important is that if you want to create a cosmetic with all facial animation intact you have to recreate all these shape keys for you custom head.
For example the jaw_open one or the jaw_clencher which you can't see much of a change but you basically have to recreate all of these. You don't actually have to change anything when you create these but you should create all these shape keys. Why this is, I'll explain a little but later on but just trust me on this one, except for the ones with underlines in between these are corrective shapes which you don't "need" to do but if you want to copy the combination channel information you'll probably need to recreate these too So, this is the replacement that gets blended in when you have both the jaw open and the lip_corner_puller channels active at the same time this one is blended in slowly. So, these are there to correct the possible interferences of the shape keys, if they're active at the same time Anyways, so now we have the channel names and we have the shape keys which the channel names are used ... the shape keys that are used to create the channels But how do these relate to each other? Well, that's a little bit difficult. We can't actually use Blender to find that out So, let's close out Blender for now. And let's start Maya The thing is, the Maya files that are supplied by Valve officially require the binary plugins by Valve to open their file-formats There is a way to use scripts only to open their file formats which is the MESA script compilation ..
the MESA scripts basically So, if you go to the MESA page These scripts here can be installed in Maya to open and export the file-formats of Valve. The problem is that they're not complete and don't include everything needed to open the Maya files. So, as you can see I've installed all the Valve plugins. How to do that you can read on some guides online, I'll try to link them in the description but basically just look up on the Valve developer wiki how to install them And the binary plugins for Maya are included in the Source Filmmaker but the caveat is that you can only use 32-bit version of Maya to use these plugin. Because, like I said, binary and they're 32-bit compiled, so you can't actually use 64-bit versions of Maya in this case Aright, so if you want to open the maya files, you have to go to "Window->Settings/Preferences->Plugin Manager And there you have to include these plugins.
I guess on how you can install these you can read up on the developer wiki of Valve So, I just always load all of them. I don't think they're necessary. It's mainly the VSMaster and the VSsmdIO that you need But just to make sure I load all of them Alright, so let's open the Maya files.
Alright, there's a warning which alerts us to the fact that there's a python file which we don't actually have but we'll have to do without that. The thing is just that this python file is one that we'd really like to have because it's actually the python file that's the plugin that makes the Flex sliders actually work correctly so that we could actually change them. Right now we can only see how they're set up but we can't actually create new ones without the python file So, let's take a look at it.
We have ... If we look at the head ... actually let me open the outliner ... so, we have these, the ... alright, let's just look at the head for now So yeah,and if we open out blend shapes in "Animation Editors-> Blend Shapes" we see that we actually can't move them but these are the same ones we saw in Blender all, I think it's 47, of them including the corrective shapes but we can't actually move them because they're bound by an expression of the FlexSliderNode.
So, let's open the FlexSliderNode which you can either find by looking at the blend shape or you can use the hypershade to view it. If you open the hypershade with the connection from the head you can see that there's one node on the bottom left which has a bunch of outputs, which is the FlexSliderNode So, if you select that and look into the attribute editor there you'll find the same Flex channels that we saw in the Half-Life Model Viewer including the stereo ones. Not the stereos, the ones that are combined. Like, let's say for example the jaw_sideways or the eye up and down. You see eye down and up, it's just one channel But of course Faceless Void doesn't have eyes so we can't actually see them move right now.
Alright, so there's also the jaw_open one which I always use to see if it's working correctly because it's the most motion pretty much Alright, but we saw there's multiple inputs sometimes for these channels and how exactly do they relate to each other. This can be found out of you look at the if you look at the hypershade again you can see that this has a bunch of outputs into expressions. And these expressions actually are how they're combined. If we look, for example this is lower_lip_depressor expression you can see that here in the expression window. Let me just copy that out real quick because it's kind of hard to read in this small window hm, just open a script editor. Alright, so this doesn't have line break. Just, let me open a text editor real quick So, here you can see it's facelessvoid.facedefblendshape, blablabla, not really important this is just the object, the node it's under lower_lip_depressor and it has a bunch of combinations of max and min function which take into consideration some of the blend shapes that are used in this case So, now we know which blend shapes we have to create as we saw in both the Blender version and here if you look at the blend shape editor and we know how they're combined into the different Flex channels as we can see with the expressions right here.
But how do we actually export them if we create our own? Well, this is a little bit complicated. So, uh, if you have this all set up like here, like this in Maya you can just export it into a *.dmx file and it'll stay intact, so if you go to "Export Selection" in this case and can't open this again, and you say Valve DMX and you export the DMX file, let's say give it a name like "faceless_head.dmx" cannot save it? I think I have a node selected. I needed to select the head. Right, sorry about that. Export selection I think ..
faceless_head.dmx I should actually select something different. So, if you go into the Outliner you can clearly see that there's predefined groups for the export channel But, never mind it's just the same. So, just export the head as *.dmx And, let's navigate to where we actually saved that. In this case under dota2_source/heroes/faceless_void/ maya, and there we have it "faceless_head.dmx". Problem is that the default output format is the binary format of *.dmx. which is not very helpful. We can just see a bunch of strings but if we open that in a hex editor real quick, wait a second Right, so if we open this in a hex editor we can see that there's a bunch of strings at the beginning of the file.
Including the different expressions used So you can also use the expressions ... copy the expressions from here if you don't want to painstakingly copy them one by one You can all copy them all form this block and format them correctly for later use But this doesn't help us it's a binary file. But the thing is there is with the Source Filmmaker, and other SDKs of the Source of the Source package.
There is a tool to convert the binary *.dmx format into a ASCII human readable one So, let's open a command prompt here. And let me check which directory I have to go to Actually I have to go back, one, two, three I'm kind of confused, sorry about that Alright, there you go "dmxconvert" is the name of the tool and let's just consult its help function There you go, the usage. You have to specify the in-file the out-file and the output-encoding and the output-format which in this case, we have the in-file which is our exported faceless_head.dmx and out out-file which we'll call faceless_head_readable, still *.dmx and the output-encoding which we set to keyvalues2 So, output-encoding keyvalues2 So ,now there's the file we created. Now, this is the human readable version of the same binary file And we look here something like the third node here is called DmeCombinationOperator and this is the parent node which is common to all the different both blend shapes and Flex controllers So if we look here we have the innerBrowRaiser, we have outerBrowRaiser, browLowerer and we see here EyeRightAndLeft So these are the Flex controllers.
So they are just pretty much listed here and if we scroll further down we'll see there's ... and further, further down There's the default values which are used to initialize them And here we go. An ElementArray with the targets which are basically the blend shapes called targets in this case and here we have DmeFlexRulePassThrough which just lists all the different, ... the 47 no, wait, wait a second, sorry about that. This lists all the Flex controllers and also has the ... I'm sorry about that these are all the different -like I said at first- these are all the different targets or blend shapes and how they combine to the Flex channels So, here you can read them all.
These are some very simple one like EyeDown which just factors into EyeUpAndDown and also makes sure that it's not below zero and some other factor here. It's inverted because the EyeUpAndDown scale both factors in the EyeUp and EyeDown and the EyeDown value is of course the negative one, so it's multiplied by minus one. But these are the details that we don't really need to know for now Ok, you can see these expression can sometimes get quite long, so ..
Alright, so our problem is that we don't really know how to write these into our own custom items. How would we do that? Now, there's one way we can actually do that. Using Blender actually, surprisingly The SMD importer/exporter has some functions to copy over the Flex channels form another file. So, in this case we can just use the exported *.dmx file and copy it over from here. So, but there's just one simple problem but let me demonstrate that. I've created a very simple mock up of Faceless Voids head and by simple I mean very, very simple. Let me open that So, here we have just a sphere and some teeth like crevasses Anyways, I've set them up correctly, so I have bound them to the skeleton, very simply.
So, there's not very much to it. And, as you can see I've also created the 47 different blend shapes for example the jaw_open one you can see here. And the phenome Phonemes, I'm sorry. And the phonemes. Just some key ones. The others ones are completely blank. So, if I ..
lipSideways left and right don't actually do anything in this case. I've just created them to make sure I have all of them there if I export them So I can now export these intact and copy them into the right channels, so use the calculations that we saw earlier. These expressions right here. And to do that there's -under the scene tab of the properties window- there's, if you have the SMD plugin loaded, there's a section called ... Well, this is awkward. I actually just upgraded the Blender version, so this is kind of ... missing something here Sorry about that, let me just open the older Blender version. This is kind of unexpected.
Didn't expect it to change anything. Sorry about that So, let me open Blender 2.65 Alright So, yeah. Looks like you have to make due with Blender 2.65 for now. Blender 2.66 does seem to have a bug. Good to have found that out. Alright, so. If we have the object selected - which, remember you have to properly parent under the armature to export correctly Alright, if we export it as a *.dmx file we can actually go into Flex properties here and change it to advanced If you just go for simple you can export it and it'll create a separate Flex channel for every single blend shape you have. But that's not actually what we want, so we go to advanced.
And here we can copy over the Flex properties from another file The problem is just if we select the Flex file of the Faceless Void *.dmx file we exported let me do that right now This is the faceless_head_readable. Let's select the ASCII file, they're both equivalents for this sake. But let's open it. And let's try to export this, only this head object.
And there we go, a bunch of errors. What do we actually do to fix this? We have to actually just extract just the Flex animation properties and to do that you can go into the Flex controller properties here and just press "generate controllers" now it created a text file called "ball_face.001" let's open that As you can see it create a "DmeCombinatorOperator" structure like we've seen in the file. So we just need to ... copy over the necessary nodes from this text file. Which includes the controlValues, controlValuesLagged there's no dominators and then the targets and the controls So the most important things are the "controls", "controlValues", "controlValuesLagged" and the "targets" So, you can copy these over into this text file of you can create a new text file outside of Blender with this structure. And copy those over yourself So, make sure that you actually remove the "target" reference.
Because this reference - this parameter in the node tree here denotes the uuid of the actual - of the original cosmetic So, you don't actually have an element with this particular key here in your exported DMX file, if you do it outside of Blender. So, I just recommend you remove this reference. if you copy the elements over. So, just copy over the "targets", "controls","controlValues", "controlValuesLagged" and "targets" and just omit the rest So don't create a "target" parameter here.
Alright, so If you've done that -which I've prepared for times sake- you can actually use that sorry about that So, I've create a faceless16_flexonly, open that and you can copy that from this files. if you export it now, you can see that it successfully exported the file and you can import that into dota. Which, let me just do that now, real quick to show you So, as you know, if you open the Dota client and go into the workshop section you can import different files like the *.fbx, *.dmx and *.smd files. But the problem ,like I said, with the *.smd files is that they don't actually have these vertex animations *.smd files can just have regular skeletal animations or regular skeletal animations and models, they don't actually contain, they can't actually contain vertex animations I'll show you how to use them later on.
but for now... Right, if you go under the workshop section and go "publish new submission", "wearable item" "Facelss Void", select the "head slot". Make sure you create a unique filename. If you imported a file once then you have to either delete the create folder or you have to make up a new name. Because otherwise it'll just re-use the already imported one and you won't be able to see the changes which you import. Let's just say faceless_totorial_test1 and let us select the exported model. Which we save it modelsrc/heroes/faceless_void/ball_face.dmx And make sure that you put the file into the portrait geometry slot as well, because the thing is the Flex animations are only active for the portrait animations.
They aren't actually visible in the game ... I mean in the map So, if you zoom in as close as you can in the map you won't be actually able to see the facial animations. They're only there for the little portrait card on the lower side of the screen So, I'll just use the default textures. right, materialsrc/heroes/faceless_void/faceless_void_head So, now we import it. You can see "successful" it was inside the vertex limit So, now this looks a little awkward but it's pretty much what we want The problem is that we can't actually test the Flex animations ... the Flex vertecies, ... the vertex animations inside this preview window I mean we can see both level of detail versions here in the portrait mode but he won't actually move his mouth So, yeah. There's that.
So we can't use this to preview it right now but I'll show you how to do it later. But for now we have imported this which we needed to generate the *.qc files and the *.dmx files compatible with Dota So, now we can navigate to the folder where it put our model files. So, let me just go to the Steam folder/steamapps/common/dota2 beta and here under the content folder We have our "faceless_tutorial_test1" which we now have the *.dmx files for both level of detail levels and we have the *.qc file which we actually need in this case. So if actually open that file real quick You can see the model here inscribed. It's under my weird userid, so we can't actually test that. If we compiled to this file we wouldn't actually see the result. So, instead what we can do is, we can compile it into the default model.
So we can replace the default head model So, let's do that right now. We can just replace the model with the default heroes/faceless_void/faceless_void_head.mdl So, let's save the *.qc file Now we have to compile it with the StudioMDL. I just use the GuiStudioMDL But you can just use the normal command-line tool as well, I just prefer this one to ... let me make this rather quick.
Alright, so let's go to Steam/steamapps/common/dota2 beta/content/dota/models/items/faceless_void/<myuserid>/tutorial_test - and open the *.qc file Now, let's compile. This'll take a while to actually read all the files and rearrange them into the binary *.mdl format. But the thing is if we have the *.mdl file we can replace it with the default one.
But before we do that let's just open the result in the model viewer. So, right now we have the model open, which maybe we shouldn't have but let's just hope that it doesn't write-lock it uh, faceless_void. Let's wait until it's finished alright heroes/faceless_void Alright, as I've said this may be a little chaotic for the format but this is just and addendum to the written version. Just something in case I forgot how to include in the written version how to do it, just a small little demonstration Alright, so now it's done. Let's open the faceless_void_head and ... where is it? ah, wait.
There it was Right, so I forgot to set the texture path correctly when exporting it in Blender but don't mind it for now. This is not really important because it get overwritten in Dota anyways But as we can see we have all the controllers here which is nice and we can also actually see that they're working if we move them. Like I said I haven't actually implemented all of them like the phenomes ...uh phonemes, sorry about that. And the jaw_open animation Alright, so we see that the animations work in the exported *.mdl file. So, but how do we actually replace the default model file? We have just put it in some random folder. But you can actually do this two ways. You can either go into your Dota folder and export the game files into this folder with GCFScape and then actually delete the *.vpak files.
In that case dota is forced to use the extracted models and there you can easily replace it. Or you can use a little program I found called "update.exe" Which, I understand if you're not comfortable using it since I just randomly found it on the internet So, I can't guarantee that it won't harm your computer in any way but it's more comfortable because it won't force your client to actually re-download a lot of the game files every time there's and update that hits, so... That's a little bit of a relief to the method of actually extracting the files It works by just actually placing the files that you want to put into the *.vpak files into the sub-folder here. Let me just do that real quick. models/heroes/faceless_void and then all the files beginning with "faceless_void_head" put them in the right folder. Like, create the same folder structure as here. Like, "models/heroes/faceless_void", "models/heroes/faceless_void" And then hit then hit the ..
oh, sorry about that. I should actually close the Dota 2 client before doing it. But it says "Success" so we're just run it again. So now it has replaced the default head model with my custom model.
So, if I now start Dota I can actually preview the facial animations. By just going into a bot practice game and previewing the changes that I've actually made. And after I've shown that I'm pretty much done with the tutorial. I'll just show you that there's another way to import the facial animations using the *.smd and *.vta files instead of the *.dmx files is that as far as I know that you can't easily include particles or other cloth effects. in the *.qc script. So, if you use *.dmx files because I think they should usually be inside the *.dmx files. But I'm not sure so I can't make any guarantees.
So you just have to work it out yourselves. I just wanted to make sure there is another ways beside the default *.dmx model format because the *.dmx files are the newer formats which include a lot of the feature which used to be encoded in the *.smd files. Right, let me unequip my head cosmetic and there you see there's this weird little stub that I created. If we just go inside the game there in the protrait we can see him slightly move his mouth It's not perfect because I didn't implement all the phonemes and different face movements, mainly mouth movements. You can see that it's basically trying its best with the things it has. You've seen it works basically.
Alright, so. Now that we have that done. This is basically all that you actually need normally to do this But you can actually make your custom *.qc scripts and export it as a *.smd, *.vta combo Like you see here. You just have to make sure that the actual order of the shape keys is the same as in the original if you do this. So make sure that these are in the same order as in the source file I mean in the original *.smd, not *.smd, in the original *.dmx file that we opened for examination. *.fbx file, sorry about that. So ,after you've done that you can export this one with the *.vta and *.smd.
But make sure that you have the up axis set to "Z" for some reason. I don't actually know what that is all about but it doesn't seem to work if I select "Y". Anyways, just select "Z" if you export as *.smd Alright, then if you have the *.smd and *.vta files you actually need a *.qc file to bind them together. And, we can use as a starting point the one we created when we decompiled the model. So if we go back to the folder which we created. int the source files Source Filmmaker/game/dota2/models/heroes/faceless_void and then our decompiled/extracted version. There we have a *.qc file which we can open to basically build our skeleton So this is what we need mainly.
You just of course need to change the references here. Mainly the model Which you have to of course adjust to your target if you don't just want to replace the default one You have to reference the *.smd file which you just extracted and if you have an lod1 version, of course you have to reference that in the lod1 Then you have the hitboxes which can largely remain the same as we don't really touch that. Then there's the keyvalues portion in which you can put additional particle info and others But now how do we actually include the Flex animation details? If you actually go into the Valve developer wiki we have some examples of how these are set up And I've actually gone through the work of setting that up. You have to reference the *.vta file as a Flex file, you have to list all the different blend shapes and their name, then you have to list all the different controllers, so these are the ones you saw in the Half-Life Model Viewer, and these are the blend shapes which you set up in Blender or you watched otherwise. And these are then where you put the formulas which you extracted here So, then you to add that to this file. and I've set up a basic *.qc file as an example which you can use as a reference if you try to do the same thing with a different model. So let me just open that real quick So, here you open your *.smd file, you open your *.vta file and then you define in the right order all the different shape keys, like, in the same order that have them in Blender file So, this starts with the "innerBrowRaiser" and you can see that I start with the "innerBrowRaiser".
Just give them a name, in this case just prefix them with an "f" to distinguish them form the Flex controllers. So then there's a definition of all the Flex controllers And uh, well these aren't actually meant to be there anymore, ignore those, and then you define the relationships between the Flex controllers and the blend shapes As extracted from the expressions. I believe this is actually the wrong one.
Sorry about that do I have another *.qc file? But the layout is the same basically, that wasn't the wrong thing about this, it's just missing some additional information like the bounding boxes sorry about that, a little bit confused here. modelsrc/heroes/facesless_void where's the *.qc file? Sorry about that. Let me just copy it over from another folder which I know where I have them stored in There it is, oh, it was the ten kilobyte one. I should've just opened that As I've said it's the one that was ten kilobytes big in heroes/faceless_void not very good at my organization right here as you can see There, that's the ten kilobyte one.
Alright, alright. Here you can see, like, I've made some basic ... I've added some basic comments to which lines you'd usually change. Also, I've also forgot some like the *.vta files which of course you have adjust to yours Alright, here you see it's also missing those weird 3 lines. Alright, so, of course the lod1 reference, the hitbox, bounding boxes and, uh, yeah.
that's basically all you need. Then you can use this *.qc file to compile this into a *.mdl file. Which we'll also... So let me just do that real quick as a demonstration. So Let me get back to the Source Filmmaker game/dota2_source/modelsrc/heroes/faceless_void/the ten kilobyte file, let me just compile that It'll also..
Because the modelname here is the default model this will also replace the file which we just compile the last time which I'll just show you when this is done compiling You'll see that these files, as it's sorted by date you can right now see that it's modifying, in this case overwriting the *.mdl files which I've created previously So, if they're done I can show you the modified files with the model viewer. I mean there's a slight difference in the output of course but it's basically the same And, I can't really tell which is more... which is the preferred one which Valve would like to receive because there's not been much feedback from Valve over this. And there will probably be an easier way to do this by the time you see this video, an official version by Valve to do this a lot easier. Or they'll remove these portions of the models which require flex animations. We'll see how it all pans out in the end Ok, so it's done actually compiling those. And as we can see here the modified date is the current time so you'll see that it recreated those. It's not the same ones that I had last time.
then I open this and faceless_void_head now to find it again, and there it is and as you can see this time it actually ... Ah, alright it's a slightly different version that I exported the smd file with. But it's the same one which you saw earlier it just has the outer ring of vertices scaled out to make it more visible in the game but it's otherwise the same file And as you can see the Flex controllers are also the same. We have just one additional one which I just can't find right now Seems like we've forgotten one in the *.dmx file but nevermind You can see that it's all still intact. You can see jaw_open animations and the others all work as they did before and I can also load it up in Dota real quick just to show you that it also works and this..
also works with this method of the *.smd and *.qc/*.vta file formats which as I've said may be important to some people who are used to doing it this way Let me just find the folder I was looking for, the dota2 installation folder and copy the files over replace them and now we can start Dota and see the changed models Sorry about this taking all quite a long time and me being rather long winded about this But like I said, this is just in addition to the written guide, so if you want to look up some details and you don't quite know how to do it Also, all the different guides on how to set up all the programs and which programs I used can be found in the description. As I've said like three times now, but you never know Alright, this is the part where I wish I had an actual SSD to make the loading a bit quicker but anyways alright, let's pick Faceless Void As you can see the model is the one that is changed slightly from the last one but it's the one we've just seen in the model viewer You can see that the animations still work The same as the other So This should basically conclude everything I have to tell you about Dota 2 Flex animations So, if you have some more questions or feedback about the written guides especially Not the video, mainly because it's just an additional reference for people if they are really curious. Just leave me a comment on the Dota 2 guide linked in the description or leave a comment under this video, as you like I hope this was informative for you in some way or another.