Hi there. Im trying to compile a model and it won't compile all the bones. Heres the model in my editor with its bones:
[IMG]http://image.prntscr.com/image/3a42ce993f034064adb9e22119a00673.jpeg[/IMG]
This is what im getting in crowbar. My process is exporting from Cinema 4D (FBX) into Fragsoft. The model has 4 anim files and Ive tried everything I know to fix this but this is just taking the piss.
[IMG]http://image.prntscr.com/image/659afb620e924d63b95f9a99a1aa7667.jpeg[/IMG]
Why do only some bones show in the console log? Im using the latest version of Crowbar if that helps. I have a feeling it may be Fragsoft ditching bone data for whatever reason but I tested this same method with Maya 2016 and it still does the same.
2nd bump, been 3 days, anyone have any suggestions?
Okay, so here's my personal process (and an explanation):
Firstly, I personally use Max and GUIStudioMdl. You shouldn't have a problem using Blender and Crowbar instead but a step or two may be a bit different, that's all.
When bones are defined, bones that are deemed to have no use (no skin and/or no animation) are ignored. The only bones that can safely be ignored are jigglebones. Helper bones need to be defined as well! To get around this, you're going to use a dummy animation. In Max, I create this just by hiding the mesh so we're left with the full skeleton, then by selecting everything, setting a keyframe, moving down the timeline, then rotating everything on all 3 axes with autokey on just to ensure everything rotates properly. In other words, the dummy animation just ensures that all bones move so the compiler thinks they're all used.
Once you have your animation, you'll want a QC for defining your bones. This QC will have nothing more than the $modelname, $cdmaterials, any $model, $body, or $bodygroup flags, and the dummy animation. Absolutely anything else will be removed. Note that this QC is separate from the one used for actually compiling the model. Here's an example of one of my models' QCs used for defining bones:
[url]http://pastebin.com/2gmB2RCd[/url]
Once everything is good, give the compiler a go with defining bones enabled and then copy and paste the bone definitions into your QC or a QCi file. This next step may be optional depending on your model. If you're defining a certain amount of bones, you may run into anomalies. This isn't an issue with Crowbar or GUIStudioMdl but rather with studiomdl.exe itself (Valve's end) which both programs use for compiling. Here's an example of what generated bone definitions look like on one of my playermodels, unmodified:
[url]http://pastebin.com/ajjtWdkc[/url]
The specific anomaly may vary each time you reboot the program and try to compile again, but the anomaly is actually the same throughout the file and may occure multiple times. The more bones you define, the more you may see it. This first occurence is visible on line 6 in the next to last coordinate set. Here's two examples with the anomalies marked:
[t]http://i.imgur.com/FiZKIJJ.png[/t]
[t]http://i.imgur.com/EpLfdlH.png[/t]
With instances such as line 6, -0.・イg}Y@000000 should be -0.000000. With instances such as line 46, $defi・イg}Y@nebone should be $definebone. Clues like this make it easy to know what to select. If you're on a locale and/or have language packs then you may see symbols from these packs. Ideally, you should be using notepad++ for this step. Isolate one of the text anomalies. Using the screenshots for reference, I found one of those anomalies highlighted in red and selected it, then pressed ctrl+f to open the find menu. Notepad++ often places the highlighted text in the find menu for you. If not then copy and paste it. From here, click on the replace tab. "Find what" should be the anomaly. "Replace with" should quite literally be nothing. Ensure the text box is completely cleared out and press replace all. This should get rid of them all at once for you. From here, you can save your $definebones and compile. That should about cover it, but I can walk you through it over Teamviewer if you have any further troubles.
[QUOTE=CaptainBigButt;51296862]Okay, so here's my personal process (and an explanation):
Firstly, I personally use Max and GUIStudioMdl. You shouldn't have a problem using Blender and Crowbar instead but a step or two may be a bit different, that's all.
When bones are defined, bones that are deemed to have no use (no skin and/or no animation) are ignored. The only bones that can safely be ignored are jigglebones. Helper bones need to be defined as well! To get around this, you're going to use a dummy animation. In Max, I create this just by hiding the mesh so we're left with the full skeleton, then by selecting everything, setting a keyframe, moving down the timeline, then rotating everything on all 3 axes with autokey on just to ensure everything rotates properly. In other words, the dummy animation just ensures that all bones move so the compiler thinks they're all used.
Once you have your animation, you'll want a QC for defining your bones. This QC will have nothing more than the $modelname, $cdmaterials, any $model, $body, or $bodygroup flags, and the dummy animation. Absolutely anything else will be removed. Note that this QC is separate from the one used for actually compiling the model. Here's an example of one of my models' QCs used for defining bones:
[url]http://pastebin.com/2gmB2RCd[/url]
Once everything is good, give the compiler a go with defining bones enabled and then copy and paste the bone definitions into your QC or a QCi file. This next step may be optional depending on your model. If you're defining a certain amount of bones, you may run into anomalies. This isn't an issue with Crowbar or GUIStudioMdl but rather with studiomdl.exe itself (Valve's end) which both programs use for compiling. Here's an example of what generated bone definitions look like on one of my playermodels, unmodified:
[url]http://pastebin.com/ajjtWdkc[/url]
The specific anomaly may vary each time you reboot the program and try to compile again, but the anomaly is actually the same throughout the file and may occure multiple times. The more bones you define, the more you may see it. This first occurence is visible on line 6 in the next to last coordinate set. Here's two examples with the anomalies marked:
[t]http://i.imgur.com/FiZKIJJ.png[/t]
[t]http://i.imgur.com/EpLfdlH.png[/t]
With instances such as line 6, -0.・イg}Y@000000 should be -0.000000. With instances such as line 46, $defi・イg}Y@nebone should be $definebone. Clues like this make it easy to know what to select. If you're on a locale and/or have language packs then you may see symbols from these packs. Ideally, you should be using notepad++ for this step. Isolate one of the text anomalies. Using the screenshots for reference, I found one of those anomalies highlighted in red and selected it, then pressed ctrl+f to open the find menu. Notepad++ often places the highlighted text in the find menu for you. If not then copy and paste it. From here, click on the replace tab. "Find what" should be the anomaly. "Replace with" should quite literally be nothing. Ensure the text box is completely cleared out and press replace all. This should get rid of them all at once for you. From here, you can save your $definebones and compile. That should about cover it, but I can walk you through it over Teamviewer if you have any further troubles.[/QUOTE]
Ahh thank you! Ill try the method you suggested and if not Ill get in contact with you :)
Sorry, you need to Log In to post a reply to this thread.