ADD : 스트리밍글 초기 설정파일 업데이트
This commit is contained in:
parent
78a7fb28ac
commit
ed72287a5c
BIN
.vscode/extensions.json
(Stored with Git LFS)
vendored
Normal file
BIN
.vscode/extensions.json
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
BIN
.vscode/launch.json
(Stored with Git LFS)
vendored
Normal file
BIN
.vscode/launch.json
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
BIN
.vscode/settings.json
(Stored with Git LFS)
vendored
Normal file
BIN
.vscode/settings.json
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
8
Assets/External.meta
Normal file
8
Assets/External.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f243f02b195efc94faecee0ee5d0fa4b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/Ifacialmocap.meta
vendored
Normal file
8
Assets/External/Ifacialmocap.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 223415c286f7fd74f85d05754d2da6ad
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
386
Assets/External/Ifacialmocap/UnityRecieve_FACEMOTION3D_and_iFacialMocap.cs
vendored
Normal file
386
Assets/External/Ifacialmocap/UnityRecieve_FACEMOTION3D_and_iFacialMocap.cs
vendored
Normal file
@ -0,0 +1,386 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Globalization;
|
||||||
|
|
||||||
|
public class UnityRecieve_FACEMOTION3D_and_iFacialMocap : MonoBehaviour
|
||||||
|
{
|
||||||
|
// broadcast address
|
||||||
|
public bool gameStartWithConnect = true;
|
||||||
|
public string iOS_IPAddress = "255.255.255.255";
|
||||||
|
private UdpClient client;
|
||||||
|
private bool StartFlag = true;
|
||||||
|
|
||||||
|
//object names
|
||||||
|
public string faceObjectGroupName = "";
|
||||||
|
public string headBoneName = "";
|
||||||
|
public string rightEyeBoneName = "";
|
||||||
|
public string leftEyeBoneName = "";
|
||||||
|
public string headPositionObjectName = "";
|
||||||
|
|
||||||
|
private UdpClient udp;
|
||||||
|
private Thread thread;
|
||||||
|
private SkinnedMeshRenderer meshTarget;
|
||||||
|
private List<SkinnedMeshRenderer> meshTargetList;
|
||||||
|
private List<GameObject> headObjectArray;
|
||||||
|
private List<GameObject> rightEyeObjectArray;
|
||||||
|
private List<GameObject> leftEyeObjectArray;
|
||||||
|
private List<GameObject> headPositionObjectArray;
|
||||||
|
|
||||||
|
private string messageString = "";
|
||||||
|
public int LOCAL_PORT = 49983;
|
||||||
|
|
||||||
|
// Start is called
|
||||||
|
void StartFunction()
|
||||||
|
{
|
||||||
|
if (StartFlag == true)
|
||||||
|
{
|
||||||
|
StartFlag = false;
|
||||||
|
|
||||||
|
FindGameObjectsInsideUnitySettings();
|
||||||
|
|
||||||
|
//Send to iOS
|
||||||
|
if (gameStartWithConnect == true)
|
||||||
|
{
|
||||||
|
Connect_to_iOS_App();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Recieve udp from iOS
|
||||||
|
CreateUdpServer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
StartFunction();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreateUdpServer()
|
||||||
|
{
|
||||||
|
udp = new UdpClient(LOCAL_PORT);
|
||||||
|
udp.Client.ReceiveTimeout = 5;
|
||||||
|
|
||||||
|
thread = new Thread(new ThreadStart(ThreadMethod));
|
||||||
|
thread.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator WaitProcess(float WaitTime)
|
||||||
|
{
|
||||||
|
yield return new WaitForSeconds(WaitTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Connect_to_iOS_App()
|
||||||
|
{
|
||||||
|
//iFacialMocap
|
||||||
|
SendMessage_to_iOSapp("iFacialMocap_sahuasouryya9218sauhuiayeta91555dy3719", 49983);
|
||||||
|
|
||||||
|
//Facemotion3d
|
||||||
|
SendMessage_to_iOSapp("FACEMOTION3D_OtherStreaming", 49993);
|
||||||
|
}
|
||||||
|
|
||||||
|
void StopStreaming_iOS_App()
|
||||||
|
{
|
||||||
|
SendMessage_to_iOSapp("StopStreaming_FACEMOTION3D", 49993);
|
||||||
|
}
|
||||||
|
|
||||||
|
//iOSアプリに通信開始のメッセージを送信
|
||||||
|
//Send a message to the iOS application to start streaming
|
||||||
|
void SendMessage_to_iOSapp(string sendMessage,int send_port)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
client = new UdpClient();
|
||||||
|
client.Connect(iOS_IPAddress, send_port);
|
||||||
|
byte[] dgram = Encoding.UTF8.GetBytes(sendMessage);
|
||||||
|
client.Send(dgram, dgram.Length);
|
||||||
|
client.Send(dgram, dgram.Length);
|
||||||
|
client.Send(dgram, dgram.Length);
|
||||||
|
client.Send(dgram, dgram.Length);
|
||||||
|
client.Send(dgram, dgram.Length);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SetAnimation_inside_Unity_settings();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{ }
|
||||||
|
}
|
||||||
|
|
||||||
|
//BlendShapeの設定
|
||||||
|
//set blendshapes
|
||||||
|
void SetBlendShapeWeightFromStrArray(string[] strArray2)
|
||||||
|
{
|
||||||
|
string mappedShapeName = strArray2[0].Replace("_R", "Right").Replace("_L", "Left");
|
||||||
|
|
||||||
|
float weight = float.Parse(strArray2[1], CultureInfo.InvariantCulture);
|
||||||
|
|
||||||
|
|
||||||
|
foreach (SkinnedMeshRenderer meshTarget in meshTargetList)
|
||||||
|
{
|
||||||
|
var shared_mesh = meshTarget.sharedMesh;
|
||||||
|
int index = shared_mesh.GetBlendShapeIndex(mappedShapeName);
|
||||||
|
if (index > -1)
|
||||||
|
{
|
||||||
|
meshTarget.SetBlendShapeWeight(index, weight);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//BlendShapeとボーンの回転の設定
|
||||||
|
//set blendshapes & bone rotation
|
||||||
|
void SetAnimation_inside_Unity_settings()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string[] strArray1 = messageString.Split('=');
|
||||||
|
|
||||||
|
if (strArray1.Length >= 2)
|
||||||
|
{
|
||||||
|
//blendShapes
|
||||||
|
foreach (string message in strArray1[0].Split('|'))
|
||||||
|
{
|
||||||
|
string[] strArray2 = new string[3];
|
||||||
|
if (message.Contains("&"))
|
||||||
|
{
|
||||||
|
strArray2 = message.Split('&');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strArray2 = message.Split('-');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strArray2.Length == 2)
|
||||||
|
{
|
||||||
|
SetBlendShapeWeightFromStrArray(strArray2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (string message in strArray1[1].Split('|'))
|
||||||
|
{
|
||||||
|
string[] strArray2 = message.Split('#');
|
||||||
|
|
||||||
|
if (strArray2.Length == 2)
|
||||||
|
{
|
||||||
|
string[] commaList = strArray2[1].Split(',');
|
||||||
|
if (strArray2[0] == "head")
|
||||||
|
{
|
||||||
|
foreach (GameObject headObject in headObjectArray)
|
||||||
|
{
|
||||||
|
headObject.transform.localRotation = Quaternion.Euler(float.Parse(commaList[0], CultureInfo.InvariantCulture), -float.Parse(commaList[1], CultureInfo.InvariantCulture), -float.Parse(commaList[2], CultureInfo.InvariantCulture));
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (GameObject headPositionObject in headPositionObjectArray)
|
||||||
|
{
|
||||||
|
headPositionObject.transform.localPosition = new Vector3(-float.Parse(commaList[3], CultureInfo.InvariantCulture), float.Parse(commaList[4], CultureInfo.InvariantCulture), float.Parse(commaList[5], CultureInfo.InvariantCulture));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (strArray2[0] == "rightEye")
|
||||||
|
{
|
||||||
|
foreach (GameObject rightEyeObject in rightEyeObjectArray)
|
||||||
|
{
|
||||||
|
rightEyeObject.transform.localRotation = Quaternion.Euler(float.Parse(commaList[0], CultureInfo.InvariantCulture), -float.Parse(commaList[1], CultureInfo.InvariantCulture), float.Parse(commaList[2], CultureInfo.InvariantCulture));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (strArray2[0] == "leftEye")
|
||||||
|
{
|
||||||
|
foreach (GameObject leftEyeObject in leftEyeObjectArray)
|
||||||
|
{
|
||||||
|
leftEyeObject.transform.localRotation = Quaternion.Euler(float.Parse(commaList[0], CultureInfo.InvariantCulture), -float.Parse(commaList[1], CultureInfo.InvariantCulture), float.Parse(commaList[2], CultureInfo.InvariantCulture));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FindGameObjectsInsideUnitySettings()
|
||||||
|
{
|
||||||
|
//Find BlendShape Objects
|
||||||
|
meshTargetList = new List<SkinnedMeshRenderer>();
|
||||||
|
|
||||||
|
GameObject faceObjGrp = GameObject.Find(faceObjectGroupName);
|
||||||
|
if (faceObjGrp != null)
|
||||||
|
{
|
||||||
|
List<GameObject> list = FM3D_and_iFacialMocap_GetAllChildren.GetAll(faceObjGrp);
|
||||||
|
|
||||||
|
foreach (GameObject obj in list)
|
||||||
|
{
|
||||||
|
meshTarget = obj.GetComponent<SkinnedMeshRenderer>();
|
||||||
|
if (meshTarget != null)
|
||||||
|
{
|
||||||
|
if (HasBlendShapes(meshTarget) == true)
|
||||||
|
{
|
||||||
|
meshTargetList.Add(meshTarget);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Find Bone Objects
|
||||||
|
headObjectArray = new List<GameObject>();
|
||||||
|
foreach (string headString in headBoneName.Split(','))
|
||||||
|
{
|
||||||
|
GameObject headObject = GameObject.Find(headString);
|
||||||
|
if (headObject != null)
|
||||||
|
{
|
||||||
|
headObjectArray.Add(headObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rightEyeObjectArray = new List<GameObject>();
|
||||||
|
foreach (string rightEyeString in rightEyeBoneName.Split(','))
|
||||||
|
{
|
||||||
|
GameObject rightEyeObject = GameObject.Find(rightEyeString);
|
||||||
|
if (rightEyeObject != null)
|
||||||
|
{
|
||||||
|
rightEyeObjectArray.Add(rightEyeObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
leftEyeObjectArray = new List<GameObject>();
|
||||||
|
foreach (string leftEyeString in leftEyeBoneName.Split(','))
|
||||||
|
{
|
||||||
|
GameObject leftEyeObject = GameObject.Find(leftEyeString);
|
||||||
|
if (leftEyeObject != null)
|
||||||
|
{
|
||||||
|
leftEyeObjectArray.Add(leftEyeObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
headPositionObjectArray = new List<GameObject>();
|
||||||
|
foreach (string headPositionString in headPositionObjectName.Split(','))
|
||||||
|
{
|
||||||
|
GameObject headPositionObject = GameObject.Find(headPositionString);
|
||||||
|
if (headPositionObject != null)
|
||||||
|
{
|
||||||
|
headPositionObjectArray.Add(headPositionObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ThreadMethod()
|
||||||
|
{
|
||||||
|
//Process once every 5ms
|
||||||
|
long next = DateTime.Now.Ticks + 50000;
|
||||||
|
long now;
|
||||||
|
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
IPEndPoint remoteEP = null;
|
||||||
|
byte[] data = udp.Receive(ref remoteEP);
|
||||||
|
messageString = Encoding.ASCII.GetString(data);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
now = DateTime.Now.Ticks;
|
||||||
|
}
|
||||||
|
while (now < next);
|
||||||
|
next += 50000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public string GetMessageString()
|
||||||
|
{
|
||||||
|
return messageString;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnEnable()
|
||||||
|
{
|
||||||
|
StartFunction();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDisable()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
OnApplicationQuit();
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnApplicationQuit()
|
||||||
|
{
|
||||||
|
if (StartFlag == false)
|
||||||
|
{
|
||||||
|
StartFlag = true;
|
||||||
|
StopUDP();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void StopUDP()
|
||||||
|
{
|
||||||
|
if (gameStartWithConnect == true)
|
||||||
|
{
|
||||||
|
StopStreaming_iOS_App();
|
||||||
|
}
|
||||||
|
udp.Dispose();
|
||||||
|
thread.Abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool HasBlendShapes(SkinnedMeshRenderer skin)
|
||||||
|
{
|
||||||
|
if (!skin.sharedMesh)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (skin.sharedMesh.blendShapeCount <= 0)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public static class FM3D_and_iFacialMocap_GetAllChildren
|
||||||
|
{
|
||||||
|
public static List<GameObject> GetAll(this GameObject obj)
|
||||||
|
{
|
||||||
|
List<GameObject> allChildren = new List<GameObject>();
|
||||||
|
allChildren.Add(obj);
|
||||||
|
GetChildren(obj, ref allChildren);
|
||||||
|
return allChildren;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void GetChildren(GameObject obj, ref List<GameObject> allChildren)
|
||||||
|
{
|
||||||
|
Transform children = obj.GetComponentInChildren<Transform>();
|
||||||
|
if (children.childCount == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
foreach (Transform ob in children)
|
||||||
|
{
|
||||||
|
allChildren.Add(ob.gameObject);
|
||||||
|
GetChildren(ob.gameObject, ref allChildren);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/External/Ifacialmocap/UnityRecieve_FACEMOTION3D_and_iFacialMocap.cs.meta
vendored
Normal file
2
Assets/External/Ifacialmocap/UnityRecieve_FACEMOTION3D_and_iFacialMocap.cs.meta
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c942f7bd108ef2a4c96caa6aa3f10d03
|
||||||
8
Assets/External/MagicaCloth2.meta
vendored
Normal file
8
Assets/External/MagicaCloth2.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f31820b1e966ca049a982e2a30795d24
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted).meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted).meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b13ad20384f6dd8459a0ee155e8181f1
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 791ca5043c61c164093a43f6e1134756
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 319509eb5d501a04f8a0d2e3a8f5b0a0
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
202
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_Floor.mat
vendored
Normal file
202
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_Floor.mat
vendored
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-5413520746483021427
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 12
|
||||||
|
hdPluginSubTargetMaterialVersions:
|
||||||
|
m_Keys: []
|
||||||
|
m_Values:
|
||||||
|
--- !u!114 &-3015027763282864326
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 9
|
||||||
|
--- !u!114 &-2537191031519904044
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 0
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: MC2_Floor
|
||||||
|
m_Shader: {fileID: -6465566751694194690, guid: e0b73429f84a56840ba17b216237f806, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords:
|
||||||
|
- _DISABLE_SSR_TRANSPARENT
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 2000
|
||||||
|
stringTagMap:
|
||||||
|
MotionVector: User
|
||||||
|
disabledShaderPasses:
|
||||||
|
- TransparentDepthPrepass
|
||||||
|
- TransparentDepthPostpass
|
||||||
|
- TransparentBackface
|
||||||
|
- RayTracingPrepass
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Main:
|
||||||
|
m_Texture: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AddPrecomputedVelocity: 0
|
||||||
|
- _AlphaCutoffEnable: 0
|
||||||
|
- _AlphaDstBlend: 0
|
||||||
|
- _AlphaSrcBlend: 1
|
||||||
|
- _AlphaToMask: 0
|
||||||
|
- _AlphaToMaskInspectorValue: 0
|
||||||
|
- _BUILTIN_QueueControl: 0
|
||||||
|
- _BUILTIN_QueueOffset: 0
|
||||||
|
- _BlendMode: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ConservativeDepthOffsetEnable: 0
|
||||||
|
- _CullMode: 2
|
||||||
|
- _CullModeForward: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DepthOffsetEnable: 0
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DoubleSidedEnable: 0
|
||||||
|
- _DoubleSidedGIMode: 0
|
||||||
|
- _DoubleSidedNormalMode: 2
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EnableBlendModePreserveSpecularLighting: 1
|
||||||
|
- _EnableFogOnTransparent: 1
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OpaqueCullMode: 2
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _QueueControl: 1
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _RayTracing: 0
|
||||||
|
- _ReceivesSSR: 1
|
||||||
|
- _ReceivesSSRTransparent: 0
|
||||||
|
- _RefractionModel: 0
|
||||||
|
- _RenderQueueType: 1
|
||||||
|
- _RequireSplitLighting: 0
|
||||||
|
- _Smoothness: 0
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _StencilRef: 0
|
||||||
|
- _StencilRefDepth: 8
|
||||||
|
- _StencilRefDistortionVec: 4
|
||||||
|
- _StencilRefGBuffer: 10
|
||||||
|
- _StencilRefMV: 40
|
||||||
|
- _StencilWriteMask: 6
|
||||||
|
- _StencilWriteMaskDepth: 8
|
||||||
|
- _StencilWriteMaskDistortionVec: 4
|
||||||
|
- _StencilWriteMaskGBuffer: 14
|
||||||
|
- _StencilWriteMaskMV: 40
|
||||||
|
- _SupportDecals: 1
|
||||||
|
- _SurfaceType: 0
|
||||||
|
- _TransparentBackfaceEnable: 0
|
||||||
|
- _TransparentCullMode: 2
|
||||||
|
- _TransparentDepthPostpassEnable: 0
|
||||||
|
- _TransparentDepthPrepassEnable: 0
|
||||||
|
- _TransparentSortPriority: 0
|
||||||
|
- _TransparentWritingMotionVec: 0
|
||||||
|
- _TransparentZWrite: 0
|
||||||
|
- _UVSec: 0
|
||||||
|
- _UseShadowThreshold: 0
|
||||||
|
- _ZTestDepthEqualForOpaque: 3
|
||||||
|
- _ZTestGBuffer: 4
|
||||||
|
- _ZTestTransparent: 4
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 0.14150941, g: 0.14150941, b: 0.14150941, a: 1}
|
||||||
|
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
|
||||||
|
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _Tiling: {r: 100, g: 100, b: 0, a: 0}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_Floor.mat.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_Floor.mat.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1a8d0a0ce31bbbd49ad39beb17ee9326
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
202
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_Test_Back.mat
vendored
Normal file
202
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_Test_Back.mat
vendored
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: MC2_Test_Back
|
||||||
|
m_Shader: {fileID: -6465566751694194690, guid: b969454d26657854a8fe82c813fb0876, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords:
|
||||||
|
- _DISABLE_SSR_TRANSPARENT
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 2450
|
||||||
|
stringTagMap:
|
||||||
|
MotionVector: User
|
||||||
|
disabledShaderPasses:
|
||||||
|
- TransparentDepthPrepass
|
||||||
|
- TransparentDepthPostpass
|
||||||
|
- TransparentBackface
|
||||||
|
- RayTracingPrepass
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Main:
|
||||||
|
m_Texture: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AddPrecomputedVelocity: 0
|
||||||
|
- _AlphaCutoffEnable: 0
|
||||||
|
- _AlphaDstBlend: 0
|
||||||
|
- _AlphaSrcBlend: 1
|
||||||
|
- _AlphaToMask: 0
|
||||||
|
- _AlphaToMaskInspectorValue: 0
|
||||||
|
- _BUILTIN_QueueControl: 0
|
||||||
|
- _BUILTIN_QueueOffset: 0
|
||||||
|
- _BlendMode: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ConservativeDepthOffsetEnable: 0
|
||||||
|
- _CullMode: 1
|
||||||
|
- _CullModeForward: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DepthOffsetEnable: 0
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DoubleSidedEnable: 0
|
||||||
|
- _DoubleSidedGIMode: 0
|
||||||
|
- _DoubleSidedNormalMode: 2
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EnableBlendModePreserveSpecularLighting: 1
|
||||||
|
- _EnableFogOnTransparent: 1
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OpaqueCullMode: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _QueueControl: 1
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _RayTracing: 0
|
||||||
|
- _ReceivesSSR: 1
|
||||||
|
- _ReceivesSSRTransparent: 0
|
||||||
|
- _RefractionModel: 0
|
||||||
|
- _RenderQueueType: 1
|
||||||
|
- _RequireSplitLighting: 0
|
||||||
|
- _Smoothness: 0
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _StencilRef: 0
|
||||||
|
- _StencilRefDepth: 8
|
||||||
|
- _StencilRefDistortionVec: 4
|
||||||
|
- _StencilRefGBuffer: 10
|
||||||
|
- _StencilRefMV: 40
|
||||||
|
- _StencilWriteMask: 6
|
||||||
|
- _StencilWriteMaskDepth: 8
|
||||||
|
- _StencilWriteMaskDistortionVec: 4
|
||||||
|
- _StencilWriteMaskGBuffer: 14
|
||||||
|
- _StencilWriteMaskMV: 40
|
||||||
|
- _SupportDecals: 1
|
||||||
|
- _SurfaceType: 0
|
||||||
|
- _TransparentBackfaceEnable: 0
|
||||||
|
- _TransparentCullMode: 2
|
||||||
|
- _TransparentDepthPostpassEnable: 0
|
||||||
|
- _TransparentDepthPrepassEnable: 0
|
||||||
|
- _TransparentSortPriority: 0
|
||||||
|
- _TransparentWritingMotionVec: 0
|
||||||
|
- _TransparentZWrite: 0
|
||||||
|
- _UVSec: 0
|
||||||
|
- _UseShadowThreshold: 0
|
||||||
|
- _ZTestDepthEqualForOpaque: 3
|
||||||
|
- _ZTestGBuffer: 4
|
||||||
|
- _ZTestTransparent: 4
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
|
||||||
|
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _Tiling: {r: 1, g: 1, b: 0, a: 0}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
|
--- !u!114 &542807876330787821
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 12
|
||||||
|
hdPluginSubTargetMaterialVersions:
|
||||||
|
m_Keys: []
|
||||||
|
m_Values:
|
||||||
|
--- !u!114 &5888084634695096061
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 0
|
||||||
|
--- !u!114 &7297074712781543736
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 9
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 586d53852ab2fac4cba5cac70300497d
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
202
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_Test_Front.mat
vendored
Normal file
202
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_Test_Front.mat
vendored
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-2678523629483602278
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 9
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: MC2_Test_Front
|
||||||
|
m_Shader: {fileID: -6465566751694194690, guid: e0b73429f84a56840ba17b216237f806, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords:
|
||||||
|
- _DISABLE_SSR_TRANSPARENT
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 2000
|
||||||
|
stringTagMap:
|
||||||
|
MotionVector: User
|
||||||
|
disabledShaderPasses:
|
||||||
|
- TransparentDepthPrepass
|
||||||
|
- TransparentDepthPostpass
|
||||||
|
- TransparentBackface
|
||||||
|
- RayTracingPrepass
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Main:
|
||||||
|
m_Texture: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AddPrecomputedVelocity: 0
|
||||||
|
- _AlphaCutoffEnable: 0
|
||||||
|
- _AlphaDstBlend: 0
|
||||||
|
- _AlphaSrcBlend: 1
|
||||||
|
- _AlphaToMask: 0
|
||||||
|
- _AlphaToMaskInspectorValue: 0
|
||||||
|
- _BUILTIN_QueueControl: 0
|
||||||
|
- _BUILTIN_QueueOffset: 0
|
||||||
|
- _BlendMode: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ConservativeDepthOffsetEnable: 0
|
||||||
|
- _CullMode: 2
|
||||||
|
- _CullModeForward: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DepthOffsetEnable: 0
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DoubleSidedEnable: 0
|
||||||
|
- _DoubleSidedGIMode: 0
|
||||||
|
- _DoubleSidedNormalMode: 2
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EnableBlendModePreserveSpecularLighting: 1
|
||||||
|
- _EnableFogOnTransparent: 1
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OpaqueCullMode: 2
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _QueueControl: 1
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _RayTracing: 0
|
||||||
|
- _ReceivesSSR: 1
|
||||||
|
- _ReceivesSSRTransparent: 0
|
||||||
|
- _RefractionModel: 0
|
||||||
|
- _RenderQueueType: 1
|
||||||
|
- _RequireSplitLighting: 0
|
||||||
|
- _Smoothness: 0
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _StencilRef: 0
|
||||||
|
- _StencilRefDepth: 8
|
||||||
|
- _StencilRefDistortionVec: 4
|
||||||
|
- _StencilRefGBuffer: 10
|
||||||
|
- _StencilRefMV: 40
|
||||||
|
- _StencilWriteMask: 6
|
||||||
|
- _StencilWriteMaskDepth: 8
|
||||||
|
- _StencilWriteMaskDistortionVec: 4
|
||||||
|
- _StencilWriteMaskGBuffer: 14
|
||||||
|
- _StencilWriteMaskMV: 40
|
||||||
|
- _SupportDecals: 1
|
||||||
|
- _SurfaceType: 0
|
||||||
|
- _TransparentBackfaceEnable: 0
|
||||||
|
- _TransparentCullMode: 2
|
||||||
|
- _TransparentDepthPostpassEnable: 0
|
||||||
|
- _TransparentDepthPrepassEnable: 0
|
||||||
|
- _TransparentSortPriority: 0
|
||||||
|
- _TransparentWritingMotionVec: 0
|
||||||
|
- _TransparentZWrite: 0
|
||||||
|
- _UVSec: 0
|
||||||
|
- _UseShadowThreshold: 0
|
||||||
|
- _ZTestDepthEqualForOpaque: 3
|
||||||
|
- _ZTestGBuffer: 4
|
||||||
|
- _ZTestTransparent: 4
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _DoubleSidedConstants: {r: 1, g: 1, b: -1, a: 0}
|
||||||
|
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _Tiling: {r: 1, g: 1, b: 0, a: 0}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
|
--- !u!114 &3436996967411815949
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: da692e001514ec24dbc4cca1949ff7e8, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 12
|
||||||
|
hdPluginSubTargetMaterialVersions:
|
||||||
|
m_Keys: []
|
||||||
|
m_Values:
|
||||||
|
--- !u!114 &5888084634695096061
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 0
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e668c51d0e0125e4dbae8a37cb0d45e4
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
133
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_White.mat
vendored
Normal file
133
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_White.mat
vendored
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-39192238385914524
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 9
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: MC2_White
|
||||||
|
m_Shader: {fileID: -6465566751694194690, guid: e0b73429f84a56840ba17b216237f806, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses:
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Main:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _BUILTIN_QueueControl: 0
|
||||||
|
- _BUILTIN_QueueOffset: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _GlossMapScale: 1
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _GlossyReflections: 1
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _QueueControl: 0
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _Smoothness: 0
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _UVSec: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 0.6886792, g: 0.6886792, b: 0.6886792, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _Tiling: {r: 1, g: 1, b: 0, a: 0}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
|
--- !u!114 &5537520944958903688
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 0
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_White.mat.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Materials/MC2_White.mat.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9dc80f717b8cf0f44a1328de60c05a87
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 174ae74532988144eaa22b5d3ce3b54b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/Materials.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/Materials.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e22374f5956c7fe49ba058092885078b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
151
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/Materials/Arrow.mat
vendored
Normal file
151
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/Materials/Arrow.mat
vendored
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: Arrow
|
||||||
|
m_Shader: {fileID: -6465566751694194690, guid: e0b73429f84a56840ba17b216237f806, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses:
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties:
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _Main:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _BUILTIN_QueueControl: 0
|
||||||
|
- _BUILTIN_QueueOffset: 0
|
||||||
|
- _Blend: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 0
|
||||||
|
- _Glossiness: 0
|
||||||
|
- _GlossyReflections: 0
|
||||||
|
- _Metallic: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Parallax: 0.005
|
||||||
|
- _QueueControl: 0
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Smoothness: 0.5
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
- _Tiling: {r: 1, g: 1, b: 0, a: 0}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
|
--- !u!114 &7761228438660005603
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 9
|
||||||
|
--- !u!114 &8771852287512767389
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 639247ca83abc874e893eb93af2b5e44, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 0
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/Materials/Arrow.mat.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/Materials/Arrow.mat.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9d8e9d2536fe10f448a1440c26ec0bc3
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/arrow_b.fbx
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/arrow_b.fbx
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
97
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/arrow_b.fbx.meta
vendored
Normal file
97
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Model/arrow_b.fbx.meta
vendored
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 40f00d3ed65180f4ab14accca4d78735
|
||||||
|
ModelImporter:
|
||||||
|
serializedVersion: 23
|
||||||
|
fileIDToRecycleName:
|
||||||
|
100000: //RootNode
|
||||||
|
400000: //RootNode
|
||||||
|
2100000: Arrow
|
||||||
|
2300000: //RootNode
|
||||||
|
3300000: //RootNode
|
||||||
|
4300000: Arrow
|
||||||
|
externalObjects: {}
|
||||||
|
materials:
|
||||||
|
importMaterials: 1
|
||||||
|
materialName: 0
|
||||||
|
materialSearch: 1
|
||||||
|
materialLocation: 0
|
||||||
|
animations:
|
||||||
|
legacyGenerateAnimations: 4
|
||||||
|
bakeSimulation: 0
|
||||||
|
resampleCurves: 1
|
||||||
|
optimizeGameObjects: 0
|
||||||
|
motionNodeName:
|
||||||
|
rigImportErrors:
|
||||||
|
rigImportWarnings:
|
||||||
|
animationImportErrors:
|
||||||
|
animationImportWarnings:
|
||||||
|
animationRetargetingWarnings:
|
||||||
|
animationDoRetargetingWarnings: 0
|
||||||
|
importAnimatedCustomProperties: 0
|
||||||
|
importConstraints: 0
|
||||||
|
animationCompression: 1
|
||||||
|
animationRotationError: 0.5
|
||||||
|
animationPositionError: 0.5
|
||||||
|
animationScaleError: 0.5
|
||||||
|
animationWrapMode: 0
|
||||||
|
extraExposedTransformPaths: []
|
||||||
|
extraUserProperties: []
|
||||||
|
clipAnimations: []
|
||||||
|
isReadable: 1
|
||||||
|
meshes:
|
||||||
|
lODScreenPercentages: []
|
||||||
|
globalScale: 1
|
||||||
|
meshCompression: 0
|
||||||
|
addColliders: 0
|
||||||
|
useSRGBMaterialColor: 1
|
||||||
|
importVisibility: 1
|
||||||
|
importBlendShapes: 1
|
||||||
|
importCameras: 1
|
||||||
|
importLights: 1
|
||||||
|
swapUVChannels: 0
|
||||||
|
generateSecondaryUV: 0
|
||||||
|
useFileUnits: 1
|
||||||
|
optimizeMeshForGPU: 1
|
||||||
|
keepQuads: 0
|
||||||
|
weldVertices: 1
|
||||||
|
preserveHierarchy: 0
|
||||||
|
indexFormat: 0
|
||||||
|
secondaryUVAngleDistortion: 8
|
||||||
|
secondaryUVAreaDistortion: 15.000001
|
||||||
|
secondaryUVHardAngle: 88
|
||||||
|
secondaryUVPackMargin: 4
|
||||||
|
useFileScale: 1
|
||||||
|
previousCalculatedGlobalScale: 1
|
||||||
|
hasPreviousCalculatedGlobalScale: 0
|
||||||
|
tangentSpace:
|
||||||
|
normalSmoothAngle: 60
|
||||||
|
normalImportMode: 0
|
||||||
|
tangentImportMode: 3
|
||||||
|
normalCalculationMode: 4
|
||||||
|
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
|
||||||
|
blendShapeNormalImportMode: 1
|
||||||
|
normalSmoothingSource: 0
|
||||||
|
importAnimation: 1
|
||||||
|
copyAvatar: 0
|
||||||
|
humanDescription:
|
||||||
|
serializedVersion: 2
|
||||||
|
human: []
|
||||||
|
skeleton: []
|
||||||
|
armTwist: 0.5
|
||||||
|
foreArmTwist: 0.5
|
||||||
|
upperLegTwist: 0.5
|
||||||
|
legTwist: 0.5
|
||||||
|
armStretch: 0.05
|
||||||
|
legStretch: 0.05
|
||||||
|
feetSpacing: 0
|
||||||
|
rootMotionBoneName:
|
||||||
|
hasTranslationDoF: 0
|
||||||
|
hasExtraRoot: 0
|
||||||
|
skeletonHasParents: 1
|
||||||
|
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||||
|
animationType: 0
|
||||||
|
humanoidOversampling: 1
|
||||||
|
additionalBone: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f43ab23790f02b24aa62d451e140d7ce
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Cube.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Cube.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Cube.prefab.meta
vendored
Normal file
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Cube.prefab.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: baaebd372fee4154e9b08570bc3a230e
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/CubeRoup.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/CubeRoup.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/CubeRoup.prefab.meta
vendored
Normal file
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/CubeRoup.prefab.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1950e99f479bef04581d5185a7cf27b3
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Env.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Env.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Env.prefab.meta
vendored
Normal file
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Env.prefab.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b5bac44e9cdf69541b2d1de75e68a9ba
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Plane.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Plane.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Plane.prefab.meta
vendored
Normal file
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Plane.prefab.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f6e49ec628143df48a1d0a213fc770af
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/RuntimeBuildDemo.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/RuntimeBuildDemo.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 57eb8094dff10c34f8fae441c280e0f8
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/RuntimeDressUpDemo.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/RuntimeDressUpDemo.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bca76fc2423c0a14db7d44f7745ab286
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/SimpleImputManager.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/SimpleImputManager.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e35153ae4a19fa24289b796a4290d4db
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Stage.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Stage.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Stage.prefab.meta
vendored
Normal file
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/Stage.prefab.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 23be23f56fcb4ac48ac4de26c111e332
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_KAGURA.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_KAGURA.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_KAGURA.prefab.meta
vendored
Normal file
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_KAGURA.prefab.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 94ed6a8f5c3a2ba4d8c93972af7467f0
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_RuntimeBuild.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_RuntimeBuild.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0b388bd66f5736b4891ceafcaee539a4
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_RuntimeDressUp.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_RuntimeDressUp.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 228b0487b4c6f43448267a8277251bc6
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_Wind.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_Wind.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_Wind.prefab.meta
vendored
Normal file
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/UI_Wind.prefab.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b10f69e1744a07942843e8c00f85501e
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/WindDemo.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/WindDemo.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/WindDemo.prefab.meta
vendored
Normal file
7
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/WindDemo.prefab.meta
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c421f5fd48afe284da1a2c74a043723b
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/WindParticle.prefab
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Prefabs/WindParticle.prefab
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9f50911cfd816e840860425faa5cec57
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Resources.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Resources.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 983f0ab2563c0d34eb966719207674dc
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Resources/MC2_BoneCloth_Ribbon_Demo.json
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Resources/MC2_BoneCloth_Ribbon_Demo.json
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9cb18a57f012d144480f025bca639032
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2ccf7a2872d9e554ea3511882b07a3e7
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
41
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/AutoRotate.cs
vendored
Normal file
41
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/AutoRotate.cs
vendored
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
public class AutoRotate : MonoBehaviour
|
||||||
|
{
|
||||||
|
public Vector3 eulers = new Vector3(0, 90, 0);
|
||||||
|
public Space space = Space.World;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
[Range(0.1f, 5.0f)]
|
||||||
|
private float interval = 2.0f;
|
||||||
|
|
||||||
|
public bool useSin = true;
|
||||||
|
|
||||||
|
|
||||||
|
private float time = 0;
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (useSin)
|
||||||
|
{
|
||||||
|
time += Time.deltaTime;
|
||||||
|
float ang = (time % interval) / interval * Mathf.PI * 2.0f;
|
||||||
|
var t = Mathf.Sin(ang);
|
||||||
|
if (space == Space.World)
|
||||||
|
transform.eulerAngles = eulers * t;
|
||||||
|
else
|
||||||
|
transform.localEulerAngles = eulers * t;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
transform.Rotate(eulers * Time.deltaTime, space);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
12
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/AutoRotate.cs.meta
vendored
Normal file
12
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/AutoRotate.cs.meta
vendored
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4124c59241137374c9cae45d25683042
|
||||||
|
timeCreated: 1510336570
|
||||||
|
licenseType: Store
|
||||||
|
MonoImporter:
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
244
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/CameraOrbit.cs
vendored
Normal file
244
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/CameraOrbit.cs
vendored
Normal file
@ -0,0 +1,244 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// カメラ回転
|
||||||
|
/// </summary>
|
||||||
|
public class CameraOrbit : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private Transform cameraTransform;
|
||||||
|
|
||||||
|
[Header("Camera Target")]
|
||||||
|
public Transform cameraTarget;
|
||||||
|
public Vector3 cameraTargetPos;
|
||||||
|
public Vector3 cameraTargetOffset;
|
||||||
|
|
||||||
|
[Header("Now Position")]
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraDist = 1.5f;
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraPitch = 21.0f;
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraYaw = 180.0f;
|
||||||
|
|
||||||
|
[Header("Parameter")]
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraDistHokanTime = 0.1f;
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraAngleHokanTime = 0.1f;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraDistSpeed = 0.02f;
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraDistMax = 8.0f;
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraDistMin = 0.1f;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraYawSpeed = 0.3f;
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraPitchSpeed = 0.3f;
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraMaxAngleSpeed = 100.0f;
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraPitchMax = 89.0f;
|
||||||
|
[SerializeField]
|
||||||
|
private float cameraPitchMin = -89.0f;
|
||||||
|
|
||||||
|
// 中ボタンドラッグによる移動
|
||||||
|
public enum MoveMode
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
UpDown,
|
||||||
|
Free,
|
||||||
|
}
|
||||||
|
[SerializeField]
|
||||||
|
private MoveMode moveMode = MoveMode.Free;
|
||||||
|
[SerializeField]
|
||||||
|
private float moveSpeed = 0.002f;
|
||||||
|
|
||||||
|
// 自動回転
|
||||||
|
[Header("Auto Rotation")]
|
||||||
|
[SerializeField]
|
||||||
|
private bool useAutoRotation = false;
|
||||||
|
[SerializeField]
|
||||||
|
private float autoRotationSpeed = 90.0f;
|
||||||
|
|
||||||
|
|
||||||
|
// 移動作業用
|
||||||
|
private float setCameraDist;
|
||||||
|
private float setCameraPitch;
|
||||||
|
private float setCameraYaw;
|
||||||
|
private float cameraDistVelocity;
|
||||||
|
private float cameraPitchVelocity;
|
||||||
|
private float cameraYawVelocity;
|
||||||
|
private float offsetYaw;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
if (cameraTransform == null)
|
||||||
|
{
|
||||||
|
var cam = GetComponent<Camera>();
|
||||||
|
if (cam)
|
||||||
|
cameraTransform = cam.transform;
|
||||||
|
}
|
||||||
|
if (cameraTransform == null)
|
||||||
|
enabled = false;
|
||||||
|
|
||||||
|
setCameraDist = cameraDist;
|
||||||
|
setCameraPitch = cameraPitch;
|
||||||
|
setCameraYaw = cameraYaw;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnEnable()
|
||||||
|
{
|
||||||
|
// 入力イベント登録
|
||||||
|
SimpleInputManager.OnTouchMove += OnTouchMove;
|
||||||
|
SimpleInputManager.OnDoubleTouchMove += OnDoubleTouchMove;
|
||||||
|
SimpleInputManager.OnTouchPinch += OnTouchPinch;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDisable()
|
||||||
|
{
|
||||||
|
// 入力イベント解除
|
||||||
|
SimpleInputManager.OnTouchMove -= OnTouchMove;
|
||||||
|
SimpleInputManager.OnDoubleTouchMove -= OnDoubleTouchMove;
|
||||||
|
SimpleInputManager.OnTouchPinch -= OnTouchPinch;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LateUpdate()
|
||||||
|
{
|
||||||
|
// カメラ更新
|
||||||
|
updateCamera();
|
||||||
|
}
|
||||||
|
|
||||||
|
// カメラ更新
|
||||||
|
private void updateCamera()
|
||||||
|
{
|
||||||
|
if (cameraTransform == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// カメラターゲットポジション
|
||||||
|
if (cameraTarget)
|
||||||
|
{
|
||||||
|
cameraTargetPos = cameraTarget.position;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 補間
|
||||||
|
cameraDist = Mathf.SmoothDamp(cameraDist, setCameraDist, ref cameraDistVelocity, cameraDistHokanTime);
|
||||||
|
cameraPitch = Mathf.SmoothDampAngle(cameraPitch, setCameraPitch, ref cameraPitchVelocity, cameraAngleHokanTime);
|
||||||
|
cameraYaw = Mathf.SmoothDampAngle(cameraYaw, setCameraYaw, ref cameraYawVelocity, cameraAngleHokanTime);
|
||||||
|
|
||||||
|
// 自動回転
|
||||||
|
if (useAutoRotation)
|
||||||
|
{
|
||||||
|
offsetYaw += autoRotationSpeed * Time.deltaTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 座標確定
|
||||||
|
Quaternion q = Quaternion.Euler(cameraPitch, cameraYaw + offsetYaw, 0);
|
||||||
|
q = transform.rotation * q; // コンポーネントの回転
|
||||||
|
Vector3 v = new Vector3(0, 0, -cameraDist);
|
||||||
|
Vector3 pos = q * v;
|
||||||
|
|
||||||
|
// ターゲットポジション
|
||||||
|
Vector3 tarpos = cameraTargetPos + cameraTargetOffset;
|
||||||
|
Vector3 fixpos = tarpos + pos;
|
||||||
|
cameraTransform.localPosition = fixpos;
|
||||||
|
|
||||||
|
// 回転確定
|
||||||
|
Vector3 relativePos = tarpos - cameraTransform.position;
|
||||||
|
Quaternion rot = Quaternion.LookRotation(relativePos);
|
||||||
|
cameraTransform.rotation = rot;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 回転操作
|
||||||
|
private void updatePitchYaw(Vector2 speed)
|
||||||
|
{
|
||||||
|
// Yaw
|
||||||
|
setCameraYaw += speed.x * cameraYawSpeed;
|
||||||
|
|
||||||
|
// Pitch
|
||||||
|
setCameraPitch += -speed.y * cameraPitchSpeed;
|
||||||
|
setCameraPitch = Mathf.Clamp(setCameraPitch, cameraPitchMin, cameraPitchMax);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 移動操作
|
||||||
|
private void updateOffset(Vector2 speed)
|
||||||
|
{
|
||||||
|
if (cameraTransform == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (moveMode == MoveMode.UpDown)
|
||||||
|
{
|
||||||
|
cameraTargetOffset.y -= speed.y * moveSpeed;
|
||||||
|
}
|
||||||
|
else if (moveMode == MoveMode.Free)
|
||||||
|
{
|
||||||
|
Vector3 offset = cameraTransform.up * -speed.y * moveSpeed;
|
||||||
|
offset += cameraTransform.right * -speed.x * moveSpeed;
|
||||||
|
|
||||||
|
cameraTargetOffset += offset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ズーム操作
|
||||||
|
private void updateZoom(float speed)
|
||||||
|
{
|
||||||
|
float value = speed * cameraDistSpeed;
|
||||||
|
float scl = Mathf.InverseLerp(cameraDistMin, cameraDistMax, setCameraDist);
|
||||||
|
scl = Mathf.Clamp(scl, 0.1f, 1.0f);
|
||||||
|
setCameraDist -= value * scl;
|
||||||
|
setCameraDist = Mathf.Clamp(setCameraDist, cameraDistMin, cameraDistMax);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=============================================================================================
|
||||||
|
/// <summary>
|
||||||
|
/// 入力通知:移動
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="screenPos"></param>
|
||||||
|
/// <param name="screenVelocity"></param>
|
||||||
|
private void OnTouchMove(int fid, Vector2 screenPos, Vector2 screenVelocity, Vector2 cmVelocity)
|
||||||
|
{
|
||||||
|
screenVelocity *= Time.deltaTime * 60.0f;
|
||||||
|
|
||||||
|
if (fid == 2)
|
||||||
|
{
|
||||||
|
// 中ドラッグ
|
||||||
|
updateOffset(screenVelocity);
|
||||||
|
}
|
||||||
|
else if (fid == 0)
|
||||||
|
{
|
||||||
|
// 左ドラッグ
|
||||||
|
// 最大速度
|
||||||
|
screenVelocity = Vector2.ClampMagnitude(screenVelocity, cameraMaxAngleSpeed);
|
||||||
|
updatePitchYaw(screenVelocity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDoubleTouchMove(int fid, Vector2 screenPos, Vector2 screenVelocity, Vector2 cmVelocity)
|
||||||
|
{
|
||||||
|
if (SimpleInputManager.Instance.GetTouchCount() >= 3)
|
||||||
|
updateOffset(screenVelocity);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 入力通知:ピンチイン/アウト
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="speedscr"></param>
|
||||||
|
/// <param name="speedcm"></param>
|
||||||
|
private void OnTouchPinch(float speedscr, float speedcm)
|
||||||
|
{
|
||||||
|
//if (Mathf.Abs(speedcm) > 1.0f)
|
||||||
|
if (SimpleInputManager.Instance.GetTouchCount() < 3)
|
||||||
|
updateZoom(speedcm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/CameraOrbit.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/CameraOrbit.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1fd18111ed866534a92d0a2a59d1608d
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
134
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/CreateSingleton.cs
vendored
Normal file
134
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/CreateSingleton.cs
vendored
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 基本的なシングルトンテンプレート
|
||||||
|
/// ・シーンに無い場合は作成する
|
||||||
|
/// ・自動初期化呼び出し機能
|
||||||
|
/// ・DontDestroyOnLoad設定
|
||||||
|
/// ・実行前でもInstanceアクセス可能
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
public abstract class CreateSingleton<T> : MonoBehaviour where T : MonoBehaviour
|
||||||
|
{
|
||||||
|
private static T instance;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初期化フラグ
|
||||||
|
/// </summary>
|
||||||
|
private static T initInstance;
|
||||||
|
|
||||||
|
private static bool isDestroy;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reload Domain 対応
|
||||||
|
/// ※残念ながらジェネリッククラスでは[RuntimeInitializeOnLoadMethod]が利用できないため、
|
||||||
|
/// この初期化関数を派生元で[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
|
||||||
|
/// を使用して呼び出さなければならない
|
||||||
|
/// </summary>
|
||||||
|
protected static void InitMember()
|
||||||
|
{
|
||||||
|
instance = null;
|
||||||
|
initInstance = null;
|
||||||
|
isDestroy = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static T Instance
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (instance == null)
|
||||||
|
{
|
||||||
|
// FindObjectOfTypeはそれなりに負荷がかかるので注意!
|
||||||
|
// 非アクティブのオブジェクトは発見できないので注意!
|
||||||
|
#if UNITY_2023_1_OR_NEWER
|
||||||
|
instance = FindFirstObjectByType<T>();
|
||||||
|
#else
|
||||||
|
instance = FindObjectOfType<T>();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (instance == null && Application.isPlaying)
|
||||||
|
{
|
||||||
|
var obj = new GameObject(typeof(T).Name);
|
||||||
|
instance = obj.AddComponent<T>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初期化
|
||||||
|
InitInstance();
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void InitInstance()
|
||||||
|
{
|
||||||
|
if (initInstance == null && instance != null && Application.isPlaying)
|
||||||
|
{
|
||||||
|
// シーン切り替えでもオブジェクトが消えないように設定
|
||||||
|
//DontDestroyOnLoad(instance.gameObject);
|
||||||
|
|
||||||
|
// 初期化呼び出し
|
||||||
|
var s = instance as CreateSingleton<T>;
|
||||||
|
s.InitSingleton();
|
||||||
|
|
||||||
|
initInstance = instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// インスタンスが存在する場合にTrueを返します
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static bool IsInstance()
|
||||||
|
{
|
||||||
|
return instance != null && isDestroy == false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Awake()でのインスタンス設定
|
||||||
|
/// </summary>
|
||||||
|
protected virtual void Awake()
|
||||||
|
{
|
||||||
|
if (instance == null)
|
||||||
|
{
|
||||||
|
instance = this as T;
|
||||||
|
InitInstance();
|
||||||
|
}
|
||||||
|
else if (instance != this)
|
||||||
|
{
|
||||||
|
// 2つ目のコンポーネントを発見
|
||||||
|
var s = instance as CreateSingleton<T>;
|
||||||
|
s.DuplicateDetection(this as T);
|
||||||
|
|
||||||
|
// 2つ目のコンポーネントは破棄する
|
||||||
|
Destroy(this.gameObject);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void OnDestroy()
|
||||||
|
{
|
||||||
|
// インスタンスクラスならば無効化フラグを立てる
|
||||||
|
if (instance == this)
|
||||||
|
{
|
||||||
|
isDestroy = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 2つ目の破棄されるコンポーネントを通知
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="duplicate"></param>
|
||||||
|
protected virtual void DuplicateDetection(T duplicate) { }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 内部初期化
|
||||||
|
/// </summary>
|
||||||
|
protected abstract void InitSingleton();
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/CreateSingleton.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/CreateSingleton.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0d1b801c369005647ae0e5a315e0bdaf
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/Editor.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/Editor.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 776d5a1b173ef154c9bef26d30c53fcc
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/Editor/ShaderGraph.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/Editor/ShaderGraph.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 347fb6ccc378d9442a92b5316d0ff7c9
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"name": "MagicaCloth2UPMImporterShaderGraph",
|
||||||
|
"rootNamespace": "",
|
||||||
|
"references": [],
|
||||||
|
"includePlatforms": [
|
||||||
|
"Editor"
|
||||||
|
],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [
|
||||||
|
"!MC2_SHADERGRAPH"
|
||||||
|
],
|
||||||
|
"versionDefines": [
|
||||||
|
{
|
||||||
|
"name": "com.unity.shadergraph",
|
||||||
|
"expression": "12.0.0",
|
||||||
|
"define": "MC2_SHADERGRAPH"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 34d2974f64e7a9f49a48b400abf046ff
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.PackageManager;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2UPMImporterCollections
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 必要なUnityPackageの自動インストール
|
||||||
|
/// </summary>
|
||||||
|
[InitializeOnLoad]
|
||||||
|
public static class UnityPackageImporter
|
||||||
|
{
|
||||||
|
static UnityPackageImporter()
|
||||||
|
{
|
||||||
|
Install("com.unity.shadergraph");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool Install(string id)
|
||||||
|
{
|
||||||
|
Debug.Log($"Install...{id}");
|
||||||
|
var request = Client.Add(id);
|
||||||
|
while (!request.IsCompleted) { };
|
||||||
|
if (request.Error != null) Debug.LogError(request.Error.message);
|
||||||
|
return request.Error == null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dd5d6386919360640adca6564193a8f5
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
44
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/GameObjectContainer.cs
vendored
Normal file
44
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/GameObjectContainer.cs
vendored
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
public class GameObjectContainer : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private List<GameObject> gameObjectList = new List<GameObject>();
|
||||||
|
|
||||||
|
|
||||||
|
private Dictionary<string, GameObject> gameObjectDict = new Dictionary<string, GameObject>();
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
// create dictionary.
|
||||||
|
foreach (var obj in gameObjectList)
|
||||||
|
{
|
||||||
|
if (obj)
|
||||||
|
{
|
||||||
|
gameObjectDict.Add(obj.name, obj);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Contains(string objName)
|
||||||
|
{
|
||||||
|
return gameObjectDict.ContainsKey(objName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GameObject GetGameObject(string objName)
|
||||||
|
{
|
||||||
|
if (gameObjectDict.ContainsKey(objName))
|
||||||
|
{
|
||||||
|
return gameObjectDict[objName];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/GameObjectContainer.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/GameObjectContainer.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4357444b3effcf149a7c0557d3c4ddc5
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
85
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/ModelController.cs
vendored
Normal file
85
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/ModelController.cs
vendored
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
public class ModelController : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private List<GameObject> characterList = new List<GameObject>();
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private float slowTime = 0.1f;
|
||||||
|
|
||||||
|
private bool slow;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AnimatorAction(System.Action<Animator> act)
|
||||||
|
{
|
||||||
|
foreach (var chara in characterList)
|
||||||
|
{
|
||||||
|
if (chara && chara.activeInHierarchy)
|
||||||
|
{
|
||||||
|
var animator = chara.GetComponent<Animator>();
|
||||||
|
if (animator)
|
||||||
|
{
|
||||||
|
act(animator);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ClothAction(System.Action<MagicaCloth> act)
|
||||||
|
{
|
||||||
|
foreach (var chara in characterList)
|
||||||
|
{
|
||||||
|
if (chara && chara.activeInHierarchy)
|
||||||
|
{
|
||||||
|
var clothList = chara.GetComponentsInChildren<MagicaCloth>(true);
|
||||||
|
if (clothList != null)
|
||||||
|
{
|
||||||
|
foreach (var cloth in clothList)
|
||||||
|
{
|
||||||
|
act(cloth);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnNextButton()
|
||||||
|
{
|
||||||
|
AnimatorAction((ani) => ani.SetTrigger("Next"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnBackButton()
|
||||||
|
{
|
||||||
|
AnimatorAction((ani) => ani.SetTrigger("Back"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnSlowButton()
|
||||||
|
{
|
||||||
|
slow = !slow;
|
||||||
|
|
||||||
|
float timeScale = slow ? slowTime : 1.0f;
|
||||||
|
|
||||||
|
AnimatorAction((ani) => ani.speed = timeScale);
|
||||||
|
ClothAction((cloth) => cloth.SetTimeScale(timeScale));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnActiveButton()
|
||||||
|
{
|
||||||
|
ClothAction((cloth) => cloth.gameObject.SetActive(!cloth.gameObject.activeSelf));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/ModelController.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/ModelController.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 49572a6b5327127438636ad59bdb9226
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
259
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/RuntimeBuildDemo.cs
vendored
Normal file
259
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/RuntimeBuildDemo.cs
vendored
Normal file
@ -0,0 +1,259 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// A sample that builds MagicaCloth at runtime.
|
||||||
|
/// </summary>
|
||||||
|
public class RuntimeBuildDemo : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private GameObject characterPrefab;
|
||||||
|
[SerializeField]
|
||||||
|
private MagicaCloth frontHairSource;
|
||||||
|
[SerializeField]
|
||||||
|
private string ribbonPresetName;
|
||||||
|
[SerializeField]
|
||||||
|
private string skirtName;
|
||||||
|
[SerializeField]
|
||||||
|
private Texture2D skirtPaintMap;
|
||||||
|
|
||||||
|
GameObject character;
|
||||||
|
GameObjectContainer gameObjectContainer;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnCreateButton()
|
||||||
|
{
|
||||||
|
if (character)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Generate a character from a prefab.
|
||||||
|
GenerateCharacter();
|
||||||
|
|
||||||
|
// BoneCloth construction example (1).
|
||||||
|
SetupHairTail_BoneCloth();
|
||||||
|
|
||||||
|
// BoneCloth construction example (2).
|
||||||
|
SetupFrontHair_BoneCloth();
|
||||||
|
|
||||||
|
// BoneCloth construction example (3).
|
||||||
|
SetupRibbon_BoneCloth();
|
||||||
|
|
||||||
|
// MeshCloth construction example (1).
|
||||||
|
SetupSkirt_MeshCloth();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnRemoveButton()
|
||||||
|
{
|
||||||
|
if (character)
|
||||||
|
{
|
||||||
|
Destroy(character);
|
||||||
|
character = null;
|
||||||
|
gameObjectContainer = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Generate a character from a prefab.
|
||||||
|
/// A character already contains a<GameObjectContainer> to reference a GameObject.
|
||||||
|
/// This component is optional.
|
||||||
|
/// It's just there to help with data construction.
|
||||||
|
/// </summary>
|
||||||
|
void GenerateCharacter()
|
||||||
|
{
|
||||||
|
if (characterPrefab)
|
||||||
|
{
|
||||||
|
character = Instantiate(characterPrefab, transform);
|
||||||
|
gameObjectContainer = character.GetComponent<GameObjectContainer>();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// BoneCloth construction example (1).
|
||||||
|
/// Set all parameters from a script.
|
||||||
|
/// </summary>
|
||||||
|
void SetupHairTail_BoneCloth()
|
||||||
|
{
|
||||||
|
if (character == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var obj = new GameObject("HairTail_BoneCloth");
|
||||||
|
obj.transform.SetParent(character.transform, false);
|
||||||
|
|
||||||
|
// add Magica Cloth
|
||||||
|
var cloth = obj.AddComponent<MagicaCloth>();
|
||||||
|
var sdata = cloth.SerializeData;
|
||||||
|
|
||||||
|
// bone cloth
|
||||||
|
sdata.clothType = ClothProcess.ClothType.BoneCloth;
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_L_HairTail_00_B").transform);
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_R_HairTail_00_B").transform);
|
||||||
|
|
||||||
|
// setup parameters
|
||||||
|
sdata.gravity = 3.0f;
|
||||||
|
sdata.damping.SetValue(0.05f);
|
||||||
|
sdata.angleRestorationConstraint.stiffness.SetValue(0.15f, 1.0f, 0.15f, true);
|
||||||
|
sdata.angleRestorationConstraint.velocityAttenuation = 0.6f;
|
||||||
|
sdata.tetherConstraint.distanceCompression = 0.5f;
|
||||||
|
sdata.inertiaConstraint.particleSpeedLimit.SetValue(true, 3.0f);
|
||||||
|
sdata.colliderCollisionConstraint.mode = ColliderCollisionConstraint.Mode.None;
|
||||||
|
|
||||||
|
// start build
|
||||||
|
cloth.BuildAndRun();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// BoneCloth construction example (2).
|
||||||
|
/// Copy parameters from an existing component.
|
||||||
|
/// </summary>
|
||||||
|
void SetupFrontHair_BoneCloth()
|
||||||
|
{
|
||||||
|
if (character == null || frontHairSource == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var obj = new GameObject("HairFront_BoneCloth");
|
||||||
|
obj.transform.SetParent(character.transform, false);
|
||||||
|
|
||||||
|
// add Magica Cloth
|
||||||
|
var cloth = obj.AddComponent<MagicaCloth>();
|
||||||
|
var sdata = cloth.SerializeData;
|
||||||
|
|
||||||
|
// bone cloth
|
||||||
|
sdata.clothType = ClothProcess.ClothType.BoneCloth;
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_L_HairFront_00_B").transform);
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_L_HairSide2_00_B").transform);
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_L_HairSide_00_B").transform);
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_R_HairFront_00_B").transform);
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_R_HairSide2_00_B").transform);
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_R_HairSide_00_B").transform);
|
||||||
|
|
||||||
|
// Normal direction setting for backstop
|
||||||
|
sdata.normalAlignmentSetting.alignmentMode = NormalAlignmentSettings.AlignmentMode.Transform;
|
||||||
|
sdata.normalAlignmentSetting.adjustmentTransform = gameObjectContainer.GetGameObject("HeadCenter").transform;
|
||||||
|
|
||||||
|
// setup parameters
|
||||||
|
// Copy from source settings
|
||||||
|
sdata.Import(frontHairSource, false);
|
||||||
|
|
||||||
|
// start build
|
||||||
|
cloth.BuildAndRun();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// BoneCloth construction example (3).
|
||||||
|
/// Load parameters from saved presets.
|
||||||
|
/// </summary>
|
||||||
|
void SetupRibbon_BoneCloth()
|
||||||
|
{
|
||||||
|
if (character == null || string.IsNullOrEmpty(ribbonPresetName))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var obj = new GameObject("Ribbon_BoneCloth");
|
||||||
|
obj.transform.SetParent(character.transform, false);
|
||||||
|
|
||||||
|
// add Magica Cloth
|
||||||
|
var cloth = obj.AddComponent<MagicaCloth>();
|
||||||
|
var sdata = cloth.SerializeData;
|
||||||
|
|
||||||
|
// bone cloth
|
||||||
|
sdata.clothType = ClothProcess.ClothType.BoneCloth;
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_L_HeadRibbon_00_B").transform);
|
||||||
|
sdata.rootBones.Add(gameObjectContainer.GetGameObject("J_R_HeadRibbon_00_B").transform);
|
||||||
|
|
||||||
|
// setup parameters
|
||||||
|
// Load presets from the Resource folder.
|
||||||
|
// Since presets are in TextAssets format, they can also be used as asset bundles.
|
||||||
|
var presetText = Resources.Load<TextAsset>(ribbonPresetName);
|
||||||
|
sdata.ImportJson(presetText.text);
|
||||||
|
|
||||||
|
// start build
|
||||||
|
cloth.BuildAndRun();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MeshCloth construction example (1).
|
||||||
|
/// Reads vertex attributes from a paintmap.
|
||||||
|
/// </summary>
|
||||||
|
void SetupSkirt_MeshCloth()
|
||||||
|
{
|
||||||
|
if (character == null || skirtPaintMap == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// skirt renderer
|
||||||
|
var sobj = gameObjectContainer.GetGameObject(skirtName);
|
||||||
|
if (sobj == null)
|
||||||
|
return;
|
||||||
|
Renderer skirtRenderer = sobj.GetComponent<Renderer>();
|
||||||
|
if (skirtRenderer == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// add Magica Cloth
|
||||||
|
var obj = new GameObject("Skirt_MeshCloth");
|
||||||
|
obj.transform.SetParent(character.transform, false);
|
||||||
|
var cloth = obj.AddComponent<MagicaCloth>();
|
||||||
|
var sdata = cloth.SerializeData;
|
||||||
|
|
||||||
|
// mesh cloth
|
||||||
|
sdata.clothType = ClothProcess.ClothType.MeshCloth;
|
||||||
|
sdata.sourceRenderers.Add(skirtRenderer);
|
||||||
|
|
||||||
|
// reduction settings
|
||||||
|
sdata.reductionSetting.simpleDistance = 0.0212f;
|
||||||
|
sdata.reductionSetting.shapeDistance = 0.0244f;
|
||||||
|
|
||||||
|
// paint map settings
|
||||||
|
// *** Paintmaps must have Read/Write attributes enabled! ***
|
||||||
|
sdata.paintMode = ClothSerializeData.PaintMode.Texture_Fixed_Move;
|
||||||
|
sdata.paintMaps.Add(skirtPaintMap);
|
||||||
|
|
||||||
|
// setup parameters
|
||||||
|
sdata.gravity = 1.0f;
|
||||||
|
sdata.damping.SetValue(0.03f);
|
||||||
|
sdata.angleRestorationConstraint.stiffness.SetValue(0.05f, 1.0f, 0.5f, true);
|
||||||
|
sdata.angleRestorationConstraint.velocityAttenuation = 0.5f;
|
||||||
|
sdata.angleLimitConstraint.useAngleLimit = true;
|
||||||
|
sdata.angleLimitConstraint.limitAngle.SetValue(45.0f, 0.0f, 1.0f, true);
|
||||||
|
sdata.distanceConstraint.stiffness.SetValue(0.5f, 1.0f, 0.5f, true);
|
||||||
|
sdata.tetherConstraint.distanceCompression = 0.9f;
|
||||||
|
sdata.inertiaConstraint.depthInertia = 0.7f;
|
||||||
|
sdata.inertiaConstraint.movementSpeedLimit.SetValue(true, 3.0f);
|
||||||
|
sdata.inertiaConstraint.particleSpeedLimit.SetValue(true, 3.0f);
|
||||||
|
sdata.colliderCollisionConstraint.mode = ColliderCollisionConstraint.Mode.Point;
|
||||||
|
|
||||||
|
// setup collider
|
||||||
|
var lobj = new GameObject("CapsuleCollider_L");
|
||||||
|
lobj.transform.SetParent(gameObjectContainer.GetGameObject("Character1_LeftUpLeg").transform);
|
||||||
|
lobj.transform.localPosition = new Vector3(0.0049f, 0.0f, -0.0832f);
|
||||||
|
lobj.transform.localEulerAngles = new Vector3(0.23f, 16.376f, -0.028f);
|
||||||
|
var colliderL = lobj.AddComponent<MagicaCapsuleCollider>();
|
||||||
|
colliderL.direction = MagicaCapsuleCollider.Direction.Z;
|
||||||
|
colliderL.SetSize(0.082f, 0.094f, 0.3f);
|
||||||
|
|
||||||
|
var robj = new GameObject("CapsuleCollider_R");
|
||||||
|
robj.transform.SetParent(gameObjectContainer.GetGameObject("Character1_RightUpLeg").transform);
|
||||||
|
robj.transform.localPosition = new Vector3(-0.0049f, 0.0f, -0.0832f);
|
||||||
|
robj.transform.localEulerAngles = new Vector3(0.23f, -16.376f, -0.028f);
|
||||||
|
var colliderR = robj.AddComponent<MagicaCapsuleCollider>();
|
||||||
|
colliderR.direction = MagicaCapsuleCollider.Direction.Z;
|
||||||
|
colliderR.SetSize(0.082f, 0.094f, 0.3f);
|
||||||
|
|
||||||
|
sdata.colliderCollisionConstraint.colliderList.Add(colliderL);
|
||||||
|
sdata.colliderCollisionConstraint.colliderList.Add(colliderR);
|
||||||
|
|
||||||
|
// start build
|
||||||
|
cloth.BuildAndRun();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/RuntimeBuildDemo.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/RuntimeBuildDemo.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d0126e2925cecdf4a933c28a27f415ac
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
220
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/RuntimeDressUpDemo.cs
vendored
Normal file
220
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/RuntimeDressUpDemo.cs
vendored
Normal file
@ -0,0 +1,220 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Dress-up sample.
|
||||||
|
/// </summary>
|
||||||
|
public class RuntimeDressUpDemo : MonoBehaviour
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Avatar to change clothes.
|
||||||
|
/// </summary>
|
||||||
|
public GameObject targetAvatar;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Hair prefab with MagicaCloth set in advance.
|
||||||
|
/// </summary>
|
||||||
|
public GameObject hariEqupPrefab;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clothes prefab with MagicaCloth set in advance.
|
||||||
|
/// </summary>
|
||||||
|
public GameObject bodyEquipPrefab;
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
/// <summary>
|
||||||
|
/// Bones dictionary of avatars to dress up.
|
||||||
|
/// </summary>
|
||||||
|
Dictionary<string, Transform> targetAvatarBoneMap = new Dictionary<string, Transform>();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Information class for canceling dress-up.
|
||||||
|
/// </summary>
|
||||||
|
class EquipInfo
|
||||||
|
{
|
||||||
|
public GameObject equipObject;
|
||||||
|
public List<ColliderComponent> colliderList;
|
||||||
|
|
||||||
|
public bool IsValid() => equipObject != null;
|
||||||
|
}
|
||||||
|
EquipInfo hairEquipInfo = new EquipInfo();
|
||||||
|
EquipInfo bodyEquipInfo = new EquipInfo();
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
public void OnHairEquipButton()
|
||||||
|
{
|
||||||
|
if (hairEquipInfo.IsValid())
|
||||||
|
Remove(hairEquipInfo);
|
||||||
|
else
|
||||||
|
Equip(hariEqupPrefab, hairEquipInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnBodyEquipButton()
|
||||||
|
{
|
||||||
|
if (bodyEquipInfo.IsValid())
|
||||||
|
Remove(bodyEquipInfo);
|
||||||
|
else
|
||||||
|
Equip(bodyEquipPrefab, bodyEquipInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
/// <summary>
|
||||||
|
/// Create an avatar bone dictionary in advance.
|
||||||
|
/// </summary>
|
||||||
|
void Init()
|
||||||
|
{
|
||||||
|
Debug.Assert(targetAvatar);
|
||||||
|
|
||||||
|
// Create all bone maps for the target avatar
|
||||||
|
foreach (Transform bone in targetAvatar.GetComponentsInChildren<Transform>())
|
||||||
|
{
|
||||||
|
if (targetAvatarBoneMap.ContainsKey(bone.name) == false)
|
||||||
|
{
|
||||||
|
targetAvatarBoneMap.Add(bone.name, bone);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Log($"Duplicate bone name :{bone.name}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Equip clothes.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="equipPrefab"></param>
|
||||||
|
/// <param name="einfo"></param>
|
||||||
|
void Equip(GameObject equipPrefab, EquipInfo einfo)
|
||||||
|
{
|
||||||
|
Debug.Assert(equipPrefab);
|
||||||
|
|
||||||
|
// Generate a prefab with cloth set up.
|
||||||
|
var gobj = Instantiate(equipPrefab, targetAvatar.transform);
|
||||||
|
|
||||||
|
// All cloth components included in the prefab.
|
||||||
|
var clothList = new List<MagicaCloth>(gobj.GetComponentsInChildren<MagicaCloth>());
|
||||||
|
|
||||||
|
// All collider components included in the prefab.
|
||||||
|
var colliderList = new List<ColliderComponent>(gobj.GetComponentsInChildren<ColliderComponent>());
|
||||||
|
|
||||||
|
// All renderers included in the prefab.
|
||||||
|
var skinList = new List<SkinnedMeshRenderer>(gobj.GetComponentsInChildren<SkinnedMeshRenderer>());
|
||||||
|
|
||||||
|
// First stop the automatic build that is executed with Start().
|
||||||
|
// And just in case, it does some initialization called Awake().
|
||||||
|
foreach (var cloth in clothList)
|
||||||
|
{
|
||||||
|
// Normally it is called with Awake(), but if the component is disabled, it will not be executed, so call it manually.
|
||||||
|
// Ignored if already run with Awake().
|
||||||
|
cloth.Initialize();
|
||||||
|
|
||||||
|
// Turn off auto-build on Start().
|
||||||
|
cloth.DisableAutoBuild();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Swap the bones of the SkinnedMeshRenderer.
|
||||||
|
// This process is a general dress-up process for SkinnedMeshRenderer.
|
||||||
|
// Comment out this series of processes when performing this process with functions such as other assets.
|
||||||
|
foreach (var sren in skinList)
|
||||||
|
{
|
||||||
|
var bones = sren.bones;
|
||||||
|
Transform[] newBones = new Transform[bones.Length];
|
||||||
|
|
||||||
|
for (int i = 0; i < bones.Length; ++i)
|
||||||
|
{
|
||||||
|
Transform bone = bones[i];
|
||||||
|
if (!targetAvatarBoneMap.TryGetValue(bone.name, out newBones[i]))
|
||||||
|
{
|
||||||
|
// Is the bone the renderer itself?
|
||||||
|
if (bone.name == sren.name)
|
||||||
|
{
|
||||||
|
newBones[i] = sren.transform;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// bone not found
|
||||||
|
Debug.Log($"[SkinnedMeshRenderer({sren.name})] Unable to map bone [{bone.name}] to target skeleton.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sren.bones = newBones;
|
||||||
|
|
||||||
|
// root bone
|
||||||
|
if (targetAvatarBoneMap.ContainsKey(sren.rootBone?.name))
|
||||||
|
{
|
||||||
|
sren.rootBone = targetAvatarBoneMap[sren.rootBone.name];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Here, replace the bones used by the MagicaCloth component.
|
||||||
|
foreach (var cloth in clothList)
|
||||||
|
{
|
||||||
|
// Replaces a component's transform.
|
||||||
|
cloth.ReplaceTransform(targetAvatarBoneMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Move all colliders to the new avatar.
|
||||||
|
foreach (var collider in colliderList)
|
||||||
|
{
|
||||||
|
Transform parent = collider.transform.parent;
|
||||||
|
if (parent && targetAvatarBoneMap.ContainsKey(parent.name))
|
||||||
|
{
|
||||||
|
Transform newParent = targetAvatarBoneMap[parent.name];
|
||||||
|
|
||||||
|
// After changing the parent, you need to write back the local posture and align it.
|
||||||
|
var localPosition = collider.transform.localPosition;
|
||||||
|
var localRotation = collider.transform.localRotation;
|
||||||
|
collider.transform.SetParent(newParent);
|
||||||
|
collider.transform.localPosition = localPosition;
|
||||||
|
collider.transform.localRotation = localRotation;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Finally let's start building the cloth component.
|
||||||
|
foreach (var cloth in clothList)
|
||||||
|
{
|
||||||
|
// I disabled the automatic build, so I build it manually.
|
||||||
|
cloth.BuildAndRun();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Record information for release.
|
||||||
|
einfo.equipObject = gobj;
|
||||||
|
einfo.colliderList = colliderList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Removes equipped clothing.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="einfo"></param>
|
||||||
|
void Remove(EquipInfo einfo)
|
||||||
|
{
|
||||||
|
Destroy(einfo.equipObject);
|
||||||
|
foreach (var c in einfo.colliderList)
|
||||||
|
{
|
||||||
|
Destroy(c.gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
einfo.equipObject = null;
|
||||||
|
einfo.colliderList.Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/RuntimeDressUpDemo.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/RuntimeDressUpDemo.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e72f8cfc2a22d184e86b4e1905cdf3ec
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
600
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/SimpleInputManager.cs
vendored
Normal file
600
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/SimpleInputManager.cs
vendored
Normal file
@ -0,0 +1,600 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Events;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 入力マネージャ
|
||||||
|
/// ・簡単なタップやフリック判定
|
||||||
|
/// ・PCの場合はマウスによる自動エミュレーション
|
||||||
|
/// </summary>
|
||||||
|
public class SimpleInputManager : CreateSingleton<SimpleInputManager>
|
||||||
|
{
|
||||||
|
// 最大タッチ数
|
||||||
|
private const int MaxFinger = 3;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// タップ有効半径(cm)
|
||||||
|
/// </summary>
|
||||||
|
public float tapRadiusCm = 0.5f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// フリック判定距離(cm)
|
||||||
|
/// </summary>
|
||||||
|
public float flickRangeCm = 0.01f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// フリック判定速度(cm/s)
|
||||||
|
/// </summary>
|
||||||
|
public float flickCheckSpeed = 1.0f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// マウスホイールのピンチイン・ピンチアウト速度係数
|
||||||
|
/// </summary>
|
||||||
|
public float mouseWheelSpeed = 5.0f;
|
||||||
|
|
||||||
|
// 入力情報管理
|
||||||
|
private int mainFingerId = -1;
|
||||||
|
private int subFingerId = -1;
|
||||||
|
private Vector2[] downPos; // 入力開始座標(スクリーン)
|
||||||
|
private Vector2[] lastPos;
|
||||||
|
private Vector2[] flickDownPos; // 入力開始座標(スクリーン)
|
||||||
|
private float[] flickDownTime;
|
||||||
|
private float lastTime = 0; // バックボタンの連続入力防止用
|
||||||
|
|
||||||
|
// モバイル情報管理
|
||||||
|
private bool mobilePlatform = false;
|
||||||
|
|
||||||
|
// マウスエミュレーション情報管理
|
||||||
|
private bool[] mouseDown;
|
||||||
|
private Vector2[] mouseOldMovePos;
|
||||||
|
|
||||||
|
// モニタ情報
|
||||||
|
private float screenDpi; // スクリーンDPI値
|
||||||
|
private float screenDpc; // スクリーンDots per cm値(1cm当たりのピクセル数)
|
||||||
|
|
||||||
|
//------------------------------ モバイルタッチパネル/マウスエミュレーション ------------------
|
||||||
|
// タッチ開始通知
|
||||||
|
// タッチされた時に、フィンガーID、その位置(スクリーン)を通知します。
|
||||||
|
public static UnityAction<int, Vector2> OnTouchDown;
|
||||||
|
|
||||||
|
// 移動通知
|
||||||
|
// タッチされたまま移動された場合に、フィンガーID、その位置(スクリーン)、速度(スクリーン比率/s)、速度(cm/s)を通知します。
|
||||||
|
public static UnityAction<int, Vector2, Vector2, Vector2> OnTouchMove;
|
||||||
|
|
||||||
|
// ダブルタッチされたまま移動された場合に、フィンガーID、その位置(スクリーン)、速度(スクリーン比率/s)、速度(cm/s)を通知します。
|
||||||
|
public static UnityAction<int, Vector2, Vector2, Vector2> OnDoubleTouchMove;
|
||||||
|
|
||||||
|
// タッチ終了通知
|
||||||
|
// タッチが離されたフィンガーID、位置(スクリーン)を通知します。
|
||||||
|
public static UnityAction<int, Vector2> OnTouchUp;
|
||||||
|
|
||||||
|
// タッチキャンセル通知
|
||||||
|
// タッチ移動がキャンセル(主に画面外に移動)された場合に、フィンガーID、その最終位置(スクリーン)を通知します。
|
||||||
|
public static UnityAction<int, Vector2> OnTouchMoveCancel;
|
||||||
|
|
||||||
|
// タップ通知
|
||||||
|
// タップされた時に、フィンガーID、その位置(スクリーン)を通知します。
|
||||||
|
public static UnityAction<int, Vector2> OnTouchTap;
|
||||||
|
|
||||||
|
// フリック通知
|
||||||
|
// フリック判定された場合に、フィンガーID、その位置(スクリーン)、フリック速度(スクリーン比率/s)、速度(cm/s)を通知します。
|
||||||
|
public static UnityAction<int, Vector2, Vector2, Vector2> OnTouchFlick;
|
||||||
|
|
||||||
|
// ピンチイン/アウト通知
|
||||||
|
// ピンチイン/アウトの速度(スクリーン比率/s)、速度(cm/s)を通知します。
|
||||||
|
public static UnityAction<float, float> OnTouchPinch;
|
||||||
|
|
||||||
|
// バックボタン通知(Androiddeでは戻るボタン、PCでは BackSpace ボタン)
|
||||||
|
public static UnityAction OnBackButton;
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
/// <summary>
|
||||||
|
/// Reload Domain 対策
|
||||||
|
/// </summary>
|
||||||
|
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
|
||||||
|
private static void Init()
|
||||||
|
{
|
||||||
|
InitMember();
|
||||||
|
}
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
protected override void InitSingleton()
|
||||||
|
{
|
||||||
|
// スクリーン情報
|
||||||
|
CalcScreenDpi();
|
||||||
|
|
||||||
|
// 情報初期化
|
||||||
|
downPos = new Vector2[MaxFinger];
|
||||||
|
lastPos = new Vector2[MaxFinger];
|
||||||
|
flickDownPos = new Vector2[MaxFinger];
|
||||||
|
flickDownTime = new float[MaxFinger];
|
||||||
|
|
||||||
|
// マウス用
|
||||||
|
mouseDown = new bool[3];
|
||||||
|
mouseOldMovePos = new Vector2[3];
|
||||||
|
|
||||||
|
AllResetTouchInfo();
|
||||||
|
|
||||||
|
// モバイルプラットフォーム判定
|
||||||
|
mobilePlatform = Application.isMobilePlatform;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
// 入力タイプ別更新処理
|
||||||
|
if (mobilePlatform)
|
||||||
|
{
|
||||||
|
// モバイル用タッチ入力
|
||||||
|
UpdateMobile();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// マウスエミュレーション
|
||||||
|
UpdateMouse();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
/// <summary>
|
||||||
|
/// スクリーンのDPI値(Dots per inchi)1インチ当たりのピクセル数を取得する
|
||||||
|
/// </summary>
|
||||||
|
public static float ScreenDpi
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Instance.screenDpi;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// スクリーンのDPC値(Dots per cm)1cm当たりのピクセル数を取得する
|
||||||
|
/// </summary>
|
||||||
|
public static float ScreenDpc
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return Instance.screenDpc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// スクリーンDpi/Dpcの再計算
|
||||||
|
/// </summary>
|
||||||
|
private void CalcScreenDpi()
|
||||||
|
{
|
||||||
|
screenDpi = Screen.dpi;
|
||||||
|
if (screenDpi == 0.0f)
|
||||||
|
{
|
||||||
|
screenDpi = 96; // ダミー
|
||||||
|
}
|
||||||
|
screenDpc = screenDpi / 2.54f; // インチをcmに変換
|
||||||
|
}
|
||||||
|
|
||||||
|
// タッチ入力情報リセット
|
||||||
|
private void AllResetTouchInfo()
|
||||||
|
{
|
||||||
|
mainFingerId = -1;
|
||||||
|
subFingerId = -1;
|
||||||
|
for (int i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
mouseDown[i] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetTouchCount()
|
||||||
|
{
|
||||||
|
return Input.touchCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsUI()
|
||||||
|
{
|
||||||
|
if (EventSystem.current == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (mobilePlatform)
|
||||||
|
{
|
||||||
|
// モバイル用タッチ入力
|
||||||
|
return EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// マウスエミュレーション
|
||||||
|
return EventSystem.current.IsPointerOverGameObject();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
/// <summary>
|
||||||
|
/// モバイル用入力更新
|
||||||
|
/// </summary>
|
||||||
|
private void UpdateMobile()
|
||||||
|
{
|
||||||
|
int count = Input.touchCount;
|
||||||
|
|
||||||
|
if (count == 0)
|
||||||
|
{
|
||||||
|
AllResetTouchInfo();
|
||||||
|
|
||||||
|
// バックボタン
|
||||||
|
if (Application.platform == RuntimePlatform.Android)
|
||||||
|
{
|
||||||
|
if (Input.GetKey(KeyCode.Escape) && lastTime + 0.2f < Time.time)
|
||||||
|
{
|
||||||
|
lastTime = Time.time;
|
||||||
|
if (OnBackButton != null)
|
||||||
|
{
|
||||||
|
OnBackButton();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// メイン
|
||||||
|
for (int i = 0; i < count; i++)
|
||||||
|
{
|
||||||
|
Touch touch = Input.GetTouch(i);
|
||||||
|
int fid = touch.fingerId;
|
||||||
|
|
||||||
|
// フィンガーIDが0と1以外は無視する
|
||||||
|
if (fid >= 2)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (touch.phase == TouchPhase.Began)
|
||||||
|
{
|
||||||
|
if (IsUI())
|
||||||
|
continue;
|
||||||
|
// down pos
|
||||||
|
downPos[fid] = touch.position;
|
||||||
|
lastPos[fid] = touch.position;
|
||||||
|
flickDownPos[fid] = touch.position;
|
||||||
|
|
||||||
|
if (fid == 0)
|
||||||
|
{
|
||||||
|
mainFingerId = fid;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
subFingerId = fid;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Downはメインフィンガーのみ
|
||||||
|
if (fid == 0)
|
||||||
|
{
|
||||||
|
flickDownTime[fid] = Time.time;
|
||||||
|
if (OnTouchDown != null)
|
||||||
|
{
|
||||||
|
OnTouchDown(fid, touch.position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (touch.phase == TouchPhase.Moved)
|
||||||
|
{
|
||||||
|
// ピンチイン/アウト判定
|
||||||
|
if (mainFingerId >= 0 && subFingerId >= 0)
|
||||||
|
{
|
||||||
|
Vector2 t1pos = Vector2.zero;
|
||||||
|
Vector2 t2pos = Vector2.zero;
|
||||||
|
Vector2 t1delta = Vector2.zero;
|
||||||
|
Vector2 t2delta = Vector2.zero;
|
||||||
|
|
||||||
|
int setcnt = 0;
|
||||||
|
for (int j = 0; j < count; j++)
|
||||||
|
{
|
||||||
|
Touch t = Input.GetTouch(j);
|
||||||
|
if (mainFingerId == t.fingerId)
|
||||||
|
{
|
||||||
|
t1pos = t.position;
|
||||||
|
t1delta = t.deltaPosition;
|
||||||
|
setcnt++;
|
||||||
|
}
|
||||||
|
else if (subFingerId == t.fingerId)
|
||||||
|
{
|
||||||
|
t2pos = t.position;
|
||||||
|
t2delta = t.deltaPosition;
|
||||||
|
setcnt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (setcnt == 2)
|
||||||
|
{
|
||||||
|
float nowdist = Vector2.Distance(t1pos, t2pos);
|
||||||
|
float olddist = Vector2.Distance(t1pos - t1delta, t2pos - t2delta);
|
||||||
|
float dist = nowdist - olddist;
|
||||||
|
|
||||||
|
// cm/sに変換
|
||||||
|
float distcm = dist / screenDpc; // 移動量(cm)
|
||||||
|
float speedcm = distcm / Time.deltaTime; // 速度(cm/s)
|
||||||
|
|
||||||
|
// スクリーン比率の速度
|
||||||
|
float speedscr = (dist / (Screen.width + Screen.height) * 0.5f) / Time.deltaTime;
|
||||||
|
|
||||||
|
// ピンチ通知(移動量(cm), 速度(cm/s))
|
||||||
|
if (OnTouchPinch != null)
|
||||||
|
{
|
||||||
|
OnTouchPinch(speedscr, speedcm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fid == 0)
|
||||||
|
{
|
||||||
|
Vector2 distVec2 = touch.position - lastPos[fid];
|
||||||
|
Vector2 distcm = distVec2 / screenDpc; // 移動量(cm)
|
||||||
|
Vector2 speedcm = distcm / Time.deltaTime; // 速度(cm/s)
|
||||||
|
|
||||||
|
// 速度(スクリーン比率)
|
||||||
|
Vector2 speedscr = CalcScreenRatioVector(distVec2) / Time.deltaTime;
|
||||||
|
|
||||||
|
// 移動通知(現在スクリーン座標、速度(スクリーン比率), 速度(cm/s))
|
||||||
|
if (OnDoubleTouchMove != null)
|
||||||
|
{
|
||||||
|
OnDoubleTouchMove(fid, touch.position, speedscr, speedcm);
|
||||||
|
}
|
||||||
|
|
||||||
|
lastPos[fid] = touch.position;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Moveはメインフィンガーのみ
|
||||||
|
if (fid == 0 && mainFingerId >= 0)
|
||||||
|
{
|
||||||
|
Vector2 distVec2 = touch.position - lastPos[fid];
|
||||||
|
Vector2 distcm = distVec2 / screenDpc; // 移動量(cm)
|
||||||
|
Vector2 speedcm = distcm / Time.deltaTime; // 速度(cm/s)
|
||||||
|
|
||||||
|
// 速度(スクリーン比率)
|
||||||
|
Vector2 speedscr = CalcScreenRatioVector(distVec2) / Time.deltaTime;
|
||||||
|
|
||||||
|
// 移動通知(現在スクリーン座標、速度(スクリーン比率), 速度(cm/s))
|
||||||
|
if (OnTouchMove != null)
|
||||||
|
{
|
||||||
|
OnTouchMove(fid, touch.position, speedscr, speedcm);
|
||||||
|
}
|
||||||
|
|
||||||
|
// フリックダウン位置更新
|
||||||
|
flickDownPos[fid] = (flickDownPos[fid] + touch.position) * 0.5f;
|
||||||
|
flickDownTime[fid] = Time.time;
|
||||||
|
}
|
||||||
|
|
||||||
|
lastPos[fid] = touch.position;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (touch.phase == TouchPhase.Ended)
|
||||||
|
{
|
||||||
|
// フィンガーIDのリリース
|
||||||
|
if (fid == 0)
|
||||||
|
{
|
||||||
|
mainFingerId = -1;
|
||||||
|
subFingerId = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
subFingerId = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// End, Tap はメインフィンガーのみ
|
||||||
|
if (fid == 0)
|
||||||
|
{
|
||||||
|
// タップ判定
|
||||||
|
float dist = Vector2.Distance(downPos[fid], touch.position);
|
||||||
|
float distcm = dist / screenDpc;
|
||||||
|
|
||||||
|
if (distcm <= tapRadiusCm)
|
||||||
|
{
|
||||||
|
// タップ通知
|
||||||
|
if (OnTouchTap != null)
|
||||||
|
{
|
||||||
|
OnTouchTap(fid, touch.position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// フリック判定
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CheckFlic(fid, downPos[fid], touch.position, flickDownPos[fid], flickDownTime[fid]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// タップアップ通知
|
||||||
|
if (OnTouchUp != null)
|
||||||
|
{
|
||||||
|
OnTouchUp(fid, touch.position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (touch.phase == TouchPhase.Canceled)
|
||||||
|
{
|
||||||
|
// フィンガーIDのリリース
|
||||||
|
if (fid == 0)
|
||||||
|
{
|
||||||
|
mainFingerId = -1;
|
||||||
|
subFingerId = -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
subFingerId = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cancelはメインフィンガーのみ
|
||||||
|
if (fid == 0)
|
||||||
|
{
|
||||||
|
if (OnTouchMoveCancel != null)
|
||||||
|
{
|
||||||
|
OnTouchMoveCancel(fid, touch.position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// スクリーン比率に変換したベクトルを求める
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="vec"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private Vector2 CalcScreenRatioVector(Vector2 vec)
|
||||||
|
{
|
||||||
|
return new Vector2(vec.x / Screen.width, vec.y / Screen.height);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// フリック判定
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="oldpos"></param>
|
||||||
|
/// <param name="nowpos"></param>
|
||||||
|
/// <param name="downpos"></param>
|
||||||
|
/// <param name="flicktime"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private bool CheckFlic(int fid, Vector2 oldpos, Vector2 nowpos, Vector2 downpos, float flicktime)
|
||||||
|
{
|
||||||
|
// フリック判定
|
||||||
|
float dist = Vector2.Distance(nowpos, downpos);
|
||||||
|
float distcm = dist / screenDpc;
|
||||||
|
if (distcm > flickRangeCm)
|
||||||
|
{
|
||||||
|
{
|
||||||
|
// 移動ピクセルをcm変換し、速度cm/sを割り出す
|
||||||
|
Vector2 distVec = (nowpos - downpos);
|
||||||
|
Vector2 distVec2 = distVec / screenDpc; // cmへ変換(移動量(cm))
|
||||||
|
float timeInterval = Time.time - flicktime;
|
||||||
|
float speedX = distVec2.x / timeInterval; // 速度(cm/s)
|
||||||
|
float speedY = distVec2.y / timeInterval; // 速度(cm/s)
|
||||||
|
|
||||||
|
//Develop.Log("distVec", distVec * 100);
|
||||||
|
//Develop.Log("sppedX:", speedX, " speedY:", speedY);
|
||||||
|
|
||||||
|
if (Mathf.Abs(speedX) >= flickCheckSpeed || Mathf.Abs(speedY) >= flickCheckSpeed)
|
||||||
|
{
|
||||||
|
// フリック通知(スクリーン位置,速度(スクリーン比率/s),速度(cm/s))
|
||||||
|
if (OnTouchFlick != null)
|
||||||
|
{
|
||||||
|
OnTouchFlick(fid, nowpos, CalcScreenRatioVector(distVec) / timeInterval, new Vector2(speedX, speedY));
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
/// <summary>
|
||||||
|
/// 入力情報更新(PC用)
|
||||||
|
/// マウスエミュレーション
|
||||||
|
/// ・右クリックは使わない。
|
||||||
|
/// ・ピンチイン/アウトはマウスホイール。
|
||||||
|
/// </summary>
|
||||||
|
private void UpdateMouse()
|
||||||
|
{
|
||||||
|
// BackSpace を Android 端末のバックボタンに割り当てる
|
||||||
|
if (Input.GetKeyDown(KeyCode.Backspace))
|
||||||
|
{
|
||||||
|
if (OnBackButton != null)
|
||||||
|
OnBackButton();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
// マウスボタンダウン
|
||||||
|
if (Input.GetMouseButtonDown(i))
|
||||||
|
{
|
||||||
|
if (IsUI())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (mouseDown[i] == false && i == 0)
|
||||||
|
{
|
||||||
|
flickDownTime[i] = Time.time;
|
||||||
|
}
|
||||||
|
mouseDown[i] = true;
|
||||||
|
|
||||||
|
// 入力位置を記録
|
||||||
|
downPos[i] = Input.mousePosition;
|
||||||
|
mouseOldMovePos[i] = Input.mousePosition;
|
||||||
|
if (i == 0)
|
||||||
|
flickDownPos[i] = Input.mousePosition;
|
||||||
|
|
||||||
|
// タッチダウンイベント発行
|
||||||
|
if (OnTouchDown != null)
|
||||||
|
OnTouchDown(i, Input.mousePosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
// マウスボタンアップ
|
||||||
|
if (Input.GetMouseButtonUp(i) && mouseDown[i])
|
||||||
|
{
|
||||||
|
mouseDown[i] = false;
|
||||||
|
|
||||||
|
// フリック判定
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
CheckFlic(i, mouseOldMovePos[i], Input.mousePosition, flickDownPos[i], flickDownTime[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
mouseOldMovePos[i] = Vector2.zero;
|
||||||
|
|
||||||
|
// タッチアップイベント
|
||||||
|
if (OnTouchUp != null)
|
||||||
|
OnTouchUp(i, Input.mousePosition);
|
||||||
|
|
||||||
|
// タップ判定
|
||||||
|
float distcm = Vector2.Distance(downPos[0], Input.mousePosition) / screenDpc;
|
||||||
|
if (distcm <= tapRadiusCm)
|
||||||
|
{
|
||||||
|
if (OnTouchTap != null)
|
||||||
|
OnTouchTap(i, Input.mousePosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 移動
|
||||||
|
if (mouseDown[i])
|
||||||
|
{
|
||||||
|
Vector2 spos = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
|
||||||
|
Vector2 delta = spos - mouseOldMovePos[i];
|
||||||
|
|
||||||
|
if (spos != mouseOldMovePos[i])
|
||||||
|
{
|
||||||
|
// 速度
|
||||||
|
Vector3 deltacm = delta / screenDpc; // 移動量(cm)
|
||||||
|
Vector2 speedcm = deltacm / Time.deltaTime; // 速度(cm/s)
|
||||||
|
|
||||||
|
// 移動通知(現在スクリーン座標、速度(スクリーン比率/s)、速度(cm/s))
|
||||||
|
if (OnTouchMove != null)
|
||||||
|
OnTouchMove(i, Input.mousePosition, CalcScreenRatioVector(delta) / Time.deltaTime, speedcm);
|
||||||
|
}
|
||||||
|
|
||||||
|
mouseOldMovePos[i] = Input.mousePosition;
|
||||||
|
|
||||||
|
// フリックダウン位置更新
|
||||||
|
flickDownPos[i] = (flickDownPos[i] + spos) * 0.5f;
|
||||||
|
flickDownTime[i] = Time.time;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// ピンチイン/アウト
|
||||||
|
float w = Input.GetAxis("Mouse ScrollWheel");
|
||||||
|
if (Mathf.Abs(w) > 0.01f)
|
||||||
|
{
|
||||||
|
// モバイル入力とスケール感を合わせるために係数を掛ける
|
||||||
|
w *= mouseWheelSpeed;
|
||||||
|
|
||||||
|
float speedcm = w / Time.deltaTime;
|
||||||
|
float speedscr = (w / (Screen.width + Screen.height) * 0.5f) / Time.deltaTime;
|
||||||
|
|
||||||
|
// 通知(速度(スクリーン比率/s)、速度(cm/s)
|
||||||
|
if (OnTouchPinch != null)
|
||||||
|
OnTouchPinch(speedscr, speedcm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/SimpleInputManager.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/SimpleInputManager.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 08208c43232950a4f8b6eae1f7919c13
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
46
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/SliderText.cs
vendored
Normal file
46
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/SliderText.cs
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
public class SliderText : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private Text text = null;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string lable = "";
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string format = "0.00";
|
||||||
|
|
||||||
|
private string formatString;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
formatString = "{0} ({1:" + format + "})";
|
||||||
|
|
||||||
|
var slider = GetComponent<Slider>();
|
||||||
|
if (slider)
|
||||||
|
{
|
||||||
|
slider.onValueChanged.AddListener(OnChangeValue);
|
||||||
|
|
||||||
|
var val = slider.value;
|
||||||
|
slider.value = 0.001f;
|
||||||
|
slider.value = val;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnChangeValue(float value)
|
||||||
|
{
|
||||||
|
if (text)
|
||||||
|
{
|
||||||
|
text.text = string.Format(formatString, lable, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/SliderText.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/SliderText.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 37e7fecf2cf6fff42800da6e57c20d5d
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
25
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/TargetFPS.cs
vendored
Normal file
25
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/TargetFPS.cs
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
public class TargetFPS : MonoBehaviour
|
||||||
|
{
|
||||||
|
public int frameRate = 60;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
#if !UNITY_EDITOR
|
||||||
|
Application.targetFrameRate = frameRate;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/TargetFPS.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/TargetFPS.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 70abefeafa131dd428880b40bd4c183c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
99
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/WindDemo.cs
vendored
Normal file
99
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/WindDemo.cs
vendored
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
// Magica Cloth 2.
|
||||||
|
// Copyright (c) 2023 MagicaSoft.
|
||||||
|
// https://magicasoft.jp
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace MagicaCloth2
|
||||||
|
{
|
||||||
|
public class WindDemo : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private MagicaWindZone magicaWindZone;
|
||||||
|
[SerializeField]
|
||||||
|
private WindZone unityWindZone;
|
||||||
|
[SerializeField]
|
||||||
|
private Renderer arrowRenderer = null;
|
||||||
|
[SerializeField]
|
||||||
|
private Gradient arrowGradient = new Gradient();
|
||||||
|
[SerializeField]
|
||||||
|
private List<Transform> rotationTransforms = new List<Transform>();
|
||||||
|
|
||||||
|
private float angleY = 0.0f;
|
||||||
|
private float angleX = 0.0f;
|
||||||
|
private float main = 0.0f;
|
||||||
|
private float turbulence = 0.0f;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDirectionY(float value)
|
||||||
|
{
|
||||||
|
angleY = value;
|
||||||
|
UpdateDirection();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDirectionX(float value)
|
||||||
|
{
|
||||||
|
angleX = value;
|
||||||
|
UpdateDirection();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnMain(float value)
|
||||||
|
{
|
||||||
|
main = value;
|
||||||
|
UpdateMagicaWindZone();
|
||||||
|
UpdateUnityWindZone();
|
||||||
|
UpdateArrowColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnTurbulence(float value)
|
||||||
|
{
|
||||||
|
turbulence = value;
|
||||||
|
UpdateMagicaWindZone();
|
||||||
|
}
|
||||||
|
|
||||||
|
//=========================================================================================
|
||||||
|
void UpdateArrowColor()
|
||||||
|
{
|
||||||
|
if (arrowRenderer)
|
||||||
|
{
|
||||||
|
// color
|
||||||
|
var t = Mathf.Clamp01(Mathf.InverseLerp(0.0f, 20.0f, main));
|
||||||
|
var col = arrowGradient.Evaluate(t);
|
||||||
|
arrowRenderer.material.color = col * 0.7f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateDirection()
|
||||||
|
{
|
||||||
|
var lrot = Quaternion.Euler(angleX, angleY, 0.0f);
|
||||||
|
foreach (var t in rotationTransforms)
|
||||||
|
if (t)
|
||||||
|
t.localRotation = lrot;
|
||||||
|
|
||||||
|
UpdateMagicaWindZone();
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateMagicaWindZone()
|
||||||
|
{
|
||||||
|
if (magicaWindZone)
|
||||||
|
{
|
||||||
|
magicaWindZone.main = main;
|
||||||
|
magicaWindZone.turbulence = turbulence;
|
||||||
|
magicaWindZone.directionAngleX = angleX;
|
||||||
|
magicaWindZone.directionAngleY = angleY;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UpdateUnityWindZone()
|
||||||
|
{
|
||||||
|
if (unityWindZone)
|
||||||
|
{
|
||||||
|
unityWindZone.windMain = main;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/WindDemo.cs.meta
vendored
Normal file
11
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Scripts/WindDemo.cs.meta
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 13f11cb1bd01c684b9a48fd075e6a541
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Shaders.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Shaders.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 399b9b712612aee4895e5d0c4dd98d3d
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
2336
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Shaders/MC2_Common_Lit_Back.shadergraph
vendored
Normal file
2336
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Shaders/MC2_Common_Lit_Back.shadergraph
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b969454d26657854a8fe82c813fb0876
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
|
||||||
1889
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Shaders/MC2_Common_Lit_Front.shadergraph
vendored
Normal file
1889
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Shaders/MC2_Common_Lit_Front.shadergraph
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e0b73429f84a56840ba17b216237f806
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Textures.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Textures.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2233c08f69efaa348b41487c7aece386
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Textures/SD_UnityChan_Skirt_PaintMap.png
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/Common/Textures/SD_UnityChan_Skirt_PaintMap.png
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,135 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 00d6a209303f1804a81aee79794da3a4
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 12
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 1
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
isReadable: 1
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMasterTextureLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 0
|
||||||
|
wrapV: 0
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 1
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 0
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 0
|
||||||
|
alphaIsTransparency: 0
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 0
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 128
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Server
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 3
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
spritePackingTag:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
pSDShowRemoveMatteOption: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/DemoScenes.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/DemoScenes.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ec893c380aa139943a8cb29f3a934540
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
Assets/External/MagicaCloth2/Example (Can be deleted)/DemoScenes/CoreRP.meta
vendored
Normal file
8
Assets/External/MagicaCloth2/Example (Can be deleted)/DemoScenes/CoreRP.meta
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 34a0a79e78943c44b8e0dbdbb3f7ab58
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/DemoScenes/CoreRP/RuntimeBuild_CoreRP.unity
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/DemoScenes/CoreRP/RuntimeBuild_CoreRP.unity
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 93948452698a73449bbea353e91d29c7
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/DemoScenes/CoreRP/RuntimeDressUp_CoreRP.unity
(Stored with Git LFS)
vendored
Normal file
BIN
Assets/External/MagicaCloth2/Example (Can be deleted)/DemoScenes/CoreRP/RuntimeDressUp_CoreRP.unity
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f270683cd8624d64d8d14af230cc8463
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user