[SBARINFO?] Scripting the Face
Moderator: GZDoom Developers
- Project Shadowcat
- Posts: 9369
- Joined: Thu Jul 14, 2005 8:33 pm
- Preferred Pronouns: They/Them
- Operating System Version (Optional): Windows 11
- Graphics Processor: nVidia with Vulkan support
- Location: Blacksburg, SC USA
- Contact:
[SBARINFO?] Scripting the Face
A simple request that could probably be more complex to implement, but it's like this.
Through ACS can one actually script DoomGuy's face? This would be extremely ideal for first-person cutscenes, such as he shows his concern for an object or NPC, or (god forbid) he actually talks. The modder of course would have to take the time to create any required graphics.
The idea can be expanded to the point where DoomGuy can show his evil face when he gets an awesome powerup (again, on modder request). This one could be used in DECORATE.
Through ACS can one actually script DoomGuy's face? This would be extremely ideal for first-person cutscenes, such as he shows his concern for an object or NPC, or (god forbid) he actually talks. The modder of course would have to take the time to create any required graphics.
The idea can be expanded to the point where DoomGuy can show his evil face when he gets an awesome powerup (again, on modder request). This one could be used in DECORATE.
- XutaWoo
- Posts: 4005
- Joined: Sat Dec 30, 2006 4:25 pm
- Location: beautiful hills of those who are friends
- Contact:
Re: [SBARINFO?] Scripting the Face
Yeah.
The best way would probally just putting graphics together (for bloodiness of the face) and giving them a name, plus adding inventory.pickupface and ChangeFace(str facename) functions.
If I was the DoomGuy, I would start laughing maniacly as soon as I got the BFG9000. Non-serious TPs could have the DoomGuy doing something silly when he picks up a weapon or achieves something. If was the DoomGuy, I'd start :ving if I beat a Cyberdemon with only my fist, pistol, shotgun, chaingun, and rocket launcher.
The best way would probally just putting graphics together (for bloodiness of the face) and giving them a name, plus adding inventory.pickupface and ChangeFace(str facename) functions.
If I was the DoomGuy, I would start laughing maniacly as soon as I got the BFG9000. Non-serious TPs could have the DoomGuy doing something silly when he picks up a weapon or achieves something. If was the DoomGuy, I'd start :ving if I beat a Cyberdemon with only my fist, pistol, shotgun, chaingun, and rocket launcher.
-
-
- Posts: 3203
- Joined: Wed Nov 24, 2004 12:59 pm
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
- Contact:
Re: [SBARINFO?] Scripting the Face
If a way for me to get the player's method of death comes along then I might as well add support for forcing a mug shot state. But until then I don't see a reason not to continue using an ACS method of doing this. (Either way you're still using ACS.
)

- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49226
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: [SBARINFO?] Scripting the Face
The means of death (a.k.a. damage type) is stored in the player actor's DamageType field so it's already accessible.
- Project Shadowcat
- Posts: 9369
- Joined: Thu Jul 14, 2005 8:33 pm
- Preferred Pronouns: They/Them
- Operating System Version (Optional): Windows 11
- Graphics Processor: nVidia with Vulkan support
- Location: Blacksburg, SC USA
- Contact:
Re: [SBARINFO?] Scripting the Face
Thing is I want to replace the face altogether when an "event" comes up, not overlap it with a HudMessage.Blzut3 wrote:But until then I don't see a reason not to continue using an ACS method of doing this. (Either way you're still using ACS.)

-
-
- Posts: 3203
- Joined: Wed Nov 24, 2004 12:59 pm
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
- Contact:
Re: [SBARINFO?] Scripting the Face
I guess I missed this in the change log. I suppose I should get to work on mug shot states then (well as soon as I get everything set up again).Graf Zahl wrote:The means of death (a.k.a. damage type) is stored in the player actor's DamageType field so it's already accessible.
-
- Posts: 3975
- Joined: Fri Jul 06, 2007 9:16 am
Re: [SBARINFO?] Scripting the Face
I'm for this, sounds quite funny and could be ueful for a weapon mod I'm thinking of making.
- Project Shadowcat
- Posts: 9369
- Joined: Thu Jul 14, 2005 8:33 pm
- Preferred Pronouns: They/Them
- Operating System Version (Optional): Windows 11
- Graphics Processor: nVidia with Vulkan support
- Location: Blacksburg, SC USA
- Contact:
Re: [SBARINFO?] Scripting the Face
Everyone's thinking weapons and I'm just trying to get his lips to move. o_o;;
-
-
- Posts: 3203
- Joined: Wed Nov 24, 2004 12:59 pm
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
- Contact:
Re: [SBARINFO?] Scripting the Face
Well I got something working for death states right now (well it doesn't figure out the damage type just yet). Here is the syntax so far:
If anyone notices, I did adjust the speed of the xdeath animation since now that I can see the status bar I realized just how slow it originally was (at least I think it was set to 53 tics per frame). Oh if anyone reading this has a copy of the Play Station or Jaguar version of Doom and wants to tell me the proper speed of the animation please do so.
One I get everything done I'll be exporting (at least some of) the animations into the ZDoom pk3.
Code: Select all
mugshot Death
{
DEAD0 -1;
}
mugshot XDeath
{
XDTH0 10;
XDTH1 10;
XDTH2 10;
XDTH3 10;
XDTH4 10;
XDTH5 -1;
}
One I get everything done I'll be exporting (at least some of) the animations into the ZDoom pk3.
- Project Shadowcat
- Posts: 9369
- Joined: Thu Jul 14, 2005 8:33 pm
- Preferred Pronouns: They/Them
- Operating System Version (Optional): Windows 11
- Graphics Processor: nVidia with Vulkan support
- Location: Blacksburg, SC USA
- Contact:
Re: [SBARINFO?] Scripting the Face
With that method, is there any chance of defining additional states -- just like Actors and their custom states?
Then perhaps call them with ACS? That way it'd be a bit more effective when DoomGuy's still breathing, too, you know?
Then perhaps call them with ACS? That way it'd be a bit more effective when DoomGuy's still breathing, too, you know?

-
-
- Posts: 3203
- Joined: Wed Nov 24, 2004 12:59 pm
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
- Contact:
Re: [SBARINFO?] Scripting the Face
It already "supports" custom states it just doesn't use them for anything. It would just be a matter of an ACS function which set currentState in the SBarInfo status bar to point to some mug shot state.Project Dark Fox wrote:With that method, is there any chance of defining additional states -- just like Actors and their custom states?
- Project Shadowcat
- Posts: 9369
- Joined: Thu Jul 14, 2005 8:33 pm
- Preferred Pronouns: They/Them
- Operating System Version (Optional): Windows 11
- Graphics Processor: nVidia with Vulkan support
- Location: Blacksburg, SC USA
- Contact:
Re: [SBARINFO?] Scripting the Face
So then we're only waiting on an ACS command... thanks for the partial add-in. 

-
-
- Posts: 3203
- Joined: Wed Nov 24, 2004 12:59 pm
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
- Contact:
Re: [SBARINFO?] Scripting the Face
Still no ACS command, but I think I have everything else in (including custom damage type support for Pain, Ouch, Death, and XDeath). Here is the code for all the mug shots:
http://blzut3.maniacsvault.net/mugshots.zip
(Sorry if this post sounds rushed, my wireless connection is constantly dropping.)
Spoiler:Here is a build of ZDoom with this implemented. Anyone want to volunteer to search for bugs and/or memory leaks that may have been caused by the re-write of the mug shot system? If anyone wants to try out the custom damage type support the syntax is "State.DamageType".
http://blzut3.maniacsvault.net/mugshots.zip
(Sorry if this post sounds rushed, my wireless connection is constantly dropping.)
- MartinHowe
- Posts: 2062
- Joined: Mon Aug 11, 2003 1:50 pm
- Preferred Pronouns: He/Him
- Location: East Suffolk (UK)
Re: [SBARINFO?] Scripting the Face
Is there or will there be any way to specify the mugshot graphic independently of everything else, but only if one is in use?
Now that ZDoom modders can create custom player classes and morph artefacts, you would think the "face" property of regular old-skool skins would be included as a player class property, but it is not. This means that, for example, I can create a morph weapon in DOOM (not Heretic or HeXen) that changes the player into a chicken; heck, by spawning a monster that does nothing except fire a morph fx projectile at the shooter, it could even be a power-up that, for example, changes the player into a monster - say an ALIEN or a Maulotaur. If under that circumstance the user is using even the regular DOOM built-in statusbar, let alone a custom one, the player will be a chicken but have a marine mugshot!
Here's a ChaseCam screenshot of a powerup I made that morphs the player into a black cat -- but it leaves the SAS commando mugshot. See the problem?

It would make player class modding for DOOM a lot more clean if one could include an SBARINFO that adds to whatever one is already in use and contains nothing but a mugshot command that only applies (a) to a specified player class and (b) only if mugshots are being drawn at all by whatever statusbar is in use.
Alternatively, maybe Randy or Graf could add the regular SKIN face property to player class definitions in order to overcome this problem.
Now that ZDoom modders can create custom player classes and morph artefacts, you would think the "face" property of regular old-skool skins would be included as a player class property, but it is not. This means that, for example, I can create a morph weapon in DOOM (not Heretic or HeXen) that changes the player into a chicken; heck, by spawning a monster that does nothing except fire a morph fx projectile at the shooter, it could even be a power-up that, for example, changes the player into a monster - say an ALIEN or a Maulotaur. If under that circumstance the user is using even the regular DOOM built-in statusbar, let alone a custom one, the player will be a chicken but have a marine mugshot!
Here's a ChaseCam screenshot of a powerup I made that morphs the player into a black cat -- but it leaves the SAS commando mugshot. See the problem?

It would make player class modding for DOOM a lot more clean if one could include an SBARINFO that adds to whatever one is already in use and contains nothing but a mugshot command that only applies (a) to a specified player class and (b) only if mugshots are being drawn at all by whatever statusbar is in use.
Alternatively, maybe Randy or Graf could add the regular SKIN face property to player class definitions in order to overcome this problem.
-
-
- Posts: 3203
- Joined: Wed Nov 24, 2004 12:59 pm
- Graphics Processor: ATI/AMD with Vulkan/Metal Support
- Contact:
Re: [SBARINFO?] Scripting the Face
You should probably open another feature request for this.MartinHowe wrote:{Stuff about morphing}