def changePlayMode(self, mode): if BigWorld.player().getVehicleAttached() is not None: __ceilLess = BigWorld.player().getVehicleAttached().typeDescriptor.turret['ceilless'] else: __ceilLess = BigWorld.player().vehicleTypeDescriptor.turret['ceilless'] if mode == 0: WWISE.WW_setRTCPGlobal('RTPC_ext_viewPlayMode', 1) if __ceilLess is True: WWISE.WW_setState('STATE_viewPlayMode', 'STATE_viewplaymode_arcade_ceilless') else: WWISE.WW_setState('STATE_viewPlayMode', 'STATE_viewPlayMode_arcade') WWISE.WWsetCameraShift(None) elif mode == 1: WWISE.WW_setRTCPGlobal('RTPC_ext_viewPlayMode', 0) if __ceilLess is True: WWISE.WW_setState('STATE_viewPlayMode', 'STATE_viewplaymode_sniper_ceilless') else: WWISE.WW_setState('STATE_viewPlayMode', 'STATE_viewPlayMode_sniper') if BigWorld.player().getVehicleAttached() is not None: compoundModel = BigWorld.player().getVehicleAttached().appearance.compoundModel WWISE.WWsetCameraShift(compoundModel.node(TankPartNames.TURRET)) elif mode == 2: WWISE.WW_setRTCPGlobal('RTPC_ext_viewPlayMode', 2) WWISE.WW_setState('STATE_viewPlayMode', 'STATE_viewPlayMode_strategic') WWISE.WWsetCameraShift(None) __ceilLess = None return
def __initSounds(self): self.__gunSound = SoundGroups.g_instance.WWgetSoundObject(self.__gunSoundHP, None, (0.0, 0.0, 0.0), True) self.__engineSound = SoundGroups.g_instance.WWgetSoundObject(self.__engineSoundHP, None, (0.0, 0.0, 0.0), True) if self.__engineSound is None: LOG_ERROR('!!!self.__engineSound is None') return else: horsePower = self.__typeDesc.physics['enginePower'] / HP_TO_WATTS WWISE.WW_setRTCPGlobal('RTPC_ext_engine_power', horsePower) self.__engineSound.setSwitch('SWITCH_ext_physics_state', 'SWITCH_ext_physics_state_on') if self.__eventC == '': LOG_ERROR('Tracks sound is not defined for = {0}'.format(self.__typeDesc.name)) self.__movementSound = None else: self.__movementSound = SoundGroups.g_instance.WWgetSoundObject(self.__movementSoundHP, None, (0.0, 0.0, 0.0), True) if self.__movementSound is not None: self.__movementSound.setSwitch('SWITCH_ext_physics_state', 'SWITCH_ext_physics_state_on') self.__movementSound.setRTPC('RTPC_ext_vehicle_weight', self.__typeDesc.physics['weight'] / 1000) self.__movementSound.setRTPC('RTPC_ext_engine_state', 0.0) self.__movementSound.setRTPC('RTPC_ext_physic_rpm_rel', 0.0) self.__movementSound.setRTPC('RTPC_ext_physic_rpm_abs', 0.0) self.__engineSound.setRTPC('RTPC_ext_vehicle_weight', self.__typeDesc.physics['weight'] / 1000) self.__engineSound.setRTPC('RTPC_ext_engine_state', 0.0) self.__engineSound.setRTPC('RTPC_ext_physic_rpm_rel', 0.0) self.__engineSound.setRTPC('RTPC_ext_physic_rpm_abs', 0.0) self.__engineSound.setRTPC('RTPC_ext_turbine', 0.0) return
def __setWWISEGlobal(self): operation = self.getOperation() if operation: completedCount = len(operation.getQuestsInChainByFilter(self.getChainID(), methodcaller('isCompleted'))) else: completedCount = 0 WWISE.WW_setRTCPGlobal(SOUNDS.RTCP_MISSIONS_NUMBER, completedCount)
def setVolume(self, categoryName, volume, updatePrefs = True): WWISE.WW_setRTCPGlobal('RTPC_ext_menu_volume_{}'.format(categoryName), volume * 100.0) if updatePrefs: self.__volumeByCategory[categoryName] = volume self.savePreferences() if categoryName == 'music' or categoryName == 'ambient': self.onMusicVolumeChanged(categoryName, self.__masterVolume, self.getVolume(categoryName)) self.onVolumeChanged(categoryName, volume)
def __update(self): currentTime = BigWorld.timeExact() elapsedTime = currentTime - self.__startTime interpolationCoefficient = math_utils.linearTween(elapsedTime, 1.0, self.__totalInterpolationTime) resultValue = int(math_utils.lerp(0, 100, interpolationCoefficient)) WWISE.WW_setRTCPGlobal(DualGunSoundEvents.RTPC_CHARGE_PROGRESS, resultValue) if elapsedTime > self.__totalInterpolationTime: self.delayCallback(0.0, self.disable) return 10.0
def applyPreferences(self): if not self.__isWindowVisible: WWISE.WW_setRTCPGlobal('RTPC_ext_menu_volume_master', 0.0) return self.setMasterVolume(self.__masterVolume) for categoryName in self.__volumeByCategory.keys(): newVolume = self.__volumeByCategory[categoryName] if self.__muffledByReplay and categoryName in ('vehicles', 'effects', 'ambient'): newVolume = 0.0 self.setVolume(categoryName, newVolume, updatePrefs=False)
def setMasterVolume(self, volume): self.__masterVolume = volume self.__muffledVolume = self.__masterVolume * self.getVolume( 'masterFadeVivox') masterVolume = (self.__muffledVolume if self.__muffled else self.__masterVolume) * 100.0 WWISE.WW_setRTCPGlobal('RTPC_ext_menu_volume_master', masterVolume) self.savePreferences() self.onMusicVolumeChanged('music', self.__masterVolume, self.getVolume('music')) self.onMusicVolumeChanged('ambient', self.__masterVolume, self.getVolume('ambient'))
def setEventParam(self, eventId, paramName, paramValue): WWISE.WW_setRTCPGlobal(paramName, paramValue)
def tick(self): if not SoundGroups.ENABLE_ENGINE_N_TRACKS: return else: soundEngine = self.__engineSound if soundEngine is None: return soundTrack = self.__movementSound if soundTrack is None: return vehicleAttached = BigWorld.player().getVehicleAttached() if vehicleAttached is None: return cameraUnit = vehicleAttached.id == self.__vehicleId speedInfo = vehicleAttached.speedInfo.value speed = speedInfo[0] engineRPM = clamp(0.0, 100.0, self.detailedEngineState.rpm) soundEngine.setRTPC('RTPC_ext_rpm', engineRPM) soundTrack.setRTPC('RTPC_ext_rpm', engineRPM) soundEngine.setRTPC('RTPC_ext_engine_load', self.detailedEngineState.engineLoad) soundTrack.setRTPC('RTPC_ext_engine_load', self.detailedEngineState.engineLoad) if cameraUnit: WWISE.WW_setRTCPGlobal('RTPC_ext_engine_load_global', self.detailedEngineState.engineLoad) soundEngine.setRTPC('RTPC_ext_submersion', 1 if self.isUnderwaterLink() else 0) soundTrack.setRTPC('RTPC_ext_submersion', 1 if self.isUnderwaterLink() else 0) if cameraUnit: WWISE.WW_setState('STATE_underwater', 'STATE_underwater_on' if self.isUnderwaterLink() else 'STATE_underwater_off') soundEngine.setRTPC('RTPC_ext_speed_abs', clamp(-10, 30, speed)) soundTrack.setRTPC('RTPC_ext_speed_abs', clamp(-10, 30, speed)) soundEngine.setRTPC('RTPC_ext_speed_rel', clamp(-1.0, 1.0, self.detailedEngineState.relativeSpeed)) soundTrack.setRTPC('RTPC_ext_speed_rel', clamp(-1.0, 1.0, self.detailedEngineState.relativeSpeed)) soundEngine.setRTPC('RTPC_ext_speed_rel2', self.detailedEngineState.relativeSpeed) soundTrack.setRTPC('RTPC_ext_speed_rel2', self.detailedEngineState.relativeSpeed) soundEngine.setRTPC('RTPC_ext_rot_speed_abs', clamp(-1.0, 1.0, self.detailedEngineState.rotationSpeed)) soundTrack.setRTPC('RTPC_ext_rot_speed_abs', clamp(-1.0, 1.0, self.detailedEngineState.rotationSpeed)) soundEngine.setRTPC('RTPC_ext_rot_speed_rel', clamp(-1.0, 1.0, self.detailedEngineState.roatationRelSpeed)) soundTrack.setRTPC('RTPC_ext_rot_speed_rel', clamp(-1.0, 1.0, self.detailedEngineState.roatationRelSpeed)) if not self.__isPlayerVehicle: soundEngine.setRTPC('RTPC_ext_turbine_npc', engineRPM) if cameraUnit: if not self.__isPlayerVehicle: soundTrack.setRTPC('RTPC_ext_gear_2', self.detailedEngineState.gear2) soundTrack.setRTPC('RTPC_ext_gear_3', self.detailedEngineState.gear3) soundEngine.setRTPC('RTPC_ext_gear_2', self.detailedEngineState.gear2) soundEngine.setRTPC('RTPC_ext_gear_3', self.detailedEngineState.gear3) soundEngine.setRTPC('RTPC_ext_gear_num', clamp(0.0, 4.0, self.detailedEngineState.gearNum)) soundTrack.setRTPC('RTPC_ext_gear_num', clamp(0.0, 4.0, self.detailedEngineState.gearNum)) else: gear = self.detailedEngineState.gearNum soundTrack.setRTPC('RTPC_ext_physic_rpm_rel', self.detailedEngineState.rpmPhysicRel) soundEngine.setRTPC('RTPC_ext_physic_rpm_rel', self.detailedEngineState.rpmPhysicRel) if self.detailedEngineState.engineState == EngineState._CRITICAL: soundEngine.setRTPC('RTPC_ext_turbine', 0.0) else: soundEngine.setRTPC('RTPC_ext_turbine', self.detailedEngineState.rpmPhysicRel * 100.0) soundTrack.setRTPC('RTPC_ext_physic_rpm_abs', self.detailedEngineState.rpmPhysicAbs) soundEngine.setRTPC('RTPC_ext_physic_rpm_abs', self.detailedEngineState.rpmPhysicAbs) soundTrack.setRTPC('RTPC_ext_physic_gear', gear) soundEngine.setRTPC('RTPC_ext_physic_gear', gear) soundTrack.setRTPC('RTPC_ext_engine_state', 1.0 if gear > 0 and gear < 127 else 0.0) soundEngine.setRTPC('RTPC_ext_engine_state', 1.0 if gear > 0 and gear < 127 else 0.0) for i in range(1, 8): if i != gear: soundTrack.setRTPC('RTPC_ext_physic_gear_' + str(i), 0) soundEngine.setRTPC('RTPC_ext_physic_gear_' + str(i), 0) if self.detailedEngineState.gearUp: soundTrack.setRTPC('RTPC_ext_physic_gear_' + str(gear), 100) soundEngine.setRTPC('RTPC_ext_physic_gear_' + str(gear), 100) accelerationAbs = 0.0 if self.__prevVelocity is not None and self.__prevTime is not None: deltaTime = BigWorld.time() - self.__prevTime if deltaTime > 0.0: accelerationAbs = (speed - self.__prevVelocity) / (BigWorld.time() - self.__prevTime) accelerationAbs = clamp(-1.5, 1.5, accelerationAbs) else: accelerationAbs = 0.0 self.__prevVelocity = speed self.__prevTime = BigWorld.time() soundEngine.setRTPC('RTPC_ext_acc_abs', accelerationAbs) soundTrack.setRTPC('RTPC_ext_acc_abs', accelerationAbs) moveValue = 100 if math.fabs(speed) > 1.0 else 0 soundTrack.setRTPC('RTPC_ext_move', moveValue) soundEngine.setRTPC('RTPC_ext_move', moveValue) soundEngine.setRTPC('RTPC_ext_physic_load', self.detailedEngineState.physicLoad) soundTrack.setRTPC('RTPC_ext_physic_load', self.detailedEngineState.physicLoad) if cameraUnit: WWISE.WW_setRTCPGlobal('RTPC_ext_physic_load_global', self.detailedEngineState.physicLoad) WWISE.WW_setRTCPGlobal('RTPC_ext_speed_rel_global', clamp(-1.0, 1.0, self.detailedEngineState.relativeSpeed)) WWISE.WW_setRTCPGlobal('RTPC_ext_speed_abs_global', speed) soundTrack.setRTPC('RTPC_ext_flying', self.isFlyingLink()) if not cameraUnit: return deltaR = self.rightTrackScrollRelativeLink() deltaL = self.leftTrackScrollRelativeLink() slideFriction = clamp(0.0, 1.0, max(deltaR, deltaL) / 5.0) soundTrack.setRTPC('RTPC_ext_slide_friction', slideFriction) soundEngine.setRTPC('RTPC_ext_slide_friction', slideFriction) matEffectsUnderTracks = dict(((effectMaterial, 0.0) for effectMaterial in _EFFECT_MATERIALS_HARDNESS_RTPC)) currTerrainMatKind = self.curTerrainMatKindLink() if self.isInWaterLink(): matEffectsUnderTracks['water'] = len(currTerrainMatKind) else: for matKind in currTerrainMatKind: effectIndex = calcEffectMaterialIndex(matKind) if effectIndex is not None: effectMaterial = material_kinds.EFFECT_MATERIALS[effectIndex] if effectMaterial in matEffectsUnderTracks: matEffectsUnderTracks[effectMaterial] = matEffectsUnderTracks.get(effectMaterial, 0) + 1.0 hardness = 0.0 for effectMaterial, amount in matEffectsUnderTracks.iteritems(): hardness += _EFFECT_MATERIALS_HARDNESS_RTPC.get(effectMaterial, 0) * amount for effectMaterial, amount in matEffectsUnderTracks.iteritems(): if amount >= 2 and self.__prevTerrSwitch != effectMaterial: soundTrack.setSwitch('SWITCH_ext_surfaceType', 'SWITCH_ext_surfaceType_' + effectMaterial) self.__prevTerrSwitch = effectMaterial break hardnessValue = hardness / len(currTerrainMatKind) soundTrack.setRTPC('RTPC_ext_hardness', hardnessValue) angPart = min(abs(self.vehicleFilter.angularSpeed) * _FRICTION_ANG_FACTOR, _FRICTION_ANG_BOUND) strafePart = min(abs(self.vehicleFilter.strafeSpeed) * _FRICTION_STRAFE_FACTOR, _FRICTION_STRAFE_BOUND) frictionValue = max(angPart, strafePart) soundTrack.setRTPC('RTPC_ext_friction', frictionValue) roughnessValue = self.detailedEngineState.roughnessValue if cameraUnit: WWISE.WW_setRTCPGlobal('RTPC_ext_roughness_global', math.fabs(roughnessValue)) soundTrack.setRTPC('RTPC_ext_roughness_abs', math.fabs(roughnessValue)) soundEngine.setRTPC('RTPC_ext_roughness_abs', math.fabs(roughnessValue)) soundTrack.setRTPC('RTPC_ext_roughness2', roughnessValue) soundEngine.setRTPC('RTPC_ext_roughness2', roughnessValue) soundTrack.setRTPC('RTPC_ext_roughness_eng', roughnessValue) soundEngine.setRTPC('RTPC_ext_roughness_eng', roughnessValue) rotationSpeed = speedInfo[1] roatationRelSpeed = rotationSpeed / self.__typeDesc.physics['rotationSpeedLimit'] RTPC_ext_treads_sum_affect = math.fabs(roatationRelSpeed * 0.33) + math.fabs(roughnessValue * 0.33) + (clamp(0.5, 1.0, self.detailedEngineState.physicLoad) - 0.5) * 0.66 soundTrack.setRTPC('RTPC_ext_treads_sum_affect', RTPC_ext_treads_sum_affect) rightTrackScroll = math.fabs(self.rightTrackScrollLink()) leftTrackScroll = math.fabs(self.leftTrackScrollLink()) if rightTrackScroll > leftTrackScroll: trackScroll = rightTrackScroll else: trackScroll = leftTrackScroll if self.__isPlayerVehicle: self.__commonTrackScroll += (trackScroll - self.__commonTrackScroll) * _PERIODIC_TIME / 0.2 self.__commonTrackScroll = self.__commonTrackScroll if self.__commonTrackScroll > 0.0 else 0.0 soundTrack.setRTPC('RTPC_ext_speed_scroll', self.__commonTrackScroll) soundEngine.setRTPC('RTPC_ext_speed_scroll', self.__commonTrackScroll) if self.__vt is not None: self.__vt.addValue2('RTPC_ext_flying', self.isFlyingLink()) self.__vt.addValue2('RTPC_ext_hardness', hardnessValue) self.__vt.addValue2('RTPC_ext_friction', frictionValue) self.__vt.addValue2('RTPC_ext_roughness_abs', roughnessValue) self.__vt.addValue2('RTPC_ext_treads_sum_affect', RTPC_ext_treads_sum_affect) self.__vt.addValue2('speed_abs', speed) self.__vt.addValue2('speed_rel', self.detailedEngineState.relativeSpeed) self.__vt.addValue2('rot_speed_abs', rotationSpeed) self.__vt.addValue2('rot_speed_rel', roatationRelSpeed) self.__vt.addValue2('gear', self.detailedEngineState.gearNum) self.__vt.addValue2('acc_abs', accelerationAbs) self.__vt.addValue2('physic_load', self.detailedEngineState.physicLoad) self.__vt.addValue2('RTPC_ext_move', moveValue) self.__vt.addValue2('RTPC_ext_speed_scroll', self.__commonTrackScroll) self.__vt.addValue2('engine_load', self.detailedEngineState.engineLoad) self.__vt.addValue2('submersion', self.isUnderwaterLink()) if self.__isPlayerVehicle: self.__vt.addValue2('RPM', self.detailedEngineState.rpmPhysicAbs) self.__vt.addValue2('RPM_REL', self.detailedEngineState.rpmPhysicRel) return
def __setRtpcGlobal(self, points, invadersCount): WWISE.WW_setRTCPGlobal(self._getRtpcPointsID(), points) WWISE.WW_setRTCPGlobal(self._getRtpcInvadersCountID(), invadersCount)
def setRTPC(name, value): WWISE.WW_setRTCPGlobal(name, value)
def _dispose(self): WWISE.WW_setRTCPGlobal(SOUNDS.RTCP_MISSION_BRANCH[self.getBranch()], SOUNDS.BRANCH_DEFAULT) super(PersonalMissionsMapView, self)._dispose()
def _populate(self): super(PersonalMissionsMapView, self)._populate() self.refresh() WWISE.WW_setRTCPGlobal(SOUNDS.RTCP_MISSION_BRANCH[self.getBranch()], SOUNDS.BRANCH_SELECTED)
def __playSound(self, timeLeft): if self.__soundID: WWISE.WW_setRTCPGlobal(_RTPC, timeLeft) WWISE.WW_eventGlobal(self.__soundID)
def __initSounds(self, compoundModel): vehicle = BigWorld.entity(BigWorld.player().playerVehicleID) if vehicle is None: return else: if self.__isPlayerVehicle: if self.__typeDesc.engine['wwsoundPC'] != '': self.__event = self.__typeDesc.engine['wwsoundPC'] else: self.__event = self.__typeDesc.engine['wwsound'] if self.__typeDesc.chassis['wwsoundPC'] != '': self.__eventC = self.__typeDesc.chassis['wwsoundPC'] else: self.__eventC = self.__typeDesc.chassis['wwsound'] else: if self.__typeDesc.engine['wwsoundNPC'] != '': self.__event = self.__typeDesc.engine['wwsoundNPC'] else: self.__event = self.__typeDesc.engine['wwsound'] if self.__typeDesc.chassis['wwsoundNPC'] != '': self.__eventC = self.__typeDesc.chassis['wwsoundNPC'] else: self.__eventC = self.__typeDesc.chassis['wwsound'] nodeMatrix = Math.Matrix() nodeMatrix.set(compoundModel.node(TankPartNames.HULL)) vehicleMProv = compoundModel.node(TankPartNames.HULL) vehicleMatrix = Math.Matrix() vehicleMatrix.set(vehicleMProv) self.__engineSoundHP = 'engine' + str(self.__vehicleId) self.__movementSoundHP = 'tracks' + str(self.__vehicleId) self.__gunSoundHP = 'gun' + str(self.__vehicleId) nodeMatrix.set(compoundModel.node(TankPartNames.GUN)) node = nodeMatrix.translation - vehicleMatrix.translation self.__gunSound = SoundGroups.g_instance.WWgetSoundObject( self.__gunSoundHP, vehicleMProv, node) if self.__gunSound is not None: weaponEnergy = vehicle.appearance.gunLength * vehicle.typeDescriptor.shot[ 'shell']['caliber'] self.__gunSound.setRTPC('RTPC_ext_weapon_energy', weaponEnergy) self.__engineSound = SoundGroups.g_instance.WWgetSoundObject( self.__engineSoundHP, vehicleMProv) if self.__engineSound is None: LOG_ERROR('!!!self.__engineSound is None') return horsePower = self.__typeDesc.physics['enginePower'] / HP_TO_WATTS WWISE.WW_setRTCPGlobal('RTPC_ext_engine_power', horsePower) self.__engineSound.setSwitch( 'SWITCH_ext_physics_state', 'SWITCH_ext_physics_state_off' if self.__physicsMode == VEHICLE_PHYSICS_MODE.STANDARD else 'SWITCH_ext_physics_state_on') nodeMatrix.set(compoundModel.node(TankPartNames.TURRET)) node = nodeMatrix.translation - vehicleMatrix.translation if self.__eventC == '': LOG_ERROR('Tracks sound is not defined for = {0}'.format( self.__typeDesc.name)) self.__movementSound = None else: self.__movementSound = SoundGroups.g_instance.WWgetSoundObject( self.__movementSoundHP, vehicleMProv, node) if self.__movementSound is not None: self.__movementSound.setSwitch( 'SWITCH_ext_physics_state', 'SWITCH_ext_physics_state_off' if self.__physicsMode == VEHICLE_PHYSICS_MODE.STANDARD else 'SWITCH_ext_physics_state_on') self.__movementSound.setRTPC( 'RTPC_ext_vehicle_weight', self.__typeDesc.physics['weight'] / 1000) self.__movementSound.setRTPC('RTPC_ext_engine_state', 0.0) self.__movementSound.setRTPC('RTPC_ext_physic_rpm_rel', 0.0) self.__movementSound.setRTPC('RTPC_ext_physic_rpm_abs', 0.0) self.__engineSound.setRTPC( 'RTPC_ext_vehicle_weight', self.__typeDesc.physics['weight'] / 1000) self.__engineSound.setRTPC('RTPC_ext_engine_state', 0.0) self.__engineSound.setRTPC('RTPC_ext_physic_rpm_rel', 0.0) self.__engineSound.setRTPC('RTPC_ext_physic_rpm_abs', 0.0) return