Files
SlaveMatrix-SDL/SlaveMatrix/SlaveMatrix/BodyPartClasses/飛膜_先.cs
2026-06-13 22:38:57 -05:00

654 lines
31 KiB
C#

using _2DGAMELIB;
using SlaveMatrix.GameClasses;
namespace SlaveMatrix
{
public class _先 : Element
{
public ShapePart X0Y0_飛膜;
public ShapePart X0Y1_飛膜;
public ColorD CD;
public ColorP X0Y0_飛膜CP;
public ColorP X0Y1_飛膜CP;
public override bool
{
get
{
return _;
}
set
{
_ = value;
Body.SetIndexY((_ ? 1 : 0));
}
}
public override bool
{
get
{
return _;
}
set
{
_ = value;
}
}
public override bool
{
get
{
return _;
}
set
{
_ = value;
}
}
public bool _表示
{
get
{
return X0Y0_飛膜.Dra;
}
set
{
X0Y0_飛膜.Dra = value;
X0Y1_飛膜.Dra = value;
X0Y0_飛膜.Hit = value;
X0Y1_飛膜.Hit = value;
}
}
public override bool
{
get
{
return _表示;
}
set
{
_表示 = value;
}
}
public override double Intensity
{
get
{
return CD.;
}
set
{
CD. = value;
}
}
public bool _外線
{
get
{
return X0Y0_飛膜.GetOP()[ ? 5 : 3].Outline;
}
set
{
X0Y0_飛膜.GetOP()[ ? 5 : 3].Outline = value;
X0Y1_飛膜.GetOP()[ ? 39 : 3].Outline = value;
}
}
public _先(double DisUnit, , BodyColorSet )
{
ThisType = GetType();
Body = new VariantGrid(GlobalState.["飛膜先"]);
PartGroup partGroup = Body[0][0];
X0Y0_飛膜 = partGroup["飛膜"].ToPar();
partGroup = Body[0][1];
X0Y1_飛膜 = partGroup["飛膜"].ToPar();
Xasix = false;
Body.SetJoints();
= new JointD(Body);
base. = ;
();
X0Y0_飛膜CP = new ColorP(X0Y0_飛膜, CD, DisUnit, abj: true);
X0Y1_飛膜CP = new ColorP(X0Y1_飛膜, CD, DisUnit, abj: true);
}
public void (UpperArm_蝙 UpperArm, LowerArm_蝙 LowerArm, _蝙 , bool )
{
if (Body.GetIndexY() == 0)
{
if ( || X_ || Y_)
{
(UpperArm, LowerArm, , );
}
else
{
(UpperArm, LowerArm, , );
}
}
else if ( || X_ || Y_)
{
(UpperArm, LowerArm, , );
}
else
{
(UpperArm, LowerArm, , );
}
}
private void (UpperArm_蝙 UpperArm, LowerArm_蝙 LowerArm, _蝙 , bool )
{
Vector2D value = X0Y0_飛膜.ToLocal(.X0Y0_人指_指3.GetPosition());
Vector2D vector2D = X0Y0_飛膜.ToLocal(.X0Y0_親指_指1.GetPosition());
X0Y0_飛膜.GetOP()[0].ps[0] = value;
X0Y0_飛膜.GetOP()[0].ps[2] = X0Y0_飛膜.ToLocal(.X0Y0_人指_指2.GetPosition());
X0Y0_飛膜.GetOP()[0].ps[1] = (X0Y0_飛膜.GetOP()[0].ps[0] + X0Y0_飛膜.GetOP()[0].ps[2]) * 0.5;
X0Y0_飛膜.GetOP()[1].ps[0] = X0Y0_飛膜.GetOP()[0].ps[2];
X0Y0_飛膜.GetOP()[1].ps[2] = X0Y0_飛膜.ToLocal(.X0Y0_親指_指2.GetPosition());
X0Y0_飛膜.GetOP()[1].ps[1] = (X0Y0_飛膜.GetOP()[1].ps[0] + X0Y0_飛膜.GetOP()[1].ps[2]) * 0.5;
X0Y0_飛膜.GetOP()[1].ps[1] += (vector2D - X0Y0_飛膜.GetOP()[1].ps[1]) * 0.3;
X0Y0_飛膜.GetOP()[2].ps[0] = X0Y0_飛膜.GetOP()[1].ps[2];
if (UpperArm == null)
{
if (LowerArm == null)
{
X0Y0_飛膜.GetOP()[2].ps[3] = X0Y0_飛膜.ToLocal(.X0Y0_獣翼手.GetPosition());
}
else
{
X0Y0_飛膜.GetOP()[2].ps[3] = X0Y0_飛膜.ToLocal(LowerArm.X0Y0_獣翼LowerArm.GetPosition());
}
Vector2D vector2D2 = (X0Y0_飛膜.GetOP()[2].ps[0] + X0Y0_飛膜.GetOP()[2].ps[3]) * 0.5;
X0Y0_飛膜.GetOP()[2].ps[1] = vector2D2 + (X0Y0_飛膜.GetOP()[2].ps[0] - X0Y0_飛膜.GetOP()[2].ps[3]) * 0.8;
X0Y0_飛膜.GetOP()[2].ps[2] = vector2D2 + (X0Y0_飛膜.GetOP()[2].ps[0] - X0Y0_飛膜.GetOP()[2].ps[3]) * 0.4;
X0Y0_飛膜.GetOP()[2].ps[1] += (vector2D - X0Y0_飛膜.GetOP()[2].ps[1]) * 0.3;
X0Y0_飛膜.GetOP()[2].ps[2] += (vector2D - X0Y0_飛膜.GetOP()[2].ps[2]) * 0.3;
}
else
{
if (UpperArm.ConnectionType == ConnectionInfo.Shoulder_UpperArm_接続)
{
X0Y0_飛膜.GetOP()[2].ps[3] = X0Y0_飛膜.ToLocal(UpperArm.X0Y0_獣翼UpperArm.ToGlobal(UpperArm.X0Y0_獣翼UpperArm.GetOP()[3].ps[1]));
}
else
{
X0Y0_飛膜.GetOP()[2].ps[3] = X0Y0_飛膜.ToLocal(UpperArm.X0Y0_獣翼UpperArm.ToGlobal(UpperArm.X0Y0_獣翼UpperArm.GetOP()[3].ps[1].AddY(0.003)));
}
Vector2D vector2D3 = (X0Y0_飛膜.GetOP()[2].ps[0] + X0Y0_飛膜.GetOP()[2].ps[3]) * 0.5;
X0Y0_飛膜.GetOP()[2].ps[1] = (X0Y0_飛膜.GetOP()[2].ps[0] + vector2D3) * 0.5;
X0Y0_飛膜.GetOP()[2].ps[2] = (vector2D3 + X0Y0_飛膜.GetOP()[2].ps[3]) * 0.5;
}
if (LowerArm == null)
{
Vector2D vector2D4 = X0Y0_飛膜.ToLocal(.X0Y0_獣翼手.GetPosition());
X0Y0_飛膜.GetOP()[2].ps[1] += (vector2D4 - X0Y0_飛膜.GetOP()[2].ps[1]) * 0.3;
X0Y0_飛膜.GetOP()[2].ps[2] += (vector2D4 - X0Y0_飛膜.GetOP()[2].ps[2]) * 0.3;
}
else
{
Vector2D vector2D5 = X0Y0_飛膜.ToLocal(LowerArm.X0Y0_獣翼LowerArm.GetPosition());
X0Y0_飛膜.GetOP()[2].ps[1] += (vector2D5 - X0Y0_飛膜.GetOP()[2].ps[1]) * 0.3;
X0Y0_飛膜.GetOP()[2].ps[2] += (vector2D5 - X0Y0_飛膜.GetOP()[2].ps[2]) * 0.3;
}
if (UpperArm.ConnectionType != ConnectionInfo.Shoulder_UpperArm_接続)
{
X0Y0_飛膜.GetOP()[3].ps[0] = X0Y0_飛膜.GetOP()[2].ps[3];
}
else
{
X0Y0_飛膜.GetOP()[3].ps[0] = X0Y0_飛膜.GetOP()[2].ps[3].AddY(0.05);
}
X0Y0_飛膜.GetOP()[3].ps[2] = X0Y0_飛膜.ToLocal(.X0Y0_小指_指3.ToGlobal(.X0Y0_小指_指3.GetOP()[0].ps[0]));
X0Y0_飛膜.GetOP()[3].ps[1] = (X0Y0_飛膜.GetOP()[3].ps[0] + X0Y0_飛膜.GetOP()[3].ps[2]) * 0.5;
X0Y0_飛膜.GetOP()[3].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_人指_指1.GetPosition()) - X0Y0_飛膜.GetOP()[3].ps[1]) * 0.07;
if ()
{
X0Y0_飛膜.GetOP()[3].ps[1] = (X0Y0_飛膜.GetOP()[3].ps[0] + X0Y0_飛膜.GetOP()[3].ps[2]) * 0.5;
X0Y0_飛膜.GetOP()[3].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_小指_指1.ToGlobal(.X0Y0_小指_指1.GetJP()[0].Joint)) - X0Y0_飛膜.GetOP()[3].ps[1]) * 0.4;
}
X0Y0_飛膜.GetOP()[4].ps[0] = X0Y0_飛膜.GetOP()[3].ps[2];
X0Y0_飛膜.GetOP()[4].ps[2] = X0Y0_飛膜.ToLocal(.X0Y0_薬指_指3.ToGlobal(.X0Y0_薬指_指3.GetOP()[0].ps[0]));
X0Y0_飛膜.GetOP()[4].ps[1] = (X0Y0_飛膜.GetOP()[4].ps[0] + X0Y0_飛膜.GetOP()[4].ps[2]) * 0.5;
X0Y0_飛膜.GetOP()[4].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_薬指_指1.GetPosition()) - X0Y0_飛膜.GetOP()[4].ps[1]) * 0.08;
X0Y0_飛膜.GetOP()[5].ps[0] = X0Y0_飛膜.GetOP()[4].ps[2];
X0Y0_飛膜.GetOP()[5].ps[2] = X0Y0_飛膜.ToLocal(.X0Y0_中指_指3.ToGlobal(.X0Y0_中指_指3.GetOP()[0].ps[0]));
X0Y0_飛膜.GetOP()[5].ps[1] = (X0Y0_飛膜.GetOP()[5].ps[0] + X0Y0_飛膜.GetOP()[5].ps[2]) * 0.5;
X0Y0_飛膜.GetOP()[5].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_中指_指1.GetPosition()) - X0Y0_飛膜.GetOP()[5].ps[1]) * 0.07;
X0Y0_飛膜.GetOP()[6].ps[0] = X0Y0_飛膜.GetOP()[5].ps[2];
X0Y0_飛膜.GetOP()[6].ps[2] = X0Y0_飛膜.ToLocal(.X0Y0_中指_指3.GetPosition());
X0Y0_飛膜.GetOP()[6].ps[1] = X0Y0_飛膜.ToLocal(.X0Y0_中指_指3.ToGlobal(.X0Y0_中指_指3.GetOP()[0].ps[1]));
X0Y0_飛膜.GetOP()[7].ps[0] = X0Y0_飛膜.GetOP()[6].ps[2];
X0Y0_飛膜.GetOP()[7].ps[2] = X0Y0_飛膜.ToLocal(.X0Y0_人指_指3.ToGlobal(.X0Y0_人指_指3.GetOP()[0].ps[0]));
X0Y0_飛膜.GetOP()[7].ps[1] = (X0Y0_飛膜.GetOP()[7].ps[0] + X0Y0_飛膜.GetOP()[7].ps[2]) * 0.5;
X0Y0_飛膜.GetOP()[7].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_人指_指1.GetPosition()) - X0Y0_飛膜.GetOP()[7].ps[1]) * 0.08;
X0Y0_飛膜.GetOP()[8].ps[0] = X0Y0_飛膜.GetOP()[7].ps[2];
X0Y0_飛膜.GetOP()[8].ps[2] = value;
X0Y0_飛膜.GetOP()[8].ps[1] = X0Y0_飛膜.ToLocal(.X0Y0_人指_指3.ToGlobal(.X0Y0_人指_指3.GetOP()[0].ps[1]));
}
private void (UpperArm_蝙 UpperArm, LowerArm_蝙 LowerArm, _蝙 , bool )
{
Vector2D value = X0Y0_飛膜.ToLocal(.X0Y0_人指_指3.GetPosition());
Vector2D vector2D = X0Y0_飛膜.ToLocal(.X0Y0_親指_指1.GetPosition());
X0Y0_飛膜.GetOP()[8].ps[2] = value;
X0Y0_飛膜.GetOP()[8].ps[0] = X0Y0_飛膜.ToLocal(.X0Y0_人指_指2.GetPosition());
X0Y0_飛膜.GetOP()[8].ps[1] = (X0Y0_飛膜.GetOP()[8].ps[2] + X0Y0_飛膜.GetOP()[8].ps[0]) * 0.5;
X0Y0_飛膜.GetOP()[7].ps[2] = X0Y0_飛膜.GetOP()[8].ps[0];
X0Y0_飛膜.GetOP()[7].ps[0] = X0Y0_飛膜.ToLocal(.X0Y0_親指_指2.GetPosition());
X0Y0_飛膜.GetOP()[7].ps[1] = (X0Y0_飛膜.GetOP()[7].ps[2] + X0Y0_飛膜.GetOP()[7].ps[0]) * 0.5;
X0Y0_飛膜.GetOP()[7].ps[1] += (vector2D - X0Y0_飛膜.GetOP()[7].ps[1]) * 0.3;
X0Y0_飛膜.GetOP()[6].ps[3] = X0Y0_飛膜.GetOP()[7].ps[0];
if (UpperArm == null)
{
if (LowerArm == null)
{
X0Y0_飛膜.GetOP()[6].ps[0] = X0Y0_飛膜.ToLocal(.X0Y0_獣翼手.GetPosition());
}
else
{
X0Y0_飛膜.GetOP()[6].ps[0] = X0Y0_飛膜.ToLocal(LowerArm.X0Y0_獣翼LowerArm.GetPosition());
}
Vector2D vector2D2 = (X0Y0_飛膜.GetOP()[6].ps[3] + X0Y0_飛膜.GetOP()[6].ps[0]) * 0.5;
X0Y0_飛膜.GetOP()[6].ps[2] = vector2D2 + (X0Y0_飛膜.GetOP()[6].ps[3] - X0Y0_飛膜.GetOP()[6].ps[0]) * 0.8;
X0Y0_飛膜.GetOP()[6].ps[1] = vector2D2 + (X0Y0_飛膜.GetOP()[6].ps[3] - X0Y0_飛膜.GetOP()[6].ps[0]) * 0.4;
X0Y0_飛膜.GetOP()[6].ps[2] += (vector2D - X0Y0_飛膜.GetOP()[6].ps[2]) * 0.3;
X0Y0_飛膜.GetOP()[6].ps[1] += (vector2D - X0Y0_飛膜.GetOP()[6].ps[1]) * 0.3;
}
else
{
if (UpperArm.ConnectionType == ConnectionInfo.Shoulder_UpperArm_接続)
{
X0Y0_飛膜.GetOP()[6].ps[0] = X0Y0_飛膜.ToLocal(UpperArm.X0Y0_獣翼UpperArm.ToGlobal(UpperArm.X0Y0_獣翼UpperArm.GetOP()[0].ps[4]));
}
else
{
X0Y0_飛膜.GetOP()[6].ps[0] = X0Y0_飛膜.ToLocal(UpperArm.X0Y0_獣翼UpperArm.ToGlobal(UpperArm.X0Y0_獣翼UpperArm.GetOP()[0].ps[4].AddY(0.003)));
}
Vector2D vector2D3 = (X0Y0_飛膜.GetOP()[6].ps[3] + X0Y0_飛膜.GetOP()[6].ps[0]) * 0.5;
X0Y0_飛膜.GetOP()[6].ps[2] = (X0Y0_飛膜.GetOP()[6].ps[3] + vector2D3) * 0.5;
X0Y0_飛膜.GetOP()[6].ps[1] = (vector2D3 + X0Y0_飛膜.GetOP()[6].ps[0]) * 0.5;
}
if (LowerArm == null)
{
Vector2D vector2D4 = X0Y0_飛膜.ToLocal(.X0Y0_獣翼手.GetPosition());
X0Y0_飛膜.GetOP()[6].ps[2] += (vector2D4 - X0Y0_飛膜.GetOP()[6].ps[2]) * 0.3;
X0Y0_飛膜.GetOP()[6].ps[1] += (vector2D4 - X0Y0_飛膜.GetOP()[6].ps[1]) * 0.3;
}
else
{
Vector2D vector2D5 = X0Y0_飛膜.ToLocal(LowerArm.X0Y0_獣翼LowerArm.GetPosition());
X0Y0_飛膜.GetOP()[6].ps[2] += (vector2D5 - X0Y0_飛膜.GetOP()[6].ps[2]) * 0.3;
X0Y0_飛膜.GetOP()[6].ps[1] += (vector2D5 - X0Y0_飛膜.GetOP()[6].ps[1]) * 0.3;
}
if (UpperArm.ConnectionType != ConnectionInfo.Shoulder_UpperArm_接続)
{
X0Y0_飛膜.GetOP()[5].ps[2] = X0Y0_飛膜.GetOP()[6].ps[0];
}
else
{
X0Y0_飛膜.GetOP()[5].ps[2] = X0Y0_飛膜.GetOP()[6].ps[0].AddY(0.05);
}
X0Y0_飛膜.GetOP()[5].ps[0] = X0Y0_飛膜.ToLocal(.X0Y0_小指_指3.ToGlobal(.X0Y0_小指_指3.GetOP()[2].ps[2]));
X0Y0_飛膜.GetOP()[5].ps[1] = (X0Y0_飛膜.GetOP()[5].ps[2] + X0Y0_飛膜.GetOP()[5].ps[0]) * 0.5;
X0Y0_飛膜.GetOP()[5].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_人指_指1.GetPosition()) - X0Y0_飛膜.GetOP()[5].ps[1]) * 0.07;
if ()
{
X0Y0_飛膜.GetOP()[5].ps[1] = (X0Y0_飛膜.GetOP()[5].ps[2] + X0Y0_飛膜.GetOP()[5].ps[0]) * 0.5;
X0Y0_飛膜.GetOP()[5].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_小指_指1.ToGlobal(.X0Y0_小指_指1.GetJP()[0].Joint)) - X0Y0_飛膜.GetOP()[5].ps[1]) * 0.4;
}
X0Y0_飛膜.GetOP()[4].ps[2] = X0Y0_飛膜.GetOP()[5].ps[0];
X0Y0_飛膜.GetOP()[4].ps[0] = X0Y0_飛膜.ToLocal(.X0Y0_薬指_指3.ToGlobal(.X0Y0_薬指_指3.GetOP()[2].ps[2]));
X0Y0_飛膜.GetOP()[4].ps[1] = (X0Y0_飛膜.GetOP()[4].ps[2] + X0Y0_飛膜.GetOP()[4].ps[0]) * 0.5;
X0Y0_飛膜.GetOP()[4].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_薬指_指1.GetPosition()) - X0Y0_飛膜.GetOP()[4].ps[1]) * 0.08;
X0Y0_飛膜.GetOP()[3].ps[2] = X0Y0_飛膜.GetOP()[4].ps[0];
X0Y0_飛膜.GetOP()[3].ps[0] = X0Y0_飛膜.ToLocal(.X0Y0_中指_指3.ToGlobal(.X0Y0_中指_指3.GetOP()[2].ps[2]));
X0Y0_飛膜.GetOP()[3].ps[1] = (X0Y0_飛膜.GetOP()[3].ps[2] + X0Y0_飛膜.GetOP()[3].ps[0]) * 0.5;
X0Y0_飛膜.GetOP()[3].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_中指_指1.GetPosition()) - X0Y0_飛膜.GetOP()[3].ps[1]) * 0.07;
X0Y0_飛膜.GetOP()[2].ps[2] = X0Y0_飛膜.GetOP()[3].ps[0];
X0Y0_飛膜.GetOP()[2].ps[0] = X0Y0_飛膜.ToLocal(.X0Y0_中指_指3.GetPosition());
X0Y0_飛膜.GetOP()[2].ps[1] = X0Y0_飛膜.ToLocal(.X0Y0_中指_指3.ToGlobal(.X0Y0_中指_指3.GetOP()[2].ps[1]));
X0Y0_飛膜.GetOP()[1].ps[2] = X0Y0_飛膜.GetOP()[2].ps[0];
X0Y0_飛膜.GetOP()[1].ps[0] = X0Y0_飛膜.ToLocal(.X0Y0_人指_指3.ToGlobal(.X0Y0_人指_指3.GetOP()[2].ps[2]));
X0Y0_飛膜.GetOP()[1].ps[1] = (X0Y0_飛膜.GetOP()[1].ps[2] + X0Y0_飛膜.GetOP()[1].ps[0]) * 0.5;
X0Y0_飛膜.GetOP()[1].ps[1] += (X0Y0_飛膜.ToLocal(.X0Y0_人指_指1.GetPosition()) - X0Y0_飛膜.GetOP()[1].ps[1]) * 0.08;
X0Y0_飛膜.GetOP()[0].ps[2] = X0Y0_飛膜.GetOP()[1].ps[0];
X0Y0_飛膜.GetOP()[0].ps[0] = value;
X0Y0_飛膜.GetOP()[0].ps[1] = X0Y0_飛膜.ToLocal(.X0Y0_人指_指3.ToGlobal(.X0Y0_人指_指3.GetOP()[2].ps[1]));
}
private void (UpperArm_蝙 UpperArm, LowerArm_蝙 LowerArm, _蝙 , bool )
{
Vector2D value = X0Y1_飛膜.ToLocal(.X0Y0_人指_指3.GetPosition());
Vector2D vector2D = X0Y1_飛膜.ToLocal(.X0Y0_親指_指1.GetPosition());
X0Y1_飛膜.GetOP()[0].ps[0] = value;
X0Y1_飛膜.GetOP()[0].ps[2] = X0Y1_飛膜.ToLocal(.X0Y0_人指_指2.GetPosition());
X0Y1_飛膜.GetOP()[0].ps[1] = (X0Y1_飛膜.GetOP()[0].ps[0] + X0Y1_飛膜.GetOP()[0].ps[2]) * 0.5;
X0Y1_飛膜.GetOP()[1].ps[0] = X0Y1_飛膜.GetOP()[0].ps[2];
X0Y1_飛膜.GetOP()[1].ps[2] = X0Y1_飛膜.ToLocal(.X0Y0_親指_指2.GetPosition());
X0Y1_飛膜.GetOP()[1].ps[1] = (X0Y1_飛膜.GetOP()[1].ps[0] + X0Y1_飛膜.GetOP()[1].ps[2]) * 0.5;
X0Y1_飛膜.GetOP()[1].ps[1] += (vector2D - X0Y1_飛膜.GetOP()[1].ps[1]) * 0.3;
X0Y1_飛膜.GetOP()[2].ps[0] = X0Y1_飛膜.GetOP()[1].ps[2];
if (UpperArm == null)
{
if (LowerArm == null)
{
X0Y1_飛膜.GetOP()[2].ps[3] = X0Y1_飛膜.ToLocal(.X0Y0_獣翼手.GetPosition());
}
else
{
X0Y1_飛膜.GetOP()[2].ps[3] = X0Y1_飛膜.ToLocal(LowerArm.X0Y0_獣翼LowerArm.GetPosition());
}
Vector2D vector2D2 = (X0Y1_飛膜.GetOP()[2].ps[0] + X0Y1_飛膜.GetOP()[2].ps[3]) * 0.5;
X0Y1_飛膜.GetOP()[2].ps[1] = vector2D2 + (X0Y1_飛膜.GetOP()[2].ps[0] - X0Y1_飛膜.GetOP()[2].ps[3]) * 0.8;
X0Y1_飛膜.GetOP()[2].ps[2] = vector2D2 + (X0Y1_飛膜.GetOP()[2].ps[0] - X0Y1_飛膜.GetOP()[2].ps[3]) * 0.4;
X0Y1_飛膜.GetOP()[2].ps[1] += (vector2D - X0Y1_飛膜.GetOP()[2].ps[1]) * 0.3;
X0Y1_飛膜.GetOP()[2].ps[2] += (vector2D - X0Y1_飛膜.GetOP()[2].ps[2]) * 0.3;
}
else
{
if (UpperArm.ConnectionType == ConnectionInfo.Shoulder_UpperArm_接続)
{
X0Y1_飛膜.GetOP()[2].ps[3] = X0Y0_飛膜.ToLocal(UpperArm.X0Y0_獣翼UpperArm.ToGlobal(UpperArm.X0Y0_獣翼UpperArm.GetOP()[3].ps[1]));
}
else
{
X0Y1_飛膜.GetOP()[2].ps[3] = X0Y0_飛膜.ToLocal(UpperArm.X0Y0_獣翼UpperArm.ToGlobal(UpperArm.X0Y0_獣翼UpperArm.GetOP()[3].ps[1].AddY(0.003)));
}
Vector2D vector2D3 = (X0Y1_飛膜.GetOP()[2].ps[0] + X0Y1_飛膜.GetOP()[2].ps[3]) * 0.5;
X0Y1_飛膜.GetOP()[2].ps[1] = (X0Y1_飛膜.GetOP()[2].ps[0] + vector2D3) * 0.5;
X0Y1_飛膜.GetOP()[2].ps[2] = (vector2D3 + X0Y1_飛膜.GetOP()[2].ps[3]) * 0.5;
}
if (LowerArm == null)
{
Vector2D vector2D4 = X0Y1_飛膜.ToLocal(.X0Y0_獣翼手.GetPosition());
X0Y1_飛膜.GetOP()[2].ps[1] += (vector2D4 - X0Y1_飛膜.GetOP()[2].ps[1]) * 0.3;
X0Y1_飛膜.GetOP()[2].ps[2] += (vector2D4 - X0Y1_飛膜.GetOP()[2].ps[2]) * 0.3;
}
else
{
Vector2D vector2D5 = X0Y1_飛膜.ToLocal(LowerArm.X0Y0_獣翼LowerArm.GetPosition());
X0Y1_飛膜.GetOP()[2].ps[1] += (vector2D5 - X0Y1_飛膜.GetOP()[2].ps[1]) * 0.3;
X0Y1_飛膜.GetOP()[2].ps[2] += (vector2D5 - X0Y1_飛膜.GetOP()[2].ps[2]) * 0.3;
}
if (UpperArm.ConnectionType != ConnectionInfo.Shoulder_UpperArm_接続)
{
X0Y1_飛膜.GetOP()[3].ps[0] = X0Y1_飛膜.GetOP()[2].ps[3];
}
else
{
X0Y1_飛膜.GetOP()[3].ps[0] = X0Y1_飛膜.GetOP()[2].ps[3].AddY(0.05);
}
X0Y1_飛膜.GetOP()[3].ps[2] = X0Y1_飛膜.ToLocal(.X0Y0_小指_指3.ToGlobal(.X0Y0_小指_指3.GetOP()[0].ps[0]));
X0Y1_飛膜.GetOP()[3].ps[1] = (X0Y1_飛膜.GetOP()[3].ps[0] + X0Y1_飛膜.GetOP()[3].ps[2]) * 0.5;
X0Y1_飛膜.GetOP()[3].ps[1] += (X0Y1_飛膜.ToLocal(.X0Y0_小指_指3.GetPosition()) - X0Y1_飛膜.GetOP()[3].ps[1]) * 0.85;
if ()
{
X0Y1_飛膜.GetOP()[3].ps[1] = (X0Y1_飛膜.GetOP()[3].ps[0] + X0Y1_飛膜.GetOP()[3].ps[2]) * 0.5;
X0Y1_飛膜.GetOP()[3].ps[1] += (X0Y1_飛膜.ToLocal(.X0Y0_小指_指1.ToGlobal(.X0Y0_小指_指1.GetJP()[0].Joint)) - X0Y1_飛膜.GetOP()[3].ps[1]) * 0.3;
}
Vector2D vector2D6 = X0Y1_飛膜.GetOP()[3].ps[2];
Vector2D vector2D7 = X0Y1_飛膜.ToLocal(.X0Y0_薬指_指3.ToGlobal(.X0Y0_薬指_指3.GetOP()[0].ps[0]));
Vector2D vector2D8 = (vector2D6 + vector2D7) * 0.5;
double num = vector2D6.DistanceSquared(vector2D7);
Vector2D vector2D9 = (X0Y1_飛膜.GetOP()[4].ps[0] + X0Y1_飛膜.GetOP()[19].ps[2]) * 0.5;
double num2 = X0Y1_飛膜.GetOP()[4].ps[0].DistanceSquared(X0Y1_飛膜.GetOP()[19].ps[2]);
Vector2D v = X0Y1_飛膜.GetOP()[11].ps[2] - vector2D9;
Vector2D v2 = X0Y1_飛膜.ToLocal(.X0Y0_人指_指2.GetPosition()) - vector2D8;
double num3 = v.Angle02π(DataConsts.Vec2DUnitY);
MatrixD transform = num3.RotationZ();
MatrixD transform2 = (v.Angle02π(v2) - num3).RotationZ();
Vector2D vector2D10 = vector2D8 - vector2D9;
double num4 = num / num2;
double num5 = vector2D9.X - vector2D9.X * num4;
for (int i = 0; i < 16; i++)
{
int index = i + 4;
for (int j = 0; j < X0Y1_飛膜.GetOP()[index].ps.Count; j++)
{
Vector2D coord = X0Y1_飛膜.GetOP()[index].ps[j].TransformCoordinateBP(vector2D9, transform);
coord.X = coord.X * num4 + num5;
X0Y1_飛膜.GetOP()[index].ps[j] = coord.TransformCoordinateBP(vector2D9, transform2) + vector2D10;
}
}
X0Y1_飛膜.GetOP()[4].ps[0] = vector2D6;
X0Y1_飛膜.GetOP()[19].ps[2] = vector2D7;
vector2D6 = X0Y1_飛膜.GetOP()[19].ps[2];
vector2D7 = X0Y1_飛膜.ToLocal(.X0Y0_中指_指3.ToGlobal(.X0Y0_中指_指3.GetOP()[0].ps[0]));
vector2D8 = (vector2D6 + vector2D7) * 0.5;
double num6 = vector2D6.DistanceSquared(vector2D7);
vector2D9 = (X0Y1_飛膜.GetOP()[20].ps[0] + X0Y1_飛膜.GetOP()[39].ps[2]) * 0.5;
num2 = X0Y1_飛膜.GetOP()[20].ps[0].DistanceSquared(X0Y1_飛膜.GetOP()[39].ps[2]);
Vector2D v3 = X0Y1_飛膜.GetOP()[29].ps[2] - vector2D9;
v2 = X0Y1_飛膜.ToLocal(.X0Y0_中指_指2.GetPosition()) - vector2D8;
num3 = v3.Angle02π(DataConsts.Vec2DUnitY);
transform = num3.RotationZ();
transform2 = (v3.Angle02π(v2) - num3).RotationZ();
vector2D10 = vector2D8 - vector2D9;
num4 = num6 / num2;
num5 = vector2D9.X - vector2D9.X * num4;
for (int k = 0; k < 20; k++)
{
int index = k + 20;
for (int l = 0; l < X0Y1_飛膜.GetOP()[index].ps.Count; l++)
{
Vector2D coord = X0Y1_飛膜.GetOP()[index].ps[l].TransformCoordinateBP(vector2D9, transform);
coord.X = coord.X * num4 + num5;
X0Y1_飛膜.GetOP()[index].ps[l] = coord.TransformCoordinateBP(vector2D9, transform2) + vector2D10;
}
}
X0Y1_飛膜.GetOP()[20].ps[0] = vector2D6;
X0Y1_飛膜.GetOP()[39].ps[2] = vector2D7;
X0Y1_飛膜.GetOP()[40].ps[0] = vector2D7;
X0Y1_飛膜.GetOP()[40].ps[2] = X0Y1_飛膜.ToLocal(.X0Y0_中指_指3.GetPosition());
X0Y1_飛膜.GetOP()[40].ps[1] = X0Y1_飛膜.ToLocal(.X0Y0_中指_指3.ToGlobal(.X0Y0_中指_指3.GetOP()[0].ps[1]));
X0Y1_飛膜.GetOP()[41].ps[0] = X0Y1_飛膜.GetOP()[40].ps[2];
X0Y1_飛膜.GetOP()[41].ps[2] = X0Y1_飛膜.ToLocal(.X0Y0_人指_指3.ToGlobal(.X0Y0_人指_指3.GetOP()[0].ps[0]));
X0Y1_飛膜.GetOP()[41].ps[1] = (X0Y1_飛膜.GetOP()[41].ps[0] + X0Y1_飛膜.GetOP()[41].ps[2]) * 0.5;
X0Y1_飛膜.GetOP()[41].ps[1] += (X0Y1_飛膜.ToLocal(.X0Y0_人指_指1.GetPosition()) - X0Y1_飛膜.GetOP()[41].ps[1]) * 0.08;
X0Y1_飛膜.GetOP()[42].ps[0] = X0Y1_飛膜.GetOP()[41].ps[2];
X0Y1_飛膜.GetOP()[42].ps[2] = value;
X0Y1_飛膜.GetOP()[42].ps[1] = X0Y1_飛膜.ToLocal(.X0Y0_人指_指3.ToGlobal(.X0Y0_人指_指3.GetOP()[0].ps[1]));
}
private void (UpperArm_蝙 UpperArm, LowerArm_蝙 LowerArm, _蝙 , bool )
{
Vector2D value = X0Y1_飛膜.ToLocal(.X0Y0_人指_指3.GetPosition());
Vector2D vector2D = X0Y1_飛膜.ToLocal(.X0Y0_親指_指1.GetPosition());
X0Y1_飛膜.GetOP()[42].ps[2] = value;
X0Y1_飛膜.GetOP()[42].ps[0] = X0Y1_飛膜.ToLocal(.X0Y0_人指_指2.GetPosition());
X0Y1_飛膜.GetOP()[42].ps[1] = (X0Y1_飛膜.GetOP()[42].ps[2] + X0Y1_飛膜.GetOP()[42].ps[0]) * 0.5;
X0Y1_飛膜.GetOP()[41].ps[2] = X0Y1_飛膜.GetOP()[42].ps[0];
X0Y1_飛膜.GetOP()[41].ps[0] = X0Y1_飛膜.ToLocal(.X0Y0_親指_指2.GetPosition());
X0Y1_飛膜.GetOP()[41].ps[1] = (X0Y1_飛膜.GetOP()[41].ps[2] + X0Y1_飛膜.GetOP()[41].ps[0]) * 0.5;
X0Y1_飛膜.GetOP()[41].ps[1] += (vector2D - X0Y1_飛膜.GetOP()[41].ps[1]) * 0.3;
X0Y1_飛膜.GetOP()[40].ps[3] = X0Y1_飛膜.GetOP()[41].ps[0];
if (UpperArm == null)
{
if (LowerArm == null)
{
X0Y1_飛膜.GetOP()[40].ps[0] = X0Y1_飛膜.ToLocal(.X0Y0_獣翼手.GetPosition());
}
else
{
X0Y1_飛膜.GetOP()[40].ps[0] = X0Y1_飛膜.ToLocal(LowerArm.X0Y0_獣翼LowerArm.GetPosition());
}
Vector2D vector2D2 = (X0Y1_飛膜.GetOP()[40].ps[3] + X0Y1_飛膜.GetOP()[40].ps[0]) * 0.5;
X0Y1_飛膜.GetOP()[40].ps[2] = vector2D2 + (X0Y1_飛膜.GetOP()[40].ps[3] - X0Y1_飛膜.GetOP()[40].ps[0]) * 0.8;
X0Y1_飛膜.GetOP()[40].ps[1] = vector2D2 + (X0Y1_飛膜.GetOP()[40].ps[3] - X0Y1_飛膜.GetOP()[40].ps[0]) * 0.4;
X0Y1_飛膜.GetOP()[40].ps[2] += (vector2D - X0Y1_飛膜.GetOP()[40].ps[2]) * 0.3;
X0Y1_飛膜.GetOP()[40].ps[1] += (vector2D - X0Y1_飛膜.GetOP()[40].ps[1]) * 0.3;
}
else
{
if (UpperArm.ConnectionType == ConnectionInfo.Shoulder_UpperArm_接続)
{
X0Y1_飛膜.GetOP()[40].ps[0] = X0Y0_飛膜.ToLocal(UpperArm.X0Y0_獣翼UpperArm.ToGlobal(UpperArm.X0Y0_獣翼UpperArm.GetOP()[0].ps[4]));
}
else
{
X0Y1_飛膜.GetOP()[40].ps[0] = X0Y0_飛膜.ToLocal(UpperArm.X0Y0_獣翼UpperArm.ToGlobal(UpperArm.X0Y0_獣翼UpperArm.GetOP()[0].ps[4].AddY(0.003)));
}
Vector2D vector2D3 = (X0Y1_飛膜.GetOP()[40].ps[3] + X0Y1_飛膜.GetOP()[40].ps[0]) * 0.5;
X0Y1_飛膜.GetOP()[40].ps[2] = (X0Y1_飛膜.GetOP()[40].ps[3] + vector2D3) * 0.5;
X0Y1_飛膜.GetOP()[40].ps[1] = (vector2D3 + X0Y1_飛膜.GetOP()[40].ps[0]) * 0.5;
}
if (LowerArm == null)
{
Vector2D vector2D4 = X0Y1_飛膜.ToLocal(.X0Y0_獣翼手.GetPosition());
X0Y1_飛膜.GetOP()[40].ps[2] += (vector2D4 - X0Y1_飛膜.GetOP()[40].ps[2]) * 0.3;
X0Y1_飛膜.GetOP()[40].ps[1] += (vector2D4 - X0Y1_飛膜.GetOP()[40].ps[1]) * 0.3;
}
else
{
Vector2D vector2D5 = X0Y1_飛膜.ToLocal(LowerArm.X0Y0_獣翼LowerArm.GetPosition());
X0Y1_飛膜.GetOP()[40].ps[2] += (vector2D5 - X0Y1_飛膜.GetOP()[40].ps[2]) * 0.3;
X0Y1_飛膜.GetOP()[40].ps[1] += (vector2D5 - X0Y1_飛膜.GetOP()[40].ps[1]) * 0.3;
}
if (UpperArm.ConnectionType != ConnectionInfo.Shoulder_UpperArm_接続)
{
X0Y1_飛膜.GetOP()[39].ps[2] = X0Y1_飛膜.GetOP()[40].ps[0];
}
else
{
X0Y1_飛膜.GetOP()[39].ps[2] = X0Y1_飛膜.GetOP()[40].ps[0].AddY(0.05);
}
X0Y1_飛膜.GetOP()[39].ps[0] = X0Y1_飛膜.ToLocal(.X0Y0_小指_指3.ToGlobal(.X0Y0_小指_指3.GetOP()[2].ps[2]));
X0Y1_飛膜.GetOP()[39].ps[1] = (X0Y1_飛膜.GetOP()[39].ps[2] + X0Y1_飛膜.GetOP()[39].ps[0]) * 0.5;
X0Y1_飛膜.GetOP()[39].ps[1] += (X0Y1_飛膜.ToLocal(.X0Y0_小指_指3.GetPosition()) - X0Y1_飛膜.GetOP()[39].ps[1]) * 0.85;
if ()
{
X0Y1_飛膜.GetOP()[39].ps[1] = (X0Y1_飛膜.GetOP()[39].ps[2] + X0Y1_飛膜.GetOP()[39].ps[0]) * 0.5;
X0Y1_飛膜.GetOP()[39].ps[1] += (X0Y1_飛膜.ToLocal(.X0Y0_小指_指1.ToGlobal(.X0Y0_小指_指1.GetJP()[0].Joint)) - X0Y1_飛膜.GetOP()[39].ps[1]) * 0.3;
}
Vector2D vector2D6 = X0Y1_飛膜.GetOP()[39].ps[0];
Vector2D vector2D7 = X0Y1_飛膜.ToLocal(.X0Y0_薬指_指3.ToGlobal(.X0Y0_薬指_指3.GetOP()[2].ps[2]));
Vector2D vector2D8 = (vector2D6 + vector2D7) * 0.5;
double num = vector2D6.DistanceSquared(vector2D7);
Vector2D vector2D9 = (X0Y1_飛膜.GetOP()[38].ps[2] + X0Y1_飛膜.GetOP()[23].ps[0]) * 0.5;
double num2 = X0Y1_飛膜.GetOP()[38].ps[2].DistanceSquared(X0Y1_飛膜.GetOP()[23].ps[0]);
Vector2D v = X0Y1_飛膜.GetOP()[31].ps[0] - vector2D9;
Vector2D v2 = X0Y1_飛膜.ToLocal(.X0Y0_人指_指2.GetPosition()) - vector2D8;
double num3 = v.Angle02π(DataConsts.Vec2DUnitY);
MatrixD transform = num3.RotationZ();
MatrixD transform2 = (v.Angle02π(v2) - num3).RotationZ();
Vector2D vector2D10 = vector2D8 - vector2D9;
double num4 = num / num2;
double num5 = vector2D9.X - vector2D9.X * num4;
for (int i = 0; i < 16; i++)
{
int index = 42 - (i + 4);
for (int j = 0; j < X0Y1_飛膜.GetOP()[index].ps.Count; j++)
{
Vector2D coord = X0Y1_飛膜.GetOP()[index].ps[j].TransformCoordinateBP(vector2D9, transform);
coord.X = coord.X * num4 + num5;
X0Y1_飛膜.GetOP()[index].ps[j] = coord.TransformCoordinateBP(vector2D9, transform2) + vector2D10;
}
}
X0Y1_飛膜.GetOP()[38].ps[2] = vector2D6;
X0Y1_飛膜.GetOP()[23].ps[0] = vector2D7;
vector2D6 = X0Y1_飛膜.GetOP()[23].ps[0];
vector2D7 = X0Y1_飛膜.ToLocal(.X0Y0_中指_指3.ToGlobal(.X0Y0_中指_指3.GetOP()[2].ps[2]));
vector2D8 = (vector2D6 + vector2D7) * 0.5;
double num6 = vector2D6.DistanceSquared(vector2D7);
vector2D9 = (X0Y1_飛膜.GetOP()[22].ps[2] + X0Y1_飛膜.GetOP()[3].ps[0]) * 0.5;
num2 = X0Y1_飛膜.GetOP()[22].ps[2].DistanceSquared(X0Y1_飛膜.GetOP()[3].ps[0]);
Vector2D v3 = X0Y1_飛膜.GetOP()[13].ps[0] - vector2D9;
v2 = X0Y1_飛膜.ToLocal(.X0Y0_中指_指2.GetPosition()) - vector2D8;
num3 = v3.Angle02π(DataConsts.Vec2DUnitY);
transform = num3.RotationZ();
transform2 = (v3.Angle02π(v2) - num3).RotationZ();
vector2D10 = vector2D8 - vector2D9;
num4 = num6 / num2;
num5 = vector2D9.X - vector2D9.X * num4;
for (int k = 0; k < 20; k++)
{
int index = 42 - (k + 20);
for (int l = 0; l < X0Y1_飛膜.GetOP()[index].ps.Count; l++)
{
Vector2D coord = X0Y1_飛膜.GetOP()[index].ps[l].TransformCoordinateBP(vector2D9, transform);
coord.X = coord.X * num4 + num5;
X0Y1_飛膜.GetOP()[index].ps[l] = coord.TransformCoordinateBP(vector2D9, transform2) + vector2D10;
}
}
X0Y1_飛膜.GetOP()[22].ps[2] = vector2D6;
X0Y1_飛膜.GetOP()[3].ps[0] = vector2D7;
X0Y1_飛膜.GetOP()[2].ps[2] = vector2D7;
X0Y1_飛膜.GetOP()[2].ps[0] = X0Y1_飛膜.ToLocal(.X0Y0_中指_指3.GetPosition());
X0Y1_飛膜.GetOP()[2].ps[1] = X0Y1_飛膜.ToLocal(.X0Y0_中指_指3.ToGlobal(.X0Y0_中指_指3.GetOP()[2].ps[1]));
X0Y1_飛膜.GetOP()[1].ps[2] = X0Y1_飛膜.GetOP()[2].ps[0];
X0Y1_飛膜.GetOP()[1].ps[0] = X0Y1_飛膜.ToLocal(.X0Y0_人指_指3.ToGlobal(.X0Y0_人指_指3.GetOP()[2].ps[2]));
X0Y1_飛膜.GetOP()[1].ps[1] = (X0Y1_飛膜.GetOP()[1].ps[2] + X0Y1_飛膜.GetOP()[1].ps[0]) * 0.5;
X0Y1_飛膜.GetOP()[1].ps[1] += (X0Y1_飛膜.ToLocal(.X0Y0_人指_指1.GetPosition()) - X0Y1_飛膜.GetOP()[1].ps[1]) * 0.08;
X0Y1_飛膜.GetOP()[0].ps[2] = X0Y1_飛膜.GetOP()[1].ps[0];
X0Y1_飛膜.GetOP()[0].ps[0] = value;
X0Y1_飛膜.GetOP()[0].ps[1] = X0Y1_飛膜.ToLocal(.X0Y0_人指_指3.ToGlobal(.X0Y0_人指_指3.GetOP()[2].ps[1]));
}
public override void ()
{
if (Body.GetIndexY() == 0)
{
X0Y0_飛膜CP.Update();
}
else
{
X0Y1_飛膜CP.Update();
}
}
public override void (Vector2D[] mm)
{
if (Body.GetIndexY() == 0)
{
X0Y0_飛膜CP.Update(mm);
}
else
{
X0Y1_飛膜CP.Update(mm);
}
}
private void (BodyColorSet )
{
switch ()
{
case .N0:
N0();
break;
case .T0:
T0();
break;
case .T1:
T1();
break;
default:
N0();
break;
}
}
private void N0(BodyColorSet )
{
CD = new ColorD(ref ColorHelper.Black, ref .R);
}
private void T0(BodyColorSet )
{
CD = new ColorD(ref ColorHelper.Black, ref .R);
}
private void T1(BodyColorSet )
{
CD = new ColorD(ref ColorHelper.Black, ref .R);
}
}
}