/// <summary>
        /// クロスシミュレーション計算開始
        /// </summary>
        /// <param name="update"></param>
        public void UpdateStartSimulation(UpdateTimeManager update)
        {
            // 時間
            float dtime              = update.DeltaTime;
            float updatePower        = update.UpdatePower;
            float updateIntervalTime = update.UpdateIntervalTime;
            int   ups = update.UpdatePerSecond;

            // 活動チームが1つ以上ある場合のみ更新
            if (Team.ActiveTeamCount > 0)
            {
                // 今回フレームの更新回数
                int updateCount = Team.CalcMaxUpdateCount(ups, dtime, updateIntervalTime);
                //Debug.Log("updateCount:" + updateCount + " dtime:" + Time.deltaTime);

                // 風更新
                Wind.UpdateWind();

                // チームデータ更新、更新回数確定、ワールド移動影響、テレポート
                Team.PreUpdateTeamData(dtime, updateIntervalTime, ups, updateCount);

                // ワーカー処理
                WarmupWorker();

                // ボーン姿勢をパーティクルにコピーする
                Particle.UpdateBoneToParticle();

                // 物理更新前ワーカー処理
                //MasterJob = RenderMeshWorker.PreUpdate(MasterJob); // 何もなし
                MasterJob = VirtualMeshWorker.PreUpdate(MasterJob);  // 仮想メッシュをスキニングしワールド姿勢を求める
                MasterJob = MeshParticleWorker.PreUpdate(MasterJob); // 仮想メッシュ頂点姿勢を連動パーティクルにコピーする
                //MasterJob = SpringMeshWorker.PreUpdate(MasterJob); // 何もなし
                //MasterJob = AdjustRotationWorker.PreUpdate(MasterJob); // 何もなし
                //MasterJob = LineWorker.PreUpdate(MasterJob); // 何もなし
                //MasterJob = BaseSkinningWorker.PreUpdate(MasterJob); // ベーススキニングによりbasePos/baseRotをスキニング

                // パーティクルのリセット判定
                Particle.UpdateResetParticle();

                // 物理更新
                for (int i = 0, cnt = updateCount; i < cnt; i++)
                {
                    UpdatePhysics(updateCount, i, updatePower, updateIntervalTime);
                }

                // 物理演算後処理
                PostUpdatePhysics(updateIntervalTime);

                // 物理更新後ワーカー処理
                MasterJob = TriangleWorker.PostUpdate(MasterJob);       // トライアングル回転調整
                MasterJob = LineWorker.PostUpdate(MasterJob);           // ラインの回転調整
                MasterJob = AdjustRotationWorker.PostUpdate(MasterJob); // パーティクル回転調整(Adjust Rotation)
                Particle.UpdateParticleToBone();                        // パーティクル姿勢をボーン姿勢に書き戻す(ここに挟まないと駄目)
                MasterJob = SpringMeshWorker.PostUpdate(MasterJob);     // メッシュスプリング
                MasterJob = MeshParticleWorker.PostUpdate(MasterJob);   // パーティクル姿勢を仮想メッシュに書き出す
                MasterJob = VirtualMeshWorker.PostUpdate(MasterJob);    // 仮想メッシュ座標書き込み(仮想メッシュトライアングル法線計算)
                MasterJob = RenderMeshWorker.PostUpdate(MasterJob);     // レンダーメッシュ座標書き込み(仮想メッシュからレンダーメッシュ座標計算)

                // 書き込みボーン姿勢をローカル姿勢に変換する
                Bone.ConvertWorldToLocal();

                // チームデータ後処理
                Team.PostUpdateTeamData();
            }
        }