twhl-community / halflife-unified-sdk-assets

Asset sources for the Half-Life Unified SDK. See https://github.com/twhl-community/halflife-unified-sdk
MIT License
7 stars 4 forks source link

Adjust maps entities for shared models. #27

Open malortie opened 2 years ago

malortie commented 2 years ago

Used for documentation.

Because shared models need to play different sequences that have the same name across 3 games, the following adjustments need to be made to maps.

All maps

Change weapon_shotgun angles (Opposing Force and Blue Shift only)

Change:

Note: because the mesh is not fully centered along Z axis, rotating around the X axis (Roll) can cause the model to clip through the ground in some cases.

Some maps in Op4 and Blue Shift use "angle" keyvalue to set the yaw.

Change:

Adjust Male BlackOps heads

For all monster_male_assassin do the following:

With keyvalue "head" "0" (White)

Add:

With keyvalue "head" "1" (Black)

Add:

Change:

With keyvalue "head" "2" (Black with thermal vision)

Add:

Change:

Opposing Force

of0a0

Commander grunt holding on

Change:

{
"origin" "3288 -1876 640"
"m_iszPlay" "fall_out"
"targetname" "fall_out"
"m_iszEntity" "sergeant"
"m_fMoveTo" "0"
"m_flRepeat" "0"
"m_flRadius" "0"
"delay" "0"
"classname" "scripted_sequence"
}

Change:

{
"origin" "3252 -1876 640"
"m_iszPlay" "stand_react"
"targetname" "stand_react"
"m_iszEntity" "sergeant"
"m_fMoveTo" "0"
"m_flRepeat" "0"
"m_flRadius" "0"
"delay" "0"
"spawnflags" "256"
"classname" "scripted_sequence"
}

Change:

{
"origin" "3792 -1600 640"
"m_iszPlay" "bark"
"targetname" "sgt_bark"
"m_iszEntity" "sergeant"
"m_fMoveTo" "0"
"m_flRepeat" "0"
"m_flRadius" "0"
"delay" "0"
"classname" "scripted_sequence"
}

Sitting grunt medic

Change:

{
"origin" "3420 -1870 624"
"targetname" "b0rk"
"m_fMoveTo" "4"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "0"
"m_iszIdle" "sitting3"
"m_iszEntity" "san"
"angle" "271"
"classname" "scripted_sequence"
}

Sitting regular grunt

Change:

{
"origin" "3382 -1938 624"
"targetname" "chism"
"m_fMoveTo" "4"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "0"
"m_iszIdle" "sitting1"
"m_iszEntity" "yon"
"angle" "90"
"classname" "scripted_sequence"
}

Sitting SAW grunt

Change:

{
"origin" "3344 -1870 624"
"targetname" "fucklob"
"m_fMoveTo" "4"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "0"
"m_iszIdle" "sitting2"
"m_iszEntity" "ichi"
"angle" "275"
"classname" "scripted_sequence"
}

Change:

{
"origin" "3504 -1600 640"
"m_iszPlay" "sit_React"
"targetname" "sit_react"
"m_iszEntity" "ichi"
"m_fMoveTo" "0"
"m_flRepeat" "0"
"m_flRadius" "0"
"delay" "0"
"spawnflags" "100"
"angle" "271"
"classname" "scripted_sequence"
}

Change:

{
"origin" "3472 -1600 640"
"m_iszPlay" "stiff"
"targetname" "sit_stiff"
"m_iszEntity" "ichi"
"m_fMoveTo" "0"
"m_flRepeat" "0"
"m_flRadius" "0"
"delay" "0"
"spawnflags" "100"
"angle" "271"
"classname" "scripted_sequence"
}

Change:

{
"origin" "3536 -1600 640"
"m_iszPlay" "cower"
"targetname" "sit_react2"
"m_iszEntity" "ichi"
"m_fMoveTo" "0"
"m_flRepeat" "0"
"m_flRadius" "0"
"delay" "0"
"spawnflags" "100"
"angle" "271"
"classname" "scripted_sequence"
}

Sitting engineer grunt

Change:

{
"origin" "3382 -1870 624"
"targetname" "sean"
"m_fMoveTo" "4"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "0"
"m_iszIdle" "sitting1"
"m_iszEntity" "ni"
"angle" "272"
"classname" "scripted_sequence"
}

Change:

{
"origin" "3632 -1600 640"
"m_iszPlay" "cower"
"targetname" "torch_cower"
"m_iszEntity" "ni"
"m_fMoveTo" "0"
"m_flRepeat" "0"
"m_flRadius" "0"
"delay" "0"
"spawnflags" "100"
"angle" "271"
"classname" "scripted_sequence"
}

of1a1

PCV suit on table in treatments area

Add:

Reason: Opposing Force uses PCV model.

{
"classname" "item_suit"
"angle" "0"
"body" "1"
"origin" "367 2816 48"
}

Scientist with headcrab stick

Add:

Change:

Reason: Scientist holds a specific item. Set the correct body value.

{
"origin" "360 2288 56"
"body" "5"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"targetname" "scientist3"
"spawnflags" "146"
"angle" "90"
"classname" "monster_scientist"
}

of1a2

Fence Otis

Change:

Reason: Otis fence sequence is now named otis_fence to allow to use the Barney fence sequence.

{
"origin" "1196 1900 -192"
"m_iszPlay" "fence"
"m_fMoveTo" "5"
"targetname" "otis1_fence"
"delay" "0"
"m_flRadius" "512"
"m_flRepeat" "0"
"m_iszEntity" "otis1"
"spawnflags" "104"
"angle" "90"
"classname" "scripted_sequence"
}

Change:

Reason: Otis wave sequence was renamed to avoid confusion.

{
"target" "otis1_fence"
"classname" "scripted_sequence"
"angle" "0"
"spawnflags" "104"
"m_iszEntity" "otis1"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "1"
"targetname" "otis1_wave"
"m_fMoveTo" "1"
"m_iszPlay" "wave"
"origin" "1164 1900 -192"
}

of1a4b

Loader

Add:

Reason: To make the Loader use the correct crate texture.

{
"origin" "-1808 672 -1212"
"targetname" "duv_loader"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"rendermode" "0"
"renderfx" "0"
"renderamt" "0"
"spawnflags" "128"
"angle" "90"
"classname" "monster_op4loader"
}

of1a5

Vending machine Otis

Add:

Reason: This Otis uses the bald variant.

{
"origin" "1560 -3424 1339"
"suspicious" "0"
"sleeves" "0"
"head" "1"
"bodystate" "0"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"targetname" "gleasonX"
"spawnflags" "22"
"angle" "183"
"classname" "monster_otis"
}

of1a5b

Vending machine Otis

Add:

Reason: This Otis uses the bald variant.

{
"origin" "112 -2096 1344"
"suspicious" "0"
"sleeves" "-1"
"head" "1"
"bodystate" "-1"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"targetname" "gleason"
"spawnflags" "4"
"angle" "76"
"classname" "monster_otis"
}

Abducted scientist

No longer needed: sciact01 is not referenced, and will not play.

~Change:~

~Reason: A single LD/HD variant is used for Op4 and HL1 scientist model. Op4 eye_wipe is different from original so it was moved to a separate sequence.~

{
"origin" "-448 -1648 1696"
"delay" "0"
"targetname" "sciact01"
"m_flRadius" "512"
"m_flRepeat" "0"
"m_fMoveTo" "2"
"m_iszEntity" "scihist"
"m_iszPlay" "eye_wipe"
"target" "sciact01a"
"spawnflags" "96"
"angle" "219"
"classname" "scripted_sequence"
}

of4a3

Scientist holding a clipboard

Add:

Change:

Reason: Scientist holds a specific item. Set the correct body value.

{
"origin" "-439 -1232 356"
"targetname" "grapple_sci"
"body" "4"
"model" "models/scientist.mdl"
"rendercolor" "0 0 0"
"TriggerCondition" "0"
"renderamt" "0"
"rendermode" "2"
"renderfx" "0"
"spawnflags" "4"
"angle" "180"
"classname" "monster_generic"
}

Tentacle 1

Add:

Reason: Opposing Force tentacle2.mdl uses level 1,2,3 sequences with lower altitude.

{
"origin" "1831 -2272 256"
"sound" "1"
"sweeparc" "100"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"targetname" "tentacle_1"
"angle" "305"
"classname" "monster_tentacle"
}

Tentacle 2

Add:

Remove:

Reason: To use custom model instead of spawnflags.

{
"origin" "1824 -1288 272"
"targetname" "tentacle_2"
"TriggerCondition" "0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"sound" "1"
"sweeparc" "360"
"rendercolor" "0 0 0"
"spawnflags" "64"
"angle" "180"
"classname" "monster_tentacle"
}

of5a1

Male BlackOps Strafe left/right sequences

Change:

Reason: strafeleft now has motion extraction. strafeleft_cine is the same sequence without motion extraction.

{
"classname" "scripted_sequence"
"angle" "180"
"spawnflags" "104"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "0"
"targetname" "assassin5_roll"
"m_fMoveTo" "0"
"m_iszEntity" "assassin6"
"m_iszPlay" "strafeleft"
"origin" "-288 -1688 64"
}

Change:

Reason: straferight now has motion extraction. straferight_cine is the same sequence without motion extraction.

{
"classname" "scripted_sequence"
"angle" "180"
"spawnflags" "104"
"m_iszPlay" "straferight"
"m_iszEntity" "assassin5"
"m_fMoveTo" "0"
"targetname" "assassin5_roll"
"delay" "0"
"m_flRadius" "512"
"m_flRepeat" "0"
"origin" "-336 -1536 64"
}

ofboot2

PCV suit mounted on wall

Add:

Reason: Opposing Force uses PCV model.

{
"origin" "-600 -152 -86"
"classname" "item_suit"
}

Blue Shift

ba_canal2

Dumped Otis 1

Change:

Add:

Reason: This Otis uses the bald variant.

{
"origin" "-1120 2120 1312"
"model" "models/otis.mdl"
"renderfx" "0"
"rendermode" "0"
"renderamt" "0"
"rendercolor" "0 0 0"
"TriggerCondition" "0"
"body" "0"
"targetname" "dump_otis"
"spawnflags" "134"
"angle" "180"
"classname" "monster_generic"
}

Dumped Otis 2

Change:

Add:

Reason: This Otis uses the bald variant.

{
"origin" "-1184 2120 1312"
"targetname" "dump_otis2"
"body" "0"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"model" "models/otis.mdl"
"spawnflags" "134"
"angle" "180"
"classname" "monster_generic"
}

ba_maint

Console scientist

Change:

{
"origin" "-2170 1328 624"
"targetname" "walter_work"
"m_iszIdle" "idle1"
"m_iszPlay" "work"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "0"
"m_fMoveTo" "4"
"m_iszEntity" "walter"
"spawnflags" "4"
"classname" "scripted_sequence"
}

Change:

{
"origin" "-2584 1248 2120"
"m_iszPlay" "shocked"
"targetname" "walter_shock"
"m_flRepeat" "0"
"m_flRadius" "0"
"delay" "0"
"m_fMoveTo" "0"
"m_iszEntity" "walter"
"classname" "scripted_sequence"
}

Change:

{
"origin" "-2576 1376 2120"
"m_iszPlay" "sneeze"
"targetname" "walter_sneeze"
"m_flRepeat" "0"
"m_flRadius" "0"
"delay" "0"
"m_fMoveTo" "0"
"m_iszEntity" "walter"
"classname" "scripted_sequence"
}

Sitting paper scientist

No longer needed: A separate model will be used for newspaper scientist.

~Change:~

{
"origin" "-1788 346 676"
"rendermode" "0"
"renderfx" "0"
"TriggerTarget" "player_not_goody"
"body" "0"
"TriggerCondition" "2"
"rendercolor" "0 0 0"
"renderamt" "0"
"model" "models/civ_paper_scientist.mdl"
"targetname" "chump"
"spawnflags" "8"
"angle" "270"
"classname" "monster_generic"
}

~Change:~

~Add:~

{
"origin" "-1788 312 640"
"m_iszEntity" "chump"
"m_iszPlay" "idle3"
"m_fMoveTo" "0"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "0"
"targetname" "sent_el_screwio"
"classname" "scripted_sequence"
}

ba_outro

Dr. Rosenberg

Change:

Remove:

{
"origin" "-2144 -2192 36"
"model" "models/scientist.mdl"
"renderamt" "0"
"targetname" "dr_rosenberg"
"body" "3"
"rendercolor" "0 0 0"
"spawnflags" "8"
"angle" "218"
"classname" "monster_generic"
}

ba_security2

Shotguns in armory

Change:

Reason: Blue Shift shotgun world model has a different orientation.

{
"origin" "704 1744 484"
"angles" "0 0 -90"
"body" "0"
"model" "models/w_shotgun.mdl"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"targetname" "shotgun1"
"spawnflags" "4"
"classname" "monster_generic"
}

{
"origin" "704 1760 484"
"angles" "0 0 -90"
"body" "0"
"model" "models/w_shotgun.mdl"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"targetname" "shotgun2"
"spawnflags" "4"
"classname" "monster_generic"
}

{
"origin" "704 1776 484"
"angles" "0 0 -90"
"body" "0"
"model" "models/w_shotgun.mdl"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"targetname" "shotgun3"
"spawnflags" "4"
"classname" "monster_generic"
}

{
"origin" "704 1792 484"
"angles" "0 0 -90"
"body" "0"
"model" "models/w_shotgun.mdl"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"targetname" "shotgun4"
"spawnflags" "4"
"classname" "monster_generic"
}

Otis at shooting range

Change:

Add:

Reason: This Otis uses the bald variant, and holding a donut.

{
"origin" "368 1376 492"
"rendercolor" "0 0 0"
"renderamt" "0"
"renderfx" "0"
"TriggerCondition" "2"
"TriggerTarget" "player_not_goody"
"rendermode" "0"
"body" "2"
"model" "models/otis.mdl"
"targetname" "otis"
"spawnflags" "144"
"angle" "270"
"classname" "monster_generic"
}

ba_teleport1

Dr. Rosenberg

Change:

Remove:

{
"origin" "-528 -1200 48"
"TriggerTarget" "rosenberg2_death"
"model" "models/scientist.mdl"
"rendermode" "0"
"renderfx" "0"
"body" "3"
"TriggerCondition" "2"
"rendercolor" "0 0 0"
"renderamt" "0"
"targetname" "dr_rosenberg2"
"spawnflags" "8"
"classname" "monster_generic"
}

ba_teleport2

Dr. Rosenberg

Change:

Remove:

{
"origin" "80 176 36"
"rendermode" "0"
"renderfx" "0"
"body" "3"
"model" "models/scientist.mdl"
"TriggerTarget" "rosenberg_death"
"TriggerCondition" "4"
"rendercolor" "0 0 0"
"renderamt" "0"
"targetname" "dr_rosenberg1"
"spawnflags" "8"
"classname" "monster_generic"
}

{
"origin" "-1456 -912 36"
"rendermode" "0"
"renderfx" "0"
"body" "3"
"model" "models/scientist.mdl"
"TriggerTarget" "rosenberg_death"
"TriggerCondition" "4"
"rendercolor" "0 0 0"
"renderamt" "0"
"targetname" "dr_rosenberg2"
"spawnflags" "8"
"angle" "90"
"classname" "monster_generic"
}

ba_tram1

Sitting paper scientist

No longer needed: A separate model will be used for newspaper scientist.

~Change:~

{
"origin" "-2840 768 104"
"targetname" "sitter"
"model" "models/civ_paper_scientist.mdl"
"body" "2"
"spawnflags" "256"
"classname" "monster_generic"
}

~Change:~

{
"origin" "-2904 720 64"
"m_iszIdle" "idle3"
"m_iszEntity" "sitter"
"m_fMoveTo" "4"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "0"
"spawnflags" "256"
"classname" "scripted_sequence"
}

Scientist carrying coat

No longer needed. It will use a separate model.

~Change:~

{
"origin" "-2880 1184 128"
"model" "models/civ_coat_scientist.mdl"
"body" "1"
"targetname" "laundry_walker"
"spawnflags" "130"
"angle" "129"
"classname" "monster_generic"
}

~Add:~

{
"origin" "-3296 2016 96"
"targetname" "laundry_walker_go"
"m_iszEntity" "laundry_walker"
"m_fMoveTo" "1"
"m_flRepeat" "0"
"m_flRadius" "512"
"delay" "0"
"spawnflags" "96"
"angle" "90"
"classname" "scripted_sequence"
}

ba_tram2

Otis at cafeteria

Add:

Reason: This Otis uses the bald variant.

{
"origin" "768 -832 2352"
"targetname" "otis_bigbooty"
"model" "models/otis.mdl"
"TriggerCondition" "0"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"spawnflags" "272"
"angle" "288"
"classname" "monster_generic"
}

Otis with clipboard

Add:

Reason: This Otis uses the bald variant, and holding a clipboard.

{
"origin" "3392 -656 2312"
"TriggerCondition" "0"
"rendermode" "0"
"renderfx" "0"
"targetname" "otis_redding"
"model" "models/intro_otis.mdl"
"rendercolor" "0 0 0"
"spawnflags" "266"
"angle" "270"
"classname" "monster_generic"
}

ba_yard5a

Dr. Rosenberg

Add:

Remove:

{
"origin" "-3840 -3128 -128"
"TriggerTarget" "dr_rosenberg_death_mm"
"targetname" "dr_rosenberg"
"TriggerCondition" "4"
"body" "3"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "0"
"renderfx" "0"
"spawnflags" "6"
"classname" "monster_rosenberg"
}

Change:

Remove:

{
"origin" "1220 640 108"
"model" "models/scientist.mdl"
"TriggerTarget" "dr_rosenberg_death_mm"
"targetname" "dr_rosenberg_fake"
"TriggerCondition" "2"
"body" "3"
"rendercolor" "0 0 0"
"renderamt" "0"
"rendermode" "2"
"renderfx" "0"
"spawnflags" "10"
"classname" "monster_generic"
}
SamVanheer commented 2 years ago

It turns out that ba_maint depends on models/console_civ_scientist.mdl being a separate model to function. The script plays only the work, sneeze and shocked animations while depending on the AI to fall back to idle1 using act based selection, meaning it uses the ACT_IDLE activity to select the idle animation. With the shared model it falls back to the regular idle animation causing the scientist to stand up between scripts.

All that's needed for the console model is to merge the sequence group file into the main model, the rest can stay as is. Though it might be a good idea to use the same sequence names for both the shared version and this one for consistency.

malortie commented 2 years ago

I released v0.4.0-rc.2 which includes the separate console_civ_scientist.mdl.

The map changes documentation has been adjusted - use of civ_scientist.mdl is removed for the console scientist.

SamVanheer commented 2 years ago

Since we're using a separate model for Rosenberg there should also be changes listed for that.

malortie commented 2 years ago

I updated the map changes. See Dr. Rosenberg in:

SamVanheer commented 2 years ago

The intro grunt animations are now renamed to match the changes.

malortie commented 9 months ago

This should be transferred to https://github.com/SamVanheer/HalfLife.UnifiedSdk-CSharp since it lists all changes that were needed for maps to work with the new models.