public void TransitionScene(int sceneId)
    {
        SceneBase scene;        // 表示するシーン

        if (sceneId > -1)
        {
            scene = scenes [sceneId];
        }
        else
        {
            //			Debug.LogError ("error sceneId: "+sceneId);
            // オープンしているシーンを閉じる。
            ClearScene();
            return;
        }

        if (currentScene == scene)
        {
            return;
        }

        // OpenScene(シーンが開始した時)にnextSceneはnullになる。
        // CloseScene でシーン終了後に nextScene がオープンする。
        nextScene = scene;

        if (eventTransition != null)
        {
            eventTransition(scene, TransitionType.SET_SCENE);
        }

        if (closeTransitionScene != null)
        {
            // 終了処理中の時
            Debug.LogWarning(closeTransitionScene + ">>>>>> 終了処理 中断");
            closeTransitionScene.eventCloseComplete -= SceneCloseComplete;

            closeTransitionScene.eventCloseTransitionInterruptComplete += SceneCloseTransitionInterruptComplete;
            closeTransitionScene.CloseTransitionInterrupt();
            return;
        }
        if (openTransitionScene != null)
        {
            // 開始処理の時
            Debug.LogWarning(openTransitionScene + ">>>>>> 開始処理 中断");
            openTransitionScene.eventOpenComplete -= SceneOpenComplete;

            openTransitionScene.eventOpenTransitionInterruptComplete += SceneOpenTransitionInterruptComplete;
            openTransitionScene.OpenTransitionInterrupt();
            return;
        }

        // 次のシーンを開く。現在開いているシーンがあれば閉じる。
        OpenNextScene();
    }