def _assembleSwinging(appearance, lodLink): compoundModel = appearance.compoundModel appearance.swingingAnimator = swingingAnimator = model_assembler.createSwingingAnimator(appearance.typeDescriptor, compoundModel.node(TankPartNames.HULL).localMatrix, appearance.compoundModel.matrix, lodLink) compoundModel.node(TankPartNames.HULL, swingingAnimator) appearance.fashions.chassis.setupSwinging(swingingAnimator, 'V') if hasattr(appearance.filter, 'placingCompensationMatrix'): swingingAnimator.placingCompensationMatrix = appearance.filter.placingCompensationMatrix
def _assembleSwinging(appearance, lodLink): compoundModel = appearance.compoundModel appearance.swingingAnimator = swingingAnimator = createSwingingAnimator( appearance.typeDescriptor, compoundModel.node(TankPartNames.HULL).localMatrix, appearance.compoundModel.matrix, lodLink) compoundModel.node(TankPartNames.HULL, swingingAnimator) if hasattr(appearance.filter, 'placingCompensationMatrix'): swingingAnimator.placingCompensationMatrix = appearance.filter.placingCompensationMatrix
def __assembleSwinging(self, lodLink): hullNode = self.compoundModel.node(TankPartNames.HULL) if hullNode is None: _logger.error('Could not create SwingingAnimator: failed to find hull node') return else: self.swingingAnimator = model_assembler.createSwingingAnimator(self, self.typeDescriptor, hullNode.localMatrix, self.compoundModel.matrix, lodLink) self.compoundModel.node(TankPartNames.HULL, self.swingingAnimator.animatedMProv) if hasattr(self.filter, 'placingCompensationMatrix'): self.swingingAnimator.placingCompensationMatrix = self.filter.placingCompensationMatrix return
def setupTank(chassisFashion, gunFashion, vehicleDesc, worldMatrix, resources): print resources tank = resources[vehicleDesc.name] tank.matrix = worldMatrix tanks.append(tank) effect = Pixie.create('particles/Tank/exhaust/large_gas_gear.xml') tank.node('HP_gunFire').attach(effect) tank.node('HP_gunFire').attach( BigWorld.Model('helpers/models/position_gizmo.model')) tank.node('HP_Track_Exhaus_1').attach( BigWorld.Model('helpers/models/unit_cube.model')) m = mathUtils.createTranslationMatrix(Vector3(0, 10, 5)) fakeMatrixes.append(m) tank.node('gun').attach(effect.clone(), m) BigWorld.addModel(tank) recoilDescr = vehicleDesc.gun['recoil'] recoil = BigWorld.RecoilAnimator(recoilDescr['backoffTime'], recoilDescr['returnTime'], recoilDescr['amplitude'], recoilDescr['lodDist']) recoil.basisMatrix = tank.node('G').localMatrix recoil = assemblerModule.createGunAnimator(vehicleDesc, tank.node('G').localMatrix) recoil.lodSetting = 10 tank.node('G', recoil) gunFashion.gunLocalMatrix = recoil recoil.lodLink = DataLinks.createFloatLink(chassisFashion, 'lastLod') swingingAnimator = assemblerModule.createSwingingAnimator( vehicleDesc, tank.node('hull').localMatrix, worldMatrix) chassisFashion.setupSwinging(swingingAnimator, 'hull') swingingAnimator.lodLink = DataLinks.createFloatLink( chassisFashion, 'lastLod') tank.setupFashions([chassisFashion, None, None, gunFashion]) fashions.append(swingingAnimator) tank.node('hull', swingingAnimator) animMatrix = Math.MatrixAnimation() keys = [] for x in xrange(100): angle = math.pi * 0.5 * (1 if x & 1 else -1) keys.append((x * 3, mathUtils.createRotationMatrix((angle, 0, 0)))) animMatrix.keyframes = tuple(keys) tank.node('turret', animMatrix) return
def setupTank(chassisFashion, gunFashion, vehicleDesc, worldMatrix, resources): print resources tank = resources[vehicleDesc.name] tank.matrix = worldMatrix tanks.append(tank) effect = Pixie.create('particles/Tank/exhaust/large_gas_gear.xml') tank.node('HP_gunFire').attach(effect) tank.node('HP_gunFire').attach(BigWorld.Model('helpers/models/position_gizmo.model')) tank.node('HP_Track_Exhaus_1').attach(BigWorld.Model('helpers/models/unit_cube.model')) m = mathUtils.createTranslationMatrix(Vector3(0, 10, 5)) fakeMatrixes.append(m) tank.node('gun').attach(effect.clone(), m) BigWorld.addModel(tank) recoilDescr = vehicleDesc.gun['recoil'] recoil = BigWorld.RecoilAnimator(recoilDescr['backoffTime'], recoilDescr['returnTime'], recoilDescr['amplitude'], recoilDescr['lodDist']) recoil.basisMatrix = tank.node('G').localMatrix recoil = assemblerModule.createGunAnimator(vehicleDesc, tank.node('G').localMatrix) recoil.lodSetting = 10 tank.node('G', recoil) gunFashion.gunLocalMatrix = recoil recoil.lodLink = DataLinks.createFloatLink(chassisFashion, 'lastLod') swingingAnimator = assemblerModule.createSwingingAnimator(vehicleDesc, tank.node('hull').localMatrix, worldMatrix) chassisFashion.setupSwinging(swingingAnimator, 'hull') swingingAnimator.lodLink = DataLinks.createFloatLink(chassisFashion, 'lastLod') tank.setupFashions([chassisFashion, None, None, gunFashion]) fashions.append(swingingAnimator) tank.node('hull', swingingAnimator) animMatrix = Math.MatrixAnimation() keys = [] for x in xrange(100): angle = math.pi * 0.5 * (1 if x & 1 else -1) keys.append((x * 3, mathUtils.createRotationMatrix((angle, 0, 0)))) animMatrix.keyframes = tuple(keys) tank.node('turret', animMatrix) return
def __linkCompound(self): vehicle = self.__vehicle vehicle.model = None vehicle.model = self.__compoundModel vehicleMatrix = vehicle.matrix self.__compoundModel.matrix = vehicleMatrix if not self.__currentDamageState.isCurrentModelDamaged: self.__swingingAnimator = model_assembler.createSwingingAnimator( self.__typeDesc, self.__compoundModel.node(TankPartNames.HULL).localMatrix, vehicleMatrix) self.__compoundModel.node(TankPartNames.HULL, self.__swingingAnimator) self.__fashions.chassis.setupSwinging(self.__swingingAnimator, 'V') if hasattr(self.__filter, 'placingCompensationMatrix'): self.__swingingAnimator.placingCompensationMatrix = self.__filter.placingCompensationMatrix gunAnimatorNode = self.__compoundModel.node('G') if gunAnimatorNode is not None: localGunMatrix = gunAnimatorNode.localMatrix self.__gunRecoil = model_assembler.createGunAnimator( self.__typeDesc, localGunMatrix) self.__compoundModel.node('G', self.__gunRecoil) self.__fashions.gun.inclinationMatrix = self.gunMatrix self.__fashions.gun.gunLocalMatrix = self.__gunRecoil lodLink = DataLinks.createFloatLink(self.fashions.chassis, 'lastLod') self.__gunRecoil.lodLink = lodLink self.__swingingAnimator.lodLink = lodLink self.__compoundModel.node(TankNodeNames.GUN_INCLINATION, self.gunMatrix) else: self.__compoundModel.node(TankPartNames.GUN, self.gunMatrix) self.__compoundModel.node(TankPartNames.TURRET, self.turretMatrix) if vehicle.isPlayerVehicle: player = BigWorld.player() if player.inputHandler is not None: player.inputHandler.addVehicleToCameraCollider(vehicle) return
def __assembleSwinging(self, lodLink): self.swingingAnimator = model_assembler.createSwingingAnimator(self, self.typeDescriptor, self.compoundModel.node(TankPartNames.HULL).localMatrix, self.compoundModel.matrix, lodLink) self.compoundModel.node(TankPartNames.HULL, self.swingingAnimator.animatedMProv) if hasattr(self.filter, 'placingCompensationMatrix'): self.swingingAnimator.placingCompensationMatrix = self.filter.placingCompensationMatrix