Custom Hero VO not playing.

In this forum you will find and post information regarding the modding of Star Wars Battlefront 2. DO NOT POST MOD IDEAS/REQUESTS.

Moderator: Moderators

Post Reply
Bucman55
Private
Posts: 37
Joined: Tue Jan 09, 2018 7:01 pm
Projects :: Playable Campaign Factions
Games I'm Playing :: Star Wars games
xbox live or psn: PSN: BucMan55
Location: Texas

Custom Hero VO not playing.

Post by Bucman55 »

For some reason my custom Hero's VO is not playing.
These should be all of the necessary files:

pcf.req -
Hidden/Spoiler:
[code]ucft
{
REQN
{
"str"
"align=2048"
"pcf_vo_slow" // Added back as per Marth's post

}
REQN
{
"lvl"
"pcfcw"
"pcfgcw"
}
}[/code]
pcfgcw.req -
Hidden/Spoiler:
[code]ucft
{
REQN
{
"bnk"
"align=2048"
"pcf"
"pcfgcw"
}

REQN
{
"config"
"pcfgcw"
"pcf"
"pcf_vo"
"pcfcw_music_config"
"pcfcw_music"
"gar_unit"
}
}[/code]
pcf_vo.snd -
Hidden/Spoiler:
[code]// ----------------------------------------------- Hero Battlechatter VO -----------------------------------------------------

SoundStreamProperties()
{
Name("hero_rex_spawn");
Group("hero_vo");
Inherit("Hero_battle_chatter_template");
Stream("pcf_vo_slow");
SegmentList()
{
Segment("REXCOM001", 200.0, 10.0, 3.0); // The name's Rex, but you'll call me Captain or Sir.
Segment("REXCOM002", 200.0, 10.0, 3.0); // In my book, experience outranks everything.
}
}

SoundStreamProperties()
{
Name("hero_rex_AcquiredTarget");
Group("hero_vo");
Inherit("Hero_battle_chatter_template");
Stream("pcf_vo_slow");
SegmentList()
{
Segment("REXCOM003", 200.0, 10.0, 3.0); // Go go go!
Segment("REXCOM004", 200.0, 10.0, 3.0); // Incoming!
Segment("REXCOM005", 200.0, 10.0, 3.0); // This'll be quick.

}
}

SoundStreamProperties()
{
Name("hero_rex_KillingSpree4");
Group("hero_vo");
Inherit("Hero_battle_chatter_template");
Stream("pcf_vo_slow");
SegmentList()
{
Segment("REXCOM006", 200.0, 10.0, 3.0); // Nothing deadlier than a Clone behind the trigger.
Segment("REXCOM007", 200.0, 10.0, 3.0); // This is what Clones do.
Segment("REXCOM008", 200.0, 10.0, 3.0); // Just like in Basic Training.
Segment("REXCOM009", 200.0, 10.0, 3.0); // Combat is a Clone's natural element.
}
}

SoundStreamProperties()
{
Name("hero_rex_exhausted");
Group("hero_vo");
Inherit("Hero_battle_chatter_template");
Stream("pcf_vo_slow");
SegmentList()
{
Segment("REXCOM010", 200.0, 10.0, 3.0); // Eh, that's just great.
}
}[/code]
pcf_vo_slow.stm -
Hidden/Spoiler:
[code]// ----------------------------------------------- Hero Battlechatter VO -----------------------------------------------------

// The name's Rex, but you'll call me Captain or Sir.
streams\REXCOM001.wav

// In my book, experience outranks everything.
streams\REXCOM002.wav

// Go go go!
streams\REXCOM003.wav

// Incoming!
streams\REXCOM004.wav

// This'll be quick.
streams\REXCOM005.wav

// Nothing deadlier than a Clone behind the trigger.
streams\REXCOM006.wav

// This is what Clones do.
streams\REXCOM007.wav

// Just like in Basic Training.
streams\REXCOM008.wav

// Combat is a Clone's natural element.
streams\REXCOM009.wav

// Eh, that's just great.
streams\REXCOM010.wav[/code]
Hero ODF -
Hidden/Spoiler:
[code][GameObjectClass]
ClassParent = "com_hero_default"
GeometryName = "rep_inf_REX_Clone_Trooper.msh"

[Properties]
FoleyFXClass = "rep_inf_trooper"
UnitType = "Trooper"

GeometryName = "rep_inf_REX_Clone_Trooper"
GeometryLowRes = "rep_inf_arctrooper_low1"
SkeletonName = "jango"
FirstPerson = "rep\reparc;rep_1st_arctrooper"
ClothODF = "rep_inf_REX_Clone_Trooper_cape"

AnimationName = "jango"

AnimatedAddon = "left_gun"
GeometryAddon = "weap_inf_dc17pistol" // the pistols meshname
AddonAttachJoint = "hp_weapons_1"

WEAPONSECTION = 1
WeaponName1 = "ant_weap_hero_rex_pistol"
WeaponAmmo1 = 0

WEAPONSECTION = 2
WeaponName2 = "rep_weap_inf_thermaldetonator"
WeaponAmmo2 = 3
WeaponChannel2 = 1

WEAPONSECTION = 3
WeaponName3 = "ant_weap_inf_timebomb"
WeaponAmmo3 = 2
WeaponChannel3 = 1

//SOUND
HurtSound = "rep_inf_com_chatter_wound"
DeathSound = "rep_inf_com_chatter_death"
AcquiredTargetSound = ""
HidingSound = ""
ApproachingTargetSound = ""
FleeSound = ""
PreparingForDamageSound = ""
HeardEnemySound = ""

SCFieldMoveOutSound = ""
SCFieldHoldSound = ""
SCFieldFollowSound = ""
SCDriverGetInSound = ""
SCDriverGetOutSound = ""
SCPassengerMoveOutSound = ""
SCPassengerStopSound = ""
SCPassengerGetInSound = ""
SCPassengerGetOutSound = ""
SCGunnerAllClearSound = ""
SCGunnerSteadySound = ""
SCGunnerGetInSound = ""
SCGunnerGetOutSound = ""
SCResponseYessirSound = ""
SCResponseNosirSound = ""

AISCFieldMoveOutSound = ""
AISCFieldHoldSound = ""
AISCFieldFollowSound = ""
AISCDriverGetInSound = ""
AISCDriverGetOutSound = ""
AISCPassengerMoveOutSound = ""
AISCPassengerStopSound = ""
AISCPassengerGetInSound = ""
AISCPassengerGetOutSound = ""
AISCGunnerAllClearSound = ""
AISCGunnerSteadySound = ""
AISCGunnerGetInSound = ""
AISCGunnerGetOutSound = ""
AISCResponseYessirSound = ""
AISCResponseNosirSound = ""

SndHeroSelectable = ""
SndHeroSpawned = "hero_rex_spawn"
SndHeroDefeated = "hero_rex_exhausted"
SndHeroKiller = "hero_rex_exhausted"

VOSound = "rep_off_response_hero_command SC_Follow"
VOSound = "rep_off_response_hero_command SC_StopFollow"
VOSound = "rep_off_response_hero_command SC_VehicleWaitUp"
VOSound = "rep_off_response_hero_command SC_GetIn"
VOSound = "rep_off_response_hero_command SC_GetOut"

//VOSound = "rex_hero_pc_com_hostile SpottedVO"
//VOSound = "rex_hero_pc_com_mechanic NeedRepairVO"
//VOSound = "rex_hero_pc_com_transport NeedPickupVO"
//VOSound = "rex_hero_pc_com_backup NeedBackupVO"
//VOSound = "rex_hero_pc_com_clear_area AttackPositionVO"
//VOSound = "rex_hero_pc_com_defend DefendPositionVO"

//VOSound = "rex_hero_pc_com_hostile_inVehicle SpottedVO +InVehicle"
//VOSound = "rex_hero_pc_com_mechanic_inVehicle NeedRepairVO +InVehicle"
//VOSound = "rex_hero_pc_com_transport_inVehicle NeedPickupVO +InVehicle"
//VOSound = "rex_hero_pc_com_backup_inVehicle NeedBackupVO +InVehicle"
//VOSound = "rex_hero_pc_com_clear_area_inVehicle AttackPositionVO +InVehicle"
//VOSound = "rex_hero_pc_com_defend_inVehicle DefendPositionVO +InVehicle"

VOSound = "hero_rex_AcquiredTarget AcquiredTarget"
VOSound = "hero_rex_KillingSpree4 KillingSpree4"

VOUnitType = 121
SoldierMusic = "rep_hero_Rex_lp"[/code]
Mission LUA -
Hidden/Spoiler:
[code] --
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

ScriptCB_DoFile("setup_teams")
ScriptCB_DoFile("ObjectiveConquest")

-- Empire Attacking (attacker is always #1)
REP = 2;
IMP = 1;
-- These variables do not change
ATT = 1;
DEF = 2;

---------------------------------------------------------------------------
-- FUNCTION: ScriptInit
-- PURPOSE: This function is only run once
-- INPUT:
-- OUTPUT:
-- NOTES: The name, 'ScriptInit' is a chosen convention, and each
-- mission script must contain a version of this function, as
-- it is called from C to start the mission.
---------------------------------------------------------------------------
function ScriptPostLoad()
SetProperty("cp1", "Team", "1")
SetProperty("cp2", "Team", "2")
SetProperty("cp3", "Team", "2")
SetProperty("cp4", "Team", "2")
SetProperty("cp5", "Team", "1")
SetProperty("cp6", "Team", "1")
DisableBarriers("camp")
SetAIDamageThreshold("Comp1", 0 )
SetAIDamageThreshold("Comp2", 0 )
SetAIDamageThreshold("Comp3", 0 )
SetAIDamageThreshold("Comp4", 0 )
SetAIDamageThreshold("Comp5", 0 )
SetAIDamageThreshold("Comp6", 0 )
SetAIDamageThreshold("Comp7", 0 )
SetAIDamageThreshold("Comp8", 0 )
SetAIDamageThreshold("Comp9", 0 )
SetAIDamageThreshold("Comp10", 0 )

SetProperty("Kam_Bldg_Podroom_Door32", "Islocked", 1)

SetProperty("Kam_Bldg_Podroom_Door33", "Islocked", 1)
SetProperty("Kam_Bldg_Podroom_Door32", "Islocked", 1)
SetProperty("Kam_Bldg_Podroom_Door34", "Islocked", 1)
SetProperty("Kam_Bldg_Podroom_Door35", "Islocked", 1)
SetProperty("Kam_Bldg_Podroom_Door27", "Islocked", 0)
SetProperty("Kam_Bldg_Podroom_Door28", "Islocked", 1)
SetProperty("Kam_Bldg_Podroom_Door36", "Islocked", 1)
SetProperty("Kam_Bldg_Podroom_Door20", "Islocked", 0)
UnblockPlanningGraphArcs("connection71")

--Objective1
UnblockPlanningGraphArcs("connection85")
UnblockPlanningGraphArcs("connection48")
UnblockPlanningGraphArcs("connection63")
UnblockPlanningGraphArcs("connection59")
UnblockPlanningGraphArcs("close")
UnblockPlanningGraphArcs("open")
DisableBarriers("frog")
DisableBarriers("close")
DisableBarriers("open")

--blocking Locked Doors
UnblockPlanningGraphArcs("connection194");
UnblockPlanningGraphArcs("connection200");
UnblockPlanningGraphArcs("connection118");
DisableBarriers("FRONTDOOR2-3");
DisableBarriers("FRONTDOOR2-1");
DisableBarriers("FRONTDOOR2-2");

--Lower cloning facility
UnblockPlanningGraphArcs("connection10")
UnblockPlanningGraphArcs("connection159")
UnblockPlanningGraphArcs("connection31")
DisableBarriers("FRONTDOOR1-3")
DisableBarriers("FRONTDOOR1-1")
DisableBarriers("FRONTDOOR1-2")

--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "cp5"}
cp6 = CommandPost:New{name = "cp6"}

--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF, textATT = "game.modes.con", textDEF = "game.modes.con2", multiplayerRules = true}

--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp5)
conquest:AddCommandPost(cp6)
conquest:Start()
EnableSPHeroRules()

SetProperty("cp2", "spawnpath", "cp2_spawn")
SetProperty("cp2", "captureregion", "cp2_capture")

end

--START BRIDGEWORK!

-- OPEN

function ScriptInit()
-- Designers, these two lines *MUST* be first!
SetPS2ModelMemory(3600000)
ReadDataFile("ingame.lvl")




ReadDataFile("dc:sound\\pcf.lvl;pcfgcw")
ReadDataFile("sound\\kam.lvl;kam1cross")


--SetMaxFlyHeight(43)
--SetMaxPlayerFlyHeight (43)

ReadDataFile("SIDE\\rep.lvl",
"rep_inf_ep2_rifleman",
"rep_inf_ep2_rocketeer",
"rep_inf_ep2_sniper",
"rep_inf_ep2_engineer",
"rep_inf_ep2_jettrooper",
"rep_inf_ep3_officer")

ReadDataFile("dc:SIDE\\ant.lvl",
"ant_inf_rifleman",
"ant_inf_rocketeer",
"ant_inf_sniper",
"ant_inf_engineer",
"ant_inf_jettrooper",
"ant_inf_officer",
"rep_hero_rex")

ReadDataFile("SIDE\\imp.lvl",
"imp_inf_rifleman",
"imp_inf_rocketeer",
"imp_inf_engineer",
"imp_inf_sniper",
"imp_inf_officer",
"imp_inf_dark_trooper",
"imp_hero_bobafett")

ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_chaingun_roof",
"tur_weap_built_gunturret")

-- Level Stats
ClearWalkers()
-- AddWalkerType(0, 0) -- 8 droidekas (special case: 0 leg pairs)
-- AddWalkerType(1, 3) -- 8 droidekas (special case: 0 leg pairs)
-- AddWalkerType(2, 0) -- 2 spider walkers with 2 leg pairs each
-- AddWalkerType(3, 0) -- 2 attes with 3 leg pairs each
SetMemoryPoolSize ("EntityCloth", 33)
SetMemoryPoolSize("ClothData",50)
SetMemoryPoolSize ("EntityLight", 64)
SetMemoryPoolSize ("Obstacle", 800)
SetMemoryPoolSize("EntitySoundStream", 3)
SetMemoryPoolSize ("SoundSpaceRegion", 36)
SetMemoryPoolSize("EntitySoundStatic", 85)
SetMemoryPoolSize ("Weapon", 260)

SetupTeams{
rep = {
team = REP,
units = 32,
reinforcements = 150,
soldier = { "ant_inf_rifleman",9, 25},
assault = { "ant_inf_rocketeer",1, 4},
engineer = { "ant_inf_engineer",1, 4},
sniper = { "ant_inf_sniper",1, 4},
officer = { "ant_inf_officer",1, 4},
special = { "ant_inf_jettrooper",1,4},
},

}

SetupTeams{
imp = {
team = IMP,
units = 32,
reinforcements = 150,
soldier = { "imp_inf_rifleman",9, 25},
assault = { "imp_inf_rocketeer",1, 4},
engineer = { "imp_inf_engineer", 1, 4},
sniper = { "imp_inf_sniper",1, 4},
officer = { "imp_inf_officer",1, 4},
special = { "imp_inf_dark_trooper",1, 4},

},

}

SetHeroClass(REP, "rep_hero_rex")
SetHeroClass(IMP, "imp_hero_bobafett")

SetSpawnDelay(10.0, 0.25)
-- AddDeathRegion("deathregion")
ReadDataFile("KAM\\kam1.lvl", "kamino1_conquest")
SetMemoryPoolSize("EntityFlyer", 6)
SetDenseEnvironment("false")
SetMinFlyHeight(60)
SetAllowBlindJetJumps(0)
SetMaxFlyHeight(102)
SetMaxPlayerFlyHeight(102)
--SetStayInTurrets(1)


-- Movies
-- SetVictoryMovie(ALL, "all_end_victory")
-- SetDefeatMovie(ALL, "imp_end_victory")
-- SetVictoryMovie(IMP, "imp_end_victory")
-- SetDefeatMovie(IMP, "all_end_victory")

-- Sound

voiceSlow = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_slow")
AudioStreamAppendSegments("sound\\global.lvl", "imp_unit_vo_slow", voiceSlow)
AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)

voiceQuick = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "imp_unit_vo_quick", voiceQuick)

OpenAudioStream("dc:sound\\pcf.lvl", "pcf_vo_slow")
OpenAudioStream("sound\\global.lvl", "cw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\kam.lvl", "kam1")
OpenAudioStream("sound\\kam.lvl", "kam1")
-- OpenAudioStream("sound\\mus.lvl", "kamino1_emt")

SetBleedingVoiceOver(REP, REP, "rep_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(REP, IMP, "rep_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(IMP, REP, "imp_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(IMP, IMP, "imp_off_com_report_us_overwhelmed", 1)

SetLowReinforcementsVoiceOver(REP, REP, "rep_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(REP, IMP, "rep_off_victory_im", .1, 1)
SetLowReinforcementsVoiceOver(IMP, IMP, "imp_off_defeat_im", .1, 1)
SetLowReinforcementsVoiceOver(IMP, REP, "imp_off_victory_im", .1, 1)

SetOutOfBoundsVoiceOver(2, "repleaving")
SetOutOfBoundsVoiceOver(1, "impleaving")

SetAmbientMusic(REP, 1.0, "rep_kam_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_kam_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2, "rep_kam_amb_end", 2,1)
SetAmbientMusic(IMP, 1.0, "cis_kam_amb_start", 0,1)
SetAmbientMusic(IMP, 0.8, "cis_kam_amb_middle", 1,1)
SetAmbientMusic(IMP, 0.2, "cis_kam_amb_end", 2,1)

SetVictoryMusic(REP, "rep_kam_amb_victory")
SetDefeatMusic (REP, "rep_kam_amb_defeat")
SetVictoryMusic(IMP, "cis_kam_amb_victory")
SetDefeatMusic (IMP, "cis_kam_amb_defeat")

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
-- SetSoundEffect("BirdScatter", "birdsFlySeq1")
SetSoundEffect("SpawnDisplayUnitChange", "shell_select_unit")
SetSoundEffect("SpawnDisplayUnitAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change")
SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplayBack", "shell_menu_exit")


SetAttackingTeam(ATT)
AddDeathRegion("deathregion")


AddCameraShot(0.564619, -0.121047, 0.798288, 0.171142, 68.198814, 79.137611, 110.850922);

AddCameraShot(-0.281100, 0.066889, -0.931340, -0.221616, 10.076019, 82.958336, -26.261774);

AddCameraShot(0.209553, -0.039036, -0.960495, -0.178923, 92.558563, 58.820618, 130.675919);

AddCameraShot(0.968794, 0.154227, 0.191627, -0.030506, -173.914413, 69.858940, 52.532421);

AddCameraShot(0.744389, 0.123539, 0.647364, -0.107437, 97.475639, 53.216236, 76.477089);

AddCameraShot(-0.344152, 0.086702, -0.906575, -0.228393, 95.062233, 105.285820, -37.661552);
end[/code]
All of my WAV files are 16bit and mono.
Last edited by Bucman55 on Fri Jan 26, 2018 2:44 pm, edited 1 time in total.
Marth8880
Resistance Leader
Posts: 5042
Joined: Tue Feb 09, 2010 8:43 pm
Projects :: DI2 + Psychosis
Games I'm Playing :: Silent Hill 2
xbox live or psn: Marth8880
Location: Edinburgh, UK
Contact:

Re: Custom Hero VO not playing.

Post by Marth8880 »

Bucman55 wrote:pcf.req -

Code: Select all

ucft
{
    REQN
    {
        "str"
        "align=2048" 
                                     // Having pcf_vo_slow here didn't seem to change anything

    }
	REQN
	{
		"lvl"
		"pcfcw"
		"pcfgcw"
	}	
 }
Having it there is an absolutely 10000000000000000000000000000% necessary requirement no matter what.

Your sounds are probably playing but they're probably just really really quiet. Have you amplified them as much as possible in Audacity?
Bucman55
Private
Posts: 37
Joined: Tue Jan 09, 2018 7:01 pm
Projects :: Playable Campaign Factions
Games I'm Playing :: Star Wars games
xbox live or psn: PSN: BucMan55
Location: Texas

Re: Custom Hero VO not playing.

Post by Bucman55 »

Marth8880 wrote:
Bucman55 wrote:pcf.req -

Code: Select all

ucft
{
    REQN
    {
        "str"
        "align=2048" 
                                     // Having pcf_vo_slow here didn't seem to change anything

    }
	REQN
	{
		"lvl"
		"pcfcw"
		"pcfgcw"
	}	
 }
Having it there is an absolutely 10000000000000000000000000000% necessary requirement no matter what.

Your sounds are probably playing but they're probably just really really quiet. Have you amplified them as much as possible in Audacity?
On average, this is what my clips look like in Audacity:
Hidden/Spoiler:
Image
I can guarantee they aren't playing in-game.
Marth8880
Resistance Leader
Posts: 5042
Joined: Tue Feb 09, 2010 8:43 pm
Projects :: DI2 + Psychosis
Games I'm Playing :: Silent Hill 2
xbox live or psn: Marth8880
Location: Edinburgh, UK
Contact:

Re: Custom Hero VO not playing.

Post by Marth8880 »

- Gain looks fine in Audacity.
- You still need the STM file listed under the "str" section in the REQ file. This is always required for streams, no exceptions.
- Are you getting any munge errors?
- Try commenting out the `OpenAudioStream("sound\\global.lvl", "cw_music")` and `OpenAudioStream("sound\\kam.lvl", "kam1")` lines in your mission script.
Post Reply