Esempio n. 1
0
        public static CameraAnimationSet <CharacterImasMotionAsset> LoadCamera([NotNull] string filePath, [CanBeNull] int?desiredCameraNumber)
        {
            CharacterImasMotionAsset cam = null, apa = null, apg = null, bpg = null;

            var manager = new AssetsManager();

            manager.LoadFiles(filePath);

            var ser = new ScriptableObjectSerializer();
            int cameraNumber;

            if (desiredCameraNumber != null)
            {
                do
                {
                    // Some songs, e.g. Alliance Stardust (alstar), has more than one cameras.
                    // In these cases the user must select the appropriate camera number.
                    if (TryLoadSpecifiedCamera(manager, ser, desiredCameraNumber.Value, ref cam, ref apa, ref apg, ref bpg))
                    {
                        cameraNumber = desiredCameraNumber.Value;
                        break;
                    }

                    TryLoadFirstFoundCamera(manager, ser, ref cam, ref apa, ref apg, ref bpg);
                    cameraNumber = InvalidCameraNumber;
                } while (false);
            }
            else
            {
                TryLoadFirstFoundCamera(manager, ser, ref cam, ref apa, ref apg, ref bpg);
                cameraNumber = UnspecifiedCameraNumber;
            }

            return(AnimationSet.CreateCamera(cameraNumber, cam, apg, apa, bpg));
        }