Mmm, I tried to look at how the Marine is done. Of course, to a 3D modelling noob like me, there are so many fields I might be missing something, but it looks like it's very similar to what I am doing.
I set the diffuse material color channel to RGBa
I set the Alpha Mask to Alpha Only.
I set the Alpha Mask 2 to RGBa (though my model doesn't have any material there, so I guess this is pointless).
I paint the parts I want team colored on the texture black in the alpha channel.
That's it. What I get is simply: the painted parts of the textures disappear.
The only difference that I am being aware of is that I am working with .tga files, while most of those textures are .dds. Do you think this might be the problem? (I can't really test, because I am on a Mac and I can't seem to find something to convert files to .dds). Another difference was Tint Strength: 4 on the Marine; setting it to the same number just turned my model black, actually.
That's awesome, thank you for the explaination. It didn't work like that though, I still had to add hit test. But that was definitely learning something new. Now I can fix some selection issues that I was having with other models as well.
If I may abuse your patience, I would like to ask another question. It is about adding team color to models: I seem to recall to have read in one of your post that this can be done by setting the material color channel (perhaps for the diffuse?) to RGBa, and then painting on the alpha channel of the texture to reveal the team color. What am I getting wrong? I can't seem to make it work.
I think we can safely ignore all the warnings regarding the Textures; or do I have to make sure that the textures are there when I import a model, even if I only want to change the name of an attachment point?
The problem is not present in the “original” model. The reason why I needed to import it, is because I wanted an “overhead” attachment point to be available. That's pretty much it.
Thank you a lot for your work and your support, by the way!
What I was looking for is a way to localizing sound effects (specifically unit voices/dialogs) based on the user's language. You know, in the same way as you can have locale strings (enUs.SC2Data), I was wondering if it was possible to have different sound files depending on the user's language. Starcraft of course does it, as you can have different voices according to your language (where available), and I was wondering if there was a way to do it through the editor.
My guess (what I think makes sense) is to have in the locale text files a different path for sound ids, or something like that. Though I have no clue.
I just downloaded the master from Github (perhaps I should have posted the issue there?). I am importing/exporting a custom model that was extracted from WoW. I don't remember where I took it (I didn't extract it myself) but if you need it for testing I could send it to you.
If your requirement is just to auto-target neutral units, the auto-cast suggested by @Photoloss would be the way to go, and definitely the simplest. If you could elaborate on what exactly are you trying to do and what are your requirements, I am sure I could help with that.
I am customizing the help dialog, along with the glossary. I searched around the forums, and though many questions were answered, a few were left unanswered for me. Here they are:
1. How to remove specific categories from the glossary?
I can use the triggers to remove racial tech trees, but I cannot remove specific subcategories. A way I could do it is to go through all the units belonging to that category and removing that from the data. It is, however, a huge endeavor given that I have also campaign dependencies. The way I go doing that now is using a trigger to loop through players and disabling the display of units in glossary by default (TechTreeUnitHelpDefault(player, false)), and then enabling my units one by one (TechTreeUnitHelp(player, unit, true)). I do this because I have to activate less units than I would have to deactivate, but it's still a hassle and I would like to simply remove specific categories.
2. How to change model size in glossary?
My custom models turn out to be either too small or too big in several situations. How can I adjust the size to make sure they don't overlap over text?
3. Upgrades not displaying
Although my upgrades correctly state the affected unit arrays, the upgrades in the glossary seem to always be empty. On the passing, also the upgrades from the default glossary (at least with campaign mod on) don't seem to work.
4. How to add additional information about a unit?
In some HotS units, in the glossary header you can see that the Strain information is added. How is it possible to add further information like so?
5. How to add a custom tech tree?
I removed the default racial tech trees, but I have a custom tech tree, with everything well defined under the appropriate data fields. How to make them show up here, though?
6. How to change game mechanics and controls?
Those sections are amazing. Is it possible to extend, or modify them?
That's all. Any answer to any of those questions is deeply appreciated.
I checked those fields you pointed out, and also saw the example doodad you are referring to. I'm sorry, though, I don't see how I can change the sounds associated to a model based on user locale in this way.
I am trying to do a very simple task, just changing an attachment point name. When I export the model back, however, it does not work correctly in Starcraft anymore: it gives me trouble with selecting it. I can still select it if I try hard, but, for example, I cannot box to select multiple models, or double click for the same effect.
As a matter of fact, I just tried merely importing the model and exporting it back without any changes, and it gives me the same problem (also, the file size is around 25% larger).
Is this a bug? Is there anything I can do to avoid this selection problem?
Care to elaborate a bit more on that? Do you mean Model Actor events? I didn't seem to find any, browsing through terms and whatnot to check for the user locale and switch, for example, unit voices.
I have to say, it is definitely not a 0.016s gap, but at least a 0.5-0.75s gap. So perhaps I must have done something wrong with the FromEffectTreeDescendant term?
In any case, I used your suggestions to come to a solution. I set the first beam phase actor as a Supporter of the second phase actor. Then, instead of destroying the beam actor on Effect.PersistentA.Stop, I use an ActorCreation event on Phase2 actor, with Destroy Target ::Supporter.
This works perfectly. However, I have obviously the problem of destroying Phase1 actor if the beam is interrupted without going to Phase2. To solve this, I patched it like so: i put back the Effect.PersistentA.Stop event, tying it to a 1s timer, and destroying the actor anyways on Timer expiration. This makes the initial solution a bit messier and leaves me with a beam model lying there for 1s after being interrupted, which is less than ideal, but works well enough.
I wish I could use a Destroy message on Effect.PersistentA.Stop and override it on Effect.PersistentA.Expire (which ensures that Phase2 is being triggered). I tried putting a Create message on Effect.PersistentA.Expire in the hopes that another copy of the actor would be created, but nothing happens (I presume that Expire runs before Stop, so it creates another copy and then destroys it on Stop).
I put all these for somebody's future reference. I would say I am happy with the patchy solution, but if you (or anybody else) would find the time, I would appreciate comments and pointers.
This is probably a very rare question, as I don't know how many people would bother: but is it possible to localize sound files in the same way as text strings? Has anybody tried that before?
I have a beam effect with different phases. I use a Create Persistent with a finite amount of periods, which, On Expiration activates another Persistent with an infinite amount of periods.
On my actors, I have:
Beam Phase 1
Effect.PersistentA.Start -> Create
Effect.PersistentA.Stop -> Destroy
Beam Phase 2
Effect.PersistentB.Start -> Create
Effect.PersistentB.Stop -> Destroy
However, this makes a slight delay between the two beam phases in which there is no actor. I would like the first actor to disappear after the second actor is created.
I tried adding the term FromEffectTreeDescendant to the first destruction event, but it didn't work. I thought that was supposed to work, any clue why?
Thanks a lot. I ended up adjusting the Events on the Actor with an Enumerate Area validator term as you suggested. In order to sync up the damage with the actor animation I used a Create Persistent effect on the Search in order to create a slight delay. So, all of this works like charm.
Unfortunately, the facing issue doesn't work reliably, even when using an Issue Order: Attack effect on the Search. Not the biggest of deals, but if you have any idea why, I would certainly appreciate that.
0
@println: Go
Mmm, I tried to look at how the Marine is done. Of course, to a 3D modelling noob like me, there are so many fields I might be missing something, but it looks like it's very similar to what I am doing.
That's it. What I get is simply: the painted parts of the textures disappear.
The only difference that I am being aware of is that I am working with .tga files, while most of those textures are .dds. Do you think this might be the problem? (I can't really test, because I am on a Mac and I can't seem to find something to convert files to .dds). Another difference was Tint Strength: 4 on the Marine; setting it to the same number just turned my model black, actually.
Any pointers? I seem to be stuck.
0
@println: Go
That's awesome, thank you for the explaination. It didn't work like that though, I still had to add hit test. But that was definitely learning something new. Now I can fix some selection issues that I was having with other models as well.
If I may abuse your patience, I would like to ask another question. It is about adding team color to models: I seem to recall to have read in one of your post that this can be done by setting the material color channel (perhaps for the diffuse?) to RGBa, and then painting on the alpha channel of the texture to reveal the team color. What am I getting wrong? I can't seem to make it work.
0
@println: Go
I'm on a Mac. Indeed it outputs some warnings and errors, here is the output:
I think we can safely ignore all the warnings regarding the Textures; or do I have to make sure that the textures are there when I import a model, even if I only want to change the name of an attachment point?
The problem is not present in the “original” model. The reason why I needed to import it, is because I wanted an “overhead” attachment point to be available. That's pretty much it.
Thank you a lot for your work and your support, by the way!
0
@DrSuperEvil: Go
What I was looking for is a way to localizing sound effects (specifically unit voices/dialogs) based on the user's language. You know, in the same way as you can have locale strings (
enUs.SC2Data
), I was wondering if it was possible to have different sound files depending on the user's language. Starcraft of course does it, as you can have different voices according to your language (where available), and I was wondering if there was a way to do it through the editor.My guess (what I think makes sense) is to have in the locale text files a different path for sound ids, or something like that. Though I have no clue.
I hope I explained myself correctly this time.
0
@DrSuperEvil: Go
So I get we were speaking of different things, right?
0
@println: Go
I just downloaded the master from Github (perhaps I should have posted the issue there?). I am importing/exporting a custom model that was extracted from WoW. I don't remember where I took it (I didn't extract it myself) but if you need it for testing I could send it to you.
0
@wisesquirrel: Go
If your requirement is just to auto-target neutral units, the auto-cast suggested by @Photoloss would be the way to go, and definitely the simplest. If you could elaborate on what exactly are you trying to do and what are your requirements, I am sure I could help with that.
0
I am customizing the help dialog, along with the glossary. I searched around the forums, and though many questions were answered, a few were left unanswered for me. Here they are:
1. How to remove specific categories from the glossary?
I can use the triggers to remove racial tech trees, but I cannot remove specific subcategories. A way I could do it is to go through all the units belonging to that category and removing that from the data. It is, however, a huge endeavor given that I have also campaign dependencies. The way I go doing that now is using a trigger to loop through players and disabling the display of units in glossary by default (
TechTreeUnitHelpDefault(player, false)
), and then enabling my units one by one (TechTreeUnitHelp(player, unit, true)
). I do this because I have to activate less units than I would have to deactivate, but it's still a hassle and I would like to simply remove specific categories.2. How to change model size in glossary?
My custom models turn out to be either too small or too big in several situations. How can I adjust the size to make sure they don't overlap over text?
3. Upgrades not displaying
Although my upgrades correctly state the affected unit arrays, the upgrades in the glossary seem to always be empty. On the passing, also the upgrades from the default glossary (at least with campaign mod on) don't seem to work.
4. How to add additional information about a unit?
In some HotS units, in the glossary header you can see that the Strain information is added. How is it possible to add further information like so?
5. How to add a custom tech tree?
I removed the default racial tech trees, but I have a custom tech tree, with everything well defined under the appropriate data fields. How to make them show up here, though?
6. How to change game mechanics and controls?
Those sections are amazing. Is it possible to extend, or modify them?
That's all. Any answer to any of those questions is deeply appreciated.
0
@DrSuperEvil: Go
I checked those fields you pointed out, and also saw the example doodad you are referring to. I'm sorry, though, I don't see how I can change the sounds associated to a model based on user locale in this way.
0
I am experiencing troubles exporting.
I am trying to do a very simple task, just changing an attachment point name. When I export the model back, however, it does not work correctly in Starcraft anymore: it gives me trouble with selecting it. I can still select it if I try hard, but, for example, I cannot box to select multiple models, or double click for the same effect.
As a matter of fact, I just tried merely importing the model and exporting it back without any changes, and it gives me the same problem (also, the file size is around 25% larger).
Is this a bug? Is there anything I can do to avoid this selection problem?
0
@DrSuperEvil: Go
Care to elaborate a bit more on that? Do you mean Model Actor events? I didn't seem to find any, browsing through terms and whatnot to check for the user locale and switch, for example, unit voices.
0
@DrSuperEvil: Go
I have to say, it is definitely not a 0.016s gap, but at least a 0.5-0.75s gap. So perhaps I must have done something wrong with the FromEffectTreeDescendant term?
In any case, I used your suggestions to come to a solution. I set the first beam phase actor as a Supporter of the second phase actor. Then, instead of destroying the beam actor on Effect.PersistentA.Stop, I use an ActorCreation event on Phase2 actor, with Destroy Target ::Supporter.
This works perfectly. However, I have obviously the problem of destroying Phase1 actor if the beam is interrupted without going to Phase2. To solve this, I patched it like so: i put back the Effect.PersistentA.Stop event, tying it to a 1s timer, and destroying the actor anyways on Timer expiration. This makes the initial solution a bit messier and leaves me with a beam model lying there for 1s after being interrupted, which is less than ideal, but works well enough.
I wish I could use a Destroy message on Effect.PersistentA.Stop and override it on Effect.PersistentA.Expire (which ensures that Phase2 is being triggered). I tried putting a Create message on Effect.PersistentA.Expire in the hopes that another copy of the actor would be created, but nothing happens (I presume that Expire runs before Stop, so it creates another copy and then destroys it on Stop).
I put all these for somebody's future reference. I would say I am happy with the patchy solution, but if you (or anybody else) would find the time, I would appreciate comments and pointers.
0
This is probably a very rare question, as I don't know how many people would bother: but is it possible to localize sound files in the same way as text strings? Has anybody tried that before?
0
I have a beam effect with different phases. I use a Create Persistent with a finite amount of periods, which, On Expiration activates another Persistent with an infinite amount of periods.
On my actors, I have:
Beam Phase 1
Effect.PersistentA.Start -> Create
Effect.PersistentA.Stop -> Destroy
Beam Phase 2
Effect.PersistentB.Start -> Create
Effect.PersistentB.Stop -> Destroy
However, this makes a slight delay between the two beam phases in which there is no actor. I would like the first actor to disappear after the second actor is created.
I tried adding the term FromEffectTreeDescendant to the first destruction event, but it didn't work. I thought that was supposed to work, any clue why?
0
Thanks a lot. I ended up adjusting the Events on the Actor with an Enumerate Area validator term as you suggested. In order to sync up the damage with the actor animation I used a Create Persistent effect on the Search in order to create a slight delay. So, all of this works like charm.
Unfortunately, the facing issue doesn't work reliably, even when using an Issue Order: Attack effect on the Search. Not the biggest of deals, but if you have any idea why, I would certainly appreciate that.