void SetFirstPose() { bodyParts[( int )BodyPartsName.ArmR].angle.X = -100 + 200 * ( float )randGen.NextDouble(); bodyParts[( int )BodyPartsName.ArmR].angle.Y = -100 + 200 * ( float )randGen.NextDouble(); bodyParts[( int )BodyPartsName.ArmR].angle.Z = -100 + 200 * ( float )randGen.NextDouble(); bodyParts[( int )BodyPartsName.UpperArmR].angle.X = -100 + 200 * ( float )randGen.NextDouble(); bodyParts[( int )BodyPartsName.UpperArmR].angle.Y = -100 + 200 * ( float )randGen.NextDouble(); bodyParts[( int )BodyPartsName.UpperArmR].angle.Z = -100 + 200 * ( float )randGen.NextDouble(); //bodyParts[ ( int )BodyPartsName.Trunk ].angle.X = -40 + 80 * ( float )randGen.NextDouble(); //bodyParts[ ( int )BodyPartsName.Trunk ].angle.Y = -40 + 80 * ( float )randGen.NextDouble(); //bodyParts[ ( int )BodyPartsName.Trunk ].angle.Z = -40 + 80 * ( float )randGen.NextDouble(); drawList = new List <BodyParts>(); //drawList.Add( bodyParts[ ( int )BodyPartsName.Trunk ] ); drawList.Add(bodyParts[( int )BodyPartsName.UpperArmR]); drawList.Add(bodyParts[( int )BodyPartsName.ArmR]); for (int i = 0; i < 32; ++i) { PSOManager.SetBodyPartsToParticle(drawList.ToArray(), i); } //初期姿勢を記憶 for (int i = 0; i < PSOManager.particles[0].degreeCount; ++i) { poseLog.Write(PSOManager.particles[0].degrees[i] + ","); } testEnv.RememberPose(PSOManager.particles[0].degrees); poseLog.Write("0\n"); MakeNoise(); PSOManager.SetCurrentDegreesToLocalBest(); for (int i = 0; i < 32; ++i) { PSOManager.SetDegreesToPrevFrame(drawList.ToArray(), i); } }