Exemple #1
0
 def PlayHighlightAnimation(self):
     cs = trinity.TriCurveSet()
     expandCurve = trinity.Tr2ScalarCurve()
     expandCurve.interpolation = trinity.TR2CURVE_HERMITE
     expandCurve.length = 0.3
     expandCurve.startValue = 0.0
     expandCurve.endValue = 100.0
     cs.curves.append(expandCurve)
     trinity.CreateBinding(cs, expandCurve, 'currentValue',
                           self.sr.label.GetRenderObject(), 'glowExpand')
     alphaCurve = trinity.Tr2ScalarCurve()
     alphaCurve.interpolation = trinity.TR2CURVE_HERMITE
     alphaCurve.length = 0.3
     alphaCurve.startValue = 1.0
     alphaCurve.endValue = 0.0
     cs.curves.append(alphaCurve)
     trinity.CreateBinding(cs, alphaCurve, 'currentValue',
                           self.sr.label.GetRenderObject(), 'glowColor.a')
     depthCurve = trinity.Tr2ScalarCurve()
     depthCurve.interpolation = trinity.TR2CURVE_HERMITE
     depthCurve.length = 0.3
     depthCurve.startValue = 0
     depthCurve.endValue = -0.25
     cs.curves.append(depthCurve)
     trinity.CreateBinding(cs, depthCurve, 'currentValue',
                           self.GetRenderObject(), 'depthMin')
     trinity.CreateBinding(cs, depthCurve, 'currentValue',
                           self.GetRenderObject(), 'depthMax')
     cs.Play()
     cs.StopAfter(cs.GetMaxCurveDuration())
     trinity.device.curveSets.append(cs)
     self.animation = cs
 def FlipFlop(self, sprite, duration = 1.0, startValue = 0.0, endValue = 1.0, loops = 5):
     curve = trinity.Tr2ScalarCurve()
     curve.length = duration
     curve.interpolation = trinity.TR2CURVE_LINEAR
     curve.startValue = startValue
     curve.AddKey(0.01 * duration, endValue)
     curve.AddKey(0.5 * duration, endValue)
     curve.AddKey(0.51 * duration, startValue)
     curve.endValue = startValue
     return uicore.animations.Play(curve, sprite, 'opacity', loops, None, False)
Exemple #3
0
 def _SetupDynamicLight(self, curveSet):
     angle = random.random() * 2 * pi
     light = trinity.Tr2PointLight()
     light.color = geo2.Vec3Lerp(DYNAMIC_WARP_LIGHT_COLOR, (1, 1, 1, 1), random.random())
     light.radius = 0.7
     light.position = (sin(angle) * 1.5, cos(angle) * 1.5, 2)
     curve = trinity.Tr2ScalarCurve()
     curve.AddKey(0, 2)
     curve.AddKey(8.0 / 20.0, -6)
     curve.Sort()
     curve.timeOffset = curveSet.scaledTime
     curveSet.curves.append(curve)
     binding = trinity.CreateBinding(curveSet, curve, 'currentValue', light, 'position.z')
     return (light, curve, binding)
Exemple #4
0
 def PlayUnhighlightAnimation(self):
     cs = trinity.TriCurveSet()
     depthCurve = trinity.Tr2ScalarCurve()
     depthCurve.interpolation = trinity.TR2CURVE_HERMITE
     depthCurve.length = 0.3
     depthCurve.startValue = -0.25
     depthCurve.endValue = 0
     cs.curves.append(depthCurve)
     trinity.CreateBinding(cs, depthCurve, 'currentValue',
                           self.GetRenderObject(), 'depthMin')
     trinity.CreateBinding(cs, depthCurve, 'currentValue',
                           self.GetRenderObject(), 'depthMax')
     cs.Play()
     cs.StopAfter(cs.GetMaxCurveDuration())
     trinity.device.curveSets.append(cs)
     self.animation = cs
Exemple #5
0
    def GetScalar(self,
                  startValue,
                  endValue,
                  duration,
                  curveType=uiconst.ANIM_SMOOTH,
                  timeOffset=0.0):
        if curveType is uiconst.ANIM_RANDOM:
            curve = trinity.Tr2ScalarExprCurve()
        else:
            curve = trinity.Tr2ScalarCurve()
            if not isinstance(curveType, (list, tuple)):
                curve.startValue = startValue
                curve.endValue = endValue
            curve.length = duration
        curve.timeOffset = timeOffset
        if curveType not in (uiconst.ANIM_LINEAR, uiconst.ANIM_RANDOM
                             ) and not isinstance(curveType, (list, tuple)):
            curve.interpolation = trinity.TR2CURVE_HERMITE
        if isinstance(curveType, (list, tuple)):
            points = curveType
            for keyTime, keyValue in points:
                key = keyTime * duration
                curve.AddKey(key, keyValue)

        elif curveType in uiconst.ANIM_OVERSHOT_TYPES:
            amount = self.GetOvershotAmount(curveType)
            keyTime = OVERSHOT_TIME * duration
            keyVal = endValue + amount * (endValue - startValue)
            curve.AddKey(keyTime, keyVal)
        elif curveType is uiconst.ANIM_WAVE:
            curve.AddKey(0.5 * duration, endValue)
            curve.endValue = startValue
        elif curveType is uiconst.ANIM_RANDOM:
            curve.expr = 'input1 + input2 * perlin(value, %s, 3.0, 4)' % duration
            curve.input1 = startValue
            curve.input2 = endValue
            curve.startValue = curve.endValue = startValue + (endValue -
                                                              startValue) / 2
            curve.AddKey(25, endValue)
            curve.length = 50.0
        elif curveType is uiconst.ANIM_BOUNCE:
            curve.interpolation = trinity.TR2CURVE_HERMITE
            curve.startValue = startValue
            curve.AddKey(0.5 * duration, endValue)
            curve.endValue = startValue
        return curve
Exemple #6
0
def CreateScalarCurve(destObject,
                      sourceAttr,
                      destAttr,
                      curveSet,
                      length=1.0,
                      startValue=0.0,
                      endValue=0.0,
                      cycle=False,
                      startTangent=0.0,
                      endTangent=0.0):
    curve = trinity.Tr2ScalarCurve()
    curve.length = length
    curve.cycle = cycle
    curve.startValue = startValue
    curve.endValue = endValue
    curve.interpolation = 2
    curve.startTangent = startTangent
    curve.endTangent = endTangent
    curveSet.curves.append(curve)
    binding = AddBinding(curve, sourceAttr, destObject, destAttr, curveSet)
    return (curve, binding)
 def SetupSharedBlinkingCurve(self, cuverSetName, fromCurveValue, toCurveValue, duration, *args):
     curveSet = getattr(uicore, cuverSetName, None)
     if curveSet:
         curve = curveSet.curves[0]
     else:
         curveSet = trinity.TriCurveSet()
         setattr(uicore, cuverSetName, curveSet)
         setattr(curveSet, 'name', cuverSetName)
         trinity.device.curveSets.append(curveSet)
         curveSet.Play()
         curve = trinity.Tr2ScalarCurve()
         curve.name = 'blinking_curve'
         curve.length = duration
         curve.startValue = fromCurveValue
         curve.endValue = fromCurveValue
         curve.AddKey(duration / 2.0, toCurveValue)
         curve.cycle = True
         curve.interpolation = trinity.TR2CURVE_LINEAR
         curveSet.curves.append(curve)
     if getattr(self, 'blinkBinding', None) is not None:
         curveSet.bindings.remove(self.blinkBinding)
     self.blinkBinding = trinity.CreatePythonBinding(curveSet, curve, 'currentValue', self, 'opacity')
Exemple #8
0
def CreateEaseOutCurve(length):
    curve = trinity.Tr2ScalarCurve()
    curve.AddKey(0, 1)
    curve.AddKey(length, 0)
    curve.interpolation = trinity.TR2CURVE_HERMITE
    return curve