示例#1
0
        static void Postfix(OcPlHeadPrefabSetting __instance)
        {
            OcPl pl = __instance.GetComponentInParentRecursive <OcPl>();

            if (!Settings.isUseVRM(pl))
            {
                return;
            }

            foreach (var mr in __instance.GetComponentsInChildren <MeshRenderer>())
            {
                mr.enabled = false;
            }
        }
示例#2
0
        void Start()
        {
            plCam = GetComponent <OcPlCam>();
            cam   = GetComponent <Camera>();
            head  = FindObjectOfType <OcPlHeadPrefabSetting>();
            var volume = FindObjectOfType <PostProcessVolume>();

            var master     = plCam.GetRefField <OcPlCam, OcPlMaster>("_Owner");
            var playername = Settings.getPlayerName(master);

            if (Settings.ReadBool(playername, "UseBloom", false))
            {
                bloom = volume.profile.GetSetting <Bloom>();
                bloom.enabled.value   = true;
                bloom.active          = true;
                bloom.threshold.value = Settings.ReadFloat(playername, "BloomThreshold", 0.2f);
                bloom.intensity.value = Settings.ReadFloat(playername, "BloomIntensity", 0.5f);
            }

            if (Settings.ReadBool(playername, "UseAmbientOcclusion", false))
            {
                ambientOcclusion = volume.profile.GetSetting <AmbientOcclusion>();
                ambientOcclusion.enabled.value                = true;
                ambientOcclusion.active                       = true;
                ambientOcclusion.intensity.value              = Settings.ReadFloat(playername, "AmbientOcclusionInteisity", 1.0f);
                ambientOcclusion.thicknessModifier.value      = 1.0f;
                ambientOcclusion.directLightingStrength.value = 1.0f;
            }

            if (Settings.ReadBool(playername, "UseVignette", false))
            {
                vignette = volume.profile.GetSetting <Vignette>();
                vignette.enabled.value    = true;
                vignette.active           = true;
                vignette.intensity.value  = 0.45f;
                vignette.smoothness.value = 0.15f;
                vignette.roundness.value  = 0.0f;
            }

            enableAdjustDoF = Settings.ReadBool(playername, "AdjustDoF", true);

            distanceRate = Settings.ReadFloat(playername, "CameraDistanceRate", 1.0f);
            basePos      = plCam.SoCam.CamOfs_Base;
            swordPos     = plCam.SoCam.CamOfs_Sword;
            sprintPos    = plCam.SoCam.CamOfs_SprintStraight;
            swimPos      = plCam.SoCam.CamOfs_Swim;
            jumpPos      = plCam.SoCam.CamOfs_Jump;
        }
示例#3
0
        static void Postfix(OcPlHeadPrefabSetting __instance)
        {
            var slave = __instance.GetComponentInParentRecursive <OcPlSlave>();

            if (slave && !slave.FindNameInParentRecursive("UI"))
            {
                var selfId = OcNetMng.Inst.NetPlId_Master;
                if (SingletonMonoBehaviour <OcPlMng> .Inst.getPlSlave(selfId - 1) != slave)
                {
                    return;
                }
            }

            foreach (var mr in __instance.GetComponentsInChildren <MeshRenderer>())
            {
                mr.enabled = false;
            }
        }
示例#4
0
        void Update()
        {
            if (head == null)
            {
                head = OcPlMaster.Inst.GetComponentInChildren <OcPlHeadPrefabSetting>();
            }

            if (enableAdjustDoF)
            {
                var dist = Vector3.Distance(cam.transform.position, head.transform.position);
                plCam.SoCam.Dof_Def_FocusDist = Mathf.Min(dist, 4.4f);
            }

            if (distanceRate != 1.0f)
            {
                plCam.SoCam.CamOfs_Base           = basePos * distanceRate;
                plCam.SoCam.CamOfs_Sword          = swordPos * distanceRate;
                plCam.SoCam.CamOfs_SprintStraight = sprintPos * distanceRate;
                plCam.SoCam.CamOfs_Swim           = swimPos * distanceRate;
                plCam.SoCam.CamOfs_Jump           = jumpPos * distanceRate;
            }
        }
示例#5
0
        static void Postfix(OcPl __instance)
        {
            string playername = Settings.getPlayerName(__instance);

            if (playername == null)
            {
                GameObject obj = new GameObject("Delay_OcPlVRM");
                DelayVRM   dvm = obj.AddComponent <DelayVRM>();
                dvm.StartCheck(__instance);
                return;
            }

            if (!Settings.isUseVRM(__instance))
            {
                return;
            }


            if (Settings.ReadBool("DisableStool", false))
            {
                SROptions.Current.DisableStool = true;
            }

            GameObject _vrmModel = null;

            if (playername != null)
            {
                if (dic_vrmModel.ContainsKey(playername))
                {
                    _vrmModel = dic_vrmModel[playername];
                }
            }
            if (_vrmModel == null)
            {
                //カスタムモデル名の取得(設定ファイルにないためLogの出力が不自然にならないよう調整)
                var ModelStr = Settings.ReadSettings(playername, "ModelName");

                var path = Environment.CurrentDirectory + @"\Player2VRM\player.vrm";
                if (ModelStr != null)
                {
                    path = Environment.CurrentDirectory + @"\Player2VRM\" + ModelStr + ".vrm";
                }

                try
                {
                    _vrmModel = ImportVRM(path, playername);
                }
                catch
                {
                    string _settings_path = Settings.FindAvatarSettngs(playername);

                    if (ModelStr != null)
                    {
                        UnityEngine.Debug.LogWarning("VRMファイルの読み込みに失敗しました。" + _settings_path + "内のModelNameを確認してください。");
                    }
                    else
                    {
                        UnityEngine.Debug.LogWarning("VRMファイルの読み込みに失敗しました。Player2VRMフォルダにplayer.vrmを配置してください。");
                    }
                    return;
                }

                OcPlHeadPrefabSetting hps = __instance.gameObject.GetComponentInChildren <OcPlHeadPrefabSetting>();
                if (hps != null)
                {
                    foreach (var mr in hps.gameObject.GetComponentsInChildren <MeshRenderer>())
                    {
                        mr.enabled = false;
                    }
                }

                var receiveShadows = Settings.ReadBool(playername, "ReceiveShadows");
                if (!receiveShadows)
                {
                    foreach (var smr in _vrmModel.GetComponentsInChildren <SkinnedMeshRenderer>())
                    {
                        smr.receiveShadows = false;
                    }
                }

                // プレイヤースケール調整
                {
                    var scale = Settings.ReadFloat(playername, "PlayerScale", 1.0f);
                    __instance.transform.localScale *= scale;
                    _vrmModel.transform.localScale  /= scale;
                }
            }

            foreach (var smr in __instance.GetComponentsInChildren <SkinnedMeshRenderer>())
            {
                if (Settings.ReadBool(playername, "UseRealToonShader", false))
                {
                    foreach (var mat in smr.materials)
                    {
                        mat.SetFloat("_EnableTextureTransparent", 1.0f);
                    }
                }
                smr.enabled = false;
                Transform trans = smr.transform;
                while (_vrmModel != null && trans != null)
                {
                    if (trans.name.Contains(_vrmModel.name))
                    {
                        smr.enabled = true;
                        break;
                    }
                    trans = trans.parent;
                }
            }

            __instance.Animator.gameObject.GetOrAddComponent <CloneHumanoid>().Setup(_vrmModel, __instance.Animator, __instance is OcPlMaster);
            if (playername != null)
            {
                dic_vrmModel[playername] = _vrmModel;
            }
        }