|
@@ -55,6 +55,7 @@ public class BaseKagManager : IDisposable
|
|
this.kag_.AddTagCallBack("ikattachikbone", new KagScript.KagTagCallBack(this.TagIKAttachIKBone));
|
|
this.kag_.AddTagCallBack("ikattachikbone", new KagScript.KagTagCallBack(this.TagIKAttachIKBone));
|
|
this.kag_.AddTagCallBack("setbodypos", new KagScript.KagTagCallBack(this.TagSetBodyPos));
|
|
this.kag_.AddTagCallBack("setbodypos", new KagScript.KagTagCallBack(this.TagSetBodyPos));
|
|
this.kag_.AddTagCallBack("ikcheckthrough", new KagScript.KagTagCallBack(this.TagIKCheckThrough));
|
|
this.kag_.AddTagCallBack("ikcheckthrough", new KagScript.KagTagCallBack(this.TagIKCheckThrough));
|
|
|
|
+ this.kag_.AddTagCallBack("bendbonectrl", new KagScript.KagTagCallBack(this.TagBendBoneCtrl));
|
|
this.kag_.AddTagCallBack("nextikflag", new KagScript.KagTagCallBack(this.TagNextIKFlag));
|
|
this.kag_.AddTagCallBack("nextikflag", new KagScript.KagTagCallBack(this.TagNextIKFlag));
|
|
this.kag_.AddTagCallBack("ikattachpointnext", new KagScript.KagTagCallBack(this.TagIKAttachPointNext));
|
|
this.kag_.AddTagCallBack("ikattachpointnext", new KagScript.KagTagCallBack(this.TagIKAttachPointNext));
|
|
this.kag_.AddTagCallBack("ikattachbonenext", new KagScript.KagTagCallBack(this.TagIKAttachBoneNext));
|
|
this.kag_.AddTagCallBack("ikattachbonenext", new KagScript.KagTagCallBack(this.TagIKAttachBoneNext));
|
|
@@ -956,7 +957,7 @@ public class BaseKagManager : IDisposable
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string attachpoint_name = tag_data.GetTagProperty("targetpoint").AsString();
|
|
string attachpoint_name = tag_data.GetTagProperty("targetpoint").AsString();
|
|
string tgt_name = tag_data.GetTagProperty("targetobj").AsString();
|
|
string tgt_name = tag_data.GetTagProperty("targetobj").AsString();
|
|
- IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
|
|
|
|
|
|
+ IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text, false);
|
|
if (!ikdata)
|
|
if (!ikdata)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -974,10 +975,54 @@ public class BaseKagManager : IDisposable
|
|
{
|
|
{
|
|
zero.z = tag_data.GetTagProperty("offsetz").AsReal();
|
|
zero.z = tag_data.GetTagProperty("offsetz").AsReal();
|
|
}
|
|
}
|
|
- IKCtrlData.IKAttachType attach_type = IKCtrlData.IKAttachType.Point;
|
|
|
|
|
|
+ IKCtrlData.IKAttachType ikattachType = IKCtrlData.IKAttachType.Point;
|
|
if (tag_data.IsValid("attach_type"))
|
|
if (tag_data.IsValid("attach_type"))
|
|
{
|
|
{
|
|
- attach_type = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
|
|
|
|
|
|
+ ikattachType = (IKCtrlData.IKAttachType)Enum.Parse(typeof(IKCtrlData.IKAttachType), tag_data.GetTagProperty("attach_type").AsString());
|
|
|
|
+ }
|
|
|
|
+ if (ikattachType == IKCtrlData.IKAttachType.NewPoint)
|
|
|
|
+ {
|
|
|
|
+ ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
|
|
+ ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
|
|
+ }
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).Recet();
|
|
|
|
+ if (tag_data.IsValid("disable"))
|
|
|
|
+ {
|
|
|
|
+ string[] array = tag_data.GetTagProperty("disable").AsString().Split(new char[]
|
|
|
|
+ {
|
|
|
|
+ ','
|
|
|
|
+ });
|
|
|
|
+ int i = 0;
|
|
|
|
+ while (i < array.Length)
|
|
|
|
+ {
|
|
|
|
+ string text2 = array[i];
|
|
|
|
+ string text3 = text2.ToLower();
|
|
|
|
+ if (text3 != null)
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "x"))
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "y"))
|
|
|
|
+ {
|
|
|
|
+ if (text3 == "z")
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableZ = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableY = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableX = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ IL_28C:
|
|
|
|
+ i++;
|
|
|
|
+ continue;
|
|
|
|
+ goto IL_28C;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
string axisbone = string.Empty;
|
|
string axisbone = string.Empty;
|
|
if (tag_data.IsValid("axisbone"))
|
|
if (tag_data.IsValid("axisbone"))
|
|
@@ -994,7 +1039,7 @@ public class BaseKagManager : IDisposable
|
|
{
|
|
{
|
|
do_animation = true;
|
|
do_animation = true;
|
|
}
|
|
}
|
|
- maidAndMan.IKTargetToAttachPoint(text, maidAndMan2, tgt_name, attachpoint_name, zero, attach_type, axisbone, blend_time, do_animation, false);
|
|
|
|
|
|
+ maidAndMan.IKTargetToAttachPoint(text, maidAndMan2, tgt_name, attachpoint_name, zero, ikattachType, axisbone, blend_time, do_animation, false);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1015,7 +1060,7 @@ public class BaseKagManager : IDisposable
|
|
}
|
|
}
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string tgtbone_name = tag_data.GetTagProperty("targetbone").AsString();
|
|
string tgtbone_name = tag_data.GetTagProperty("targetbone").AsString();
|
|
- IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
|
|
|
|
|
|
+ IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text, false);
|
|
if (!ikdata)
|
|
if (!ikdata)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -1044,6 +1089,45 @@ public class BaseKagManager : IDisposable
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
}
|
|
}
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).Recet();
|
|
|
|
+ if (tag_data.IsValid("disable"))
|
|
|
|
+ {
|
|
|
|
+ string[] array = tag_data.GetTagProperty("disable").AsString().Split(new char[]
|
|
|
|
+ {
|
|
|
|
+ ','
|
|
|
|
+ });
|
|
|
|
+ int i = 0;
|
|
|
|
+ while (i < array.Length)
|
|
|
|
+ {
|
|
|
|
+ string text2 = array[i];
|
|
|
|
+ string text3 = text2.ToLower();
|
|
|
|
+ if (text3 != null)
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "x"))
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "y"))
|
|
|
|
+ {
|
|
|
|
+ if (text3 == "z")
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableZ = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableY = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableX = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ IL_27F:
|
|
|
|
+ i++;
|
|
|
|
+ continue;
|
|
|
|
+ goto IL_27F;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
float blend_time = 0f;
|
|
float blend_time = 0f;
|
|
if (tag_data.IsValid("blendtime"))
|
|
if (tag_data.IsValid("blendtime"))
|
|
{
|
|
{
|
|
@@ -1071,7 +1155,7 @@ public class BaseKagManager : IDisposable
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
- IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
|
|
|
|
|
|
+ IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text, false);
|
|
if (!ikdata)
|
|
if (!ikdata)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -1120,7 +1204,7 @@ public class BaseKagManager : IDisposable
|
|
}
|
|
}
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string odogu_name = tag_data.GetTagProperty("odogu").AsString();
|
|
string odogu_name = tag_data.GetTagProperty("odogu").AsString();
|
|
- IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
|
|
|
|
|
|
+ IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text, false);
|
|
if (!ikdata)
|
|
if (!ikdata)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -1153,6 +1237,45 @@ public class BaseKagManager : IDisposable
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
}
|
|
}
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).Recet();
|
|
|
|
+ if (tag_data.IsValid("disable"))
|
|
|
|
+ {
|
|
|
|
+ string[] array = tag_data.GetTagProperty("disable").AsString().Split(new char[]
|
|
|
|
+ {
|
|
|
|
+ ','
|
|
|
|
+ });
|
|
|
|
+ int i = 0;
|
|
|
|
+ while (i < array.Length)
|
|
|
|
+ {
|
|
|
|
+ string text2 = array[i];
|
|
|
|
+ string text3 = text2.ToLower();
|
|
|
|
+ if (text3 != null)
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "x"))
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "y"))
|
|
|
|
+ {
|
|
|
|
+ if (text3 == "z")
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableZ = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableY = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableX = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ IL_267:
|
|
|
|
+ i++;
|
|
|
|
+ continue;
|
|
|
|
+ goto IL_267;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
float blend_time = 0f;
|
|
float blend_time = 0f;
|
|
if (tag_data.IsValid("blendtime"))
|
|
if (tag_data.IsValid("blendtime"))
|
|
{
|
|
{
|
|
@@ -1184,7 +1307,7 @@ public class BaseKagManager : IDisposable
|
|
}
|
|
}
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string bone_name = tag_data.GetTagProperty("targetbone").AsString();
|
|
string bone_name = tag_data.GetTagProperty("targetbone").AsString();
|
|
- IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
|
|
|
|
|
|
+ IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text, false);
|
|
if (!ikdata)
|
|
if (!ikdata)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -1212,6 +1335,45 @@ public class BaseKagManager : IDisposable
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
}
|
|
}
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).Recet();
|
|
|
|
+ if (tag_data.IsValid("disable"))
|
|
|
|
+ {
|
|
|
|
+ string[] array = tag_data.GetTagProperty("disable").AsString().Split(new char[]
|
|
|
|
+ {
|
|
|
|
+ ','
|
|
|
|
+ });
|
|
|
|
+ int i = 0;
|
|
|
|
+ while (i < array.Length)
|
|
|
|
+ {
|
|
|
|
+ string text2 = array[i];
|
|
|
|
+ string text3 = text2.ToLower();
|
|
|
|
+ if (text3 != null)
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "x"))
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "y"))
|
|
|
|
+ {
|
|
|
|
+ if (text3 == "z")
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableZ = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableY = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableX = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ IL_272:
|
|
|
|
+ i++;
|
|
|
|
+ continue;
|
|
|
|
+ goto IL_272;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
float blend_time = 0f;
|
|
float blend_time = 0f;
|
|
if (tag_data.IsValid("blendtime"))
|
|
if (tag_data.IsValid("blendtime"))
|
|
{
|
|
{
|
|
@@ -1323,7 +1485,7 @@ public class BaseKagManager : IDisposable
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
string tag_name = tag_data.GetTagProperty("srcbone").AsString();
|
|
string tag_name = tag_data.GetTagProperty("srcbone").AsString();
|
|
- BipedIKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData<BipedIKCtrlData>(tag_name);
|
|
|
|
|
|
+ BipedIKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData<BipedIKCtrlData>(tag_name, false);
|
|
if (tag_data.IsValid("correctbone"))
|
|
if (tag_data.IsValid("correctbone"))
|
|
{
|
|
{
|
|
ikdata.ToCorrectBone = maidAndMan.body0.GetBone(tag_data.GetTagProperty("correctbone").AsString());
|
|
ikdata.ToCorrectBone = maidAndMan.body0.GetBone(tag_data.GetTagProperty("correctbone").AsString());
|
|
@@ -1375,6 +1537,30 @@ public class BaseKagManager : IDisposable
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public bool TagBendBoneCtrl(KagTagSupport tag_data)
|
|
|
|
+ {
|
|
|
|
+ this.CheckAbsolutelyNecessaryTag(tag_data, "bendbonectrl", new string[]
|
|
|
|
+ {
|
|
|
|
+ "src",
|
|
|
|
+ "srcbone",
|
|
|
|
+ "flagobj"
|
|
|
|
+ });
|
|
|
|
+ Maid maidAndMan = this.GetMaidAndMan(tag_data.GetTagProperty("src").AsString());
|
|
|
|
+ if (maidAndMan == null)
|
|
|
|
+ {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ string tag_name = tag_data.GetTagProperty("srcbone").AsString();
|
|
|
|
+ BipedIKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData<BipedIKCtrlData>(tag_name, false);
|
|
|
|
+ if (!ikdata)
|
|
|
|
+ {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ string bendweightCtrl = tag_data.GetTagProperty("flagobj").AsString();
|
|
|
|
+ ikdata.SetBendweightCtrl(bendweightCtrl);
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+
|
|
public bool TagNextIKFlag(KagTagSupport tag_data)
|
|
public bool TagNextIKFlag(KagTagSupport tag_data)
|
|
{
|
|
{
|
|
this.CheckAbsolutelyNecessaryTag(tag_data, "nextikflag", new string[]
|
|
this.CheckAbsolutelyNecessaryTag(tag_data, "nextikflag", new string[]
|
|
@@ -1389,7 +1575,7 @@ public class BaseKagManager : IDisposable
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
string tag_name = tag_data.GetTagProperty("srcbone").AsString();
|
|
string tag_name = tag_data.GetTagProperty("srcbone").AsString();
|
|
- IKCtrlData ik_data = maidAndMan.IKCtrl.GetIKData(tag_name);
|
|
|
|
|
|
+ IKCtrlData ik_data = maidAndMan.IKCtrl.GetIKData(tag_name, false);
|
|
if (!ik_data)
|
|
if (!ik_data)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -1440,7 +1626,7 @@ public class BaseKagManager : IDisposable
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string attachpoint_name = tag_data.GetTagProperty("targetpoint").AsString();
|
|
string attachpoint_name = tag_data.GetTagProperty("targetpoint").AsString();
|
|
string tgt_name = tag_data.GetTagProperty("targetobj").AsString();
|
|
string tgt_name = tag_data.GetTagProperty("targetobj").AsString();
|
|
- IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
|
|
|
|
|
|
+ IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text, false);
|
|
if (!ikdata)
|
|
if (!ikdata)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -1468,6 +1654,45 @@ public class BaseKagManager : IDisposable
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
}
|
|
}
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).Recet();
|
|
|
|
+ if (tag_data.IsValid("disable"))
|
|
|
|
+ {
|
|
|
|
+ string[] array = tag_data.GetTagProperty("disable").AsString().Split(new char[]
|
|
|
|
+ {
|
|
|
|
+ ','
|
|
|
|
+ });
|
|
|
|
+ int i = 0;
|
|
|
|
+ while (i < array.Length)
|
|
|
|
+ {
|
|
|
|
+ string text2 = array[i];
|
|
|
|
+ string text3 = text2.ToLower();
|
|
|
|
+ if (text3 != null)
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "x"))
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "y"))
|
|
|
|
+ {
|
|
|
|
+ if (text3 == "z")
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableZ = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableY = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableX = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ IL_28C:
|
|
|
|
+ i++;
|
|
|
|
+ continue;
|
|
|
|
+ goto IL_28C;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
string axisbone = string.Empty;
|
|
string axisbone = string.Empty;
|
|
if (tag_data.IsValid("axisbone"))
|
|
if (tag_data.IsValid("axisbone"))
|
|
{
|
|
{
|
|
@@ -1504,7 +1729,7 @@ public class BaseKagManager : IDisposable
|
|
}
|
|
}
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string tgtbone_name = tag_data.GetTagProperty("targetbone").AsString();
|
|
string tgtbone_name = tag_data.GetTagProperty("targetbone").AsString();
|
|
- IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
|
|
|
|
|
|
+ IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text, false);
|
|
if (!ikdata)
|
|
if (!ikdata)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -1533,6 +1758,45 @@ public class BaseKagManager : IDisposable
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
}
|
|
}
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).Recet();
|
|
|
|
+ if (tag_data.IsValid("disable"))
|
|
|
|
+ {
|
|
|
|
+ string[] array = tag_data.GetTagProperty("disable").AsString().Split(new char[]
|
|
|
|
+ {
|
|
|
|
+ ','
|
|
|
|
+ });
|
|
|
|
+ int i = 0;
|
|
|
|
+ while (i < array.Length)
|
|
|
|
+ {
|
|
|
|
+ string text2 = array[i];
|
|
|
|
+ string text3 = text2.ToLower();
|
|
|
|
+ if (text3 != null)
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "x"))
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "y"))
|
|
|
|
+ {
|
|
|
|
+ if (text3 == "z")
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableZ = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableY = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableX = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ IL_27F:
|
|
|
|
+ i++;
|
|
|
|
+ continue;
|
|
|
|
+ goto IL_27F;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
float blend_time = 0f;
|
|
float blend_time = 0f;
|
|
if (tag_data.IsValid("blendtime"))
|
|
if (tag_data.IsValid("blendtime"))
|
|
{
|
|
{
|
|
@@ -1562,7 +1826,7 @@ public class BaseKagManager : IDisposable
|
|
}
|
|
}
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string odogu_name = tag_data.GetTagProperty("odogu").AsString();
|
|
string odogu_name = tag_data.GetTagProperty("odogu").AsString();
|
|
- IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
|
|
|
|
|
|
+ IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text, false);
|
|
if (!ikdata)
|
|
if (!ikdata)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -1595,6 +1859,45 @@ public class BaseKagManager : IDisposable
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
}
|
|
}
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).Recet();
|
|
|
|
+ if (tag_data.IsValid("disable"))
|
|
|
|
+ {
|
|
|
|
+ string[] array = tag_data.GetTagProperty("disable").AsString().Split(new char[]
|
|
|
|
+ {
|
|
|
|
+ ','
|
|
|
|
+ });
|
|
|
|
+ int i = 0;
|
|
|
|
+ while (i < array.Length)
|
|
|
|
+ {
|
|
|
|
+ string text2 = array[i];
|
|
|
|
+ string text3 = text2.ToLower();
|
|
|
|
+ if (text3 != null)
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "x"))
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "y"))
|
|
|
|
+ {
|
|
|
|
+ if (text3 == "z")
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableZ = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableY = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableX = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ IL_267:
|
|
|
|
+ i++;
|
|
|
|
+ continue;
|
|
|
|
+ goto IL_267;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
float blend_time = 0f;
|
|
float blend_time = 0f;
|
|
if (tag_data.IsValid("blendtime"))
|
|
if (tag_data.IsValid("blendtime"))
|
|
{
|
|
{
|
|
@@ -1626,7 +1929,7 @@ public class BaseKagManager : IDisposable
|
|
}
|
|
}
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string text = tag_data.GetTagProperty("srcbone").AsString();
|
|
string bone_name = tag_data.GetTagProperty("targetbone").AsString();
|
|
string bone_name = tag_data.GetTagProperty("targetbone").AsString();
|
|
- IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text);
|
|
|
|
|
|
+ IKCtrlData ikdata = maidAndMan.IKCtrl.GetIKData(text, false);
|
|
if (!ikdata)
|
|
if (!ikdata)
|
|
{
|
|
{
|
|
return false;
|
|
return false;
|
|
@@ -1654,6 +1957,45 @@ public class BaseKagManager : IDisposable
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetWorld = tag_data.IsValid("offset_world");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
ikdata.OffsetBone = tag_data.IsValid("offset_bone");
|
|
}
|
|
}
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).Recet();
|
|
|
|
+ if (tag_data.IsValid("disable"))
|
|
|
|
+ {
|
|
|
|
+ string[] array = tag_data.GetTagProperty("disable").AsString().Split(new char[]
|
|
|
|
+ {
|
|
|
|
+ ','
|
|
|
|
+ });
|
|
|
|
+ int i = 0;
|
|
|
|
+ while (i < array.Length)
|
|
|
|
+ {
|
|
|
|
+ string text2 = array[i];
|
|
|
|
+ string text3 = text2.ToLower();
|
|
|
|
+ if (text3 != null)
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "x"))
|
|
|
|
+ {
|
|
|
|
+ if (!(text3 == "y"))
|
|
|
|
+ {
|
|
|
|
+ if (text3 == "z")
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableZ = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableY = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ ikdata.GetIKEnable(ikattachType).EnableX = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ IL_272:
|
|
|
|
+ i++;
|
|
|
|
+ continue;
|
|
|
|
+ goto IL_272;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
float blend_time = 0f;
|
|
float blend_time = 0f;
|
|
if (tag_data.IsValid("blendtime"))
|
|
if (tag_data.IsValid("blendtime"))
|
|
{
|
|
{
|
|
@@ -4732,7 +5074,7 @@ public class BaseKagManager : IDisposable
|
|
public void Serialize(BinaryWriter binary)
|
|
public void Serialize(BinaryWriter binary)
|
|
{
|
|
{
|
|
binary.Write("CM3D2_KAG");
|
|
binary.Write("CM3D2_KAG");
|
|
- binary.Write(1170);
|
|
|
|
|
|
+ binary.Write(1180);
|
|
byte[] array = this.kag_.Serialize();
|
|
byte[] array = this.kag_.Serialize();
|
|
int value = array.Length;
|
|
int value = array.Length;
|
|
binary.Write(value);
|
|
binary.Write(value);
|