そのため、Panda3D には、パラメータ「bakeInStart」を使用して Lerp 間隔の開始位置を更新するオプションがあります (0 に設定した場合)。ただし、この問題を克服する解決策が見つかりません。これは、終了 HPR を更新しています。 (ヨー、ピッチ、ロール) 値は、Lerp インターバル ループの新しい反復があるたびに発生します。これを回避して目的の効果を得ることができましたが、コードの画面全体を記述する必要がありました (複数の間隔が順番に記述されているため)。これまでのところ、コードを最小限に抑えるためにこれを試しました:
self.rotateTargets(0)
def rotateTargets(self, angle):
# Create Lerp intervals for each target orbit node to rotate all of the targets
# in a parallel sequence with easing
self.angle = angle
self.rotateTargets = Sequence(
Parallel(
LerpHprInterval(self.orbitNodes["orbit0"], 4, Point3(0, 0, self.angle+90), blendType = "easeInOut", bakeInStart = 0),
name = "rotateTargets0"), Func(self.targetReparent(self.orbitNodes["orbit0"].getR()))
self.rotateTargets.loop()
def targetReparent(self, newAngle):
# Define new angle
self.newAngle = newAngle
self.angle = self.newAngle
コンソールにアサーション エラーが表示されますが、これはインポートされた関数に関連しており、私のコードではありません。