222 lines
5.4 KiB
Plaintext
222 lines
5.4 KiB
Plaintext
{
|
|
"FormatVersion": 3,
|
|
"Id": "20eee636-7bd4-44e8-8a86-77fe4be1f50b"/*IkChain*/,
|
|
"Description": "FABRIK inverse kinematic on the GPU. While this operator is still experimental, it works pretty good. Suggestions and help needed.\nUse [Once] to initialize.\n",
|
|
"SymbolTags": "64",
|
|
"InputUis": [
|
|
{
|
|
"InputId": "1edbc9d8-e003-4337-b8f7-179068a11dff"/*PointsPerChain*/,
|
|
"Position": {
|
|
"X": 91.07559,
|
|
"Y": 1074.2563
|
|
},
|
|
"Description": "Set this value for multiple inverse kinematic chains.",
|
|
"AddPadding": "True"
|
|
},
|
|
{
|
|
"InputId": "4bfd6cb3-b4ac-4be8-b8d5-534463ceb9b8"/*DirectionBias*/,
|
|
"Position": {
|
|
"X": -297.85767,
|
|
"Y": 1036.587
|
|
},
|
|
"Description": "The chain will bend towards this direction"
|
|
},
|
|
{
|
|
"InputId": "4f1ff36a-734e-4da9-b897-fd2e19b3877b"/*TargetRotation*/,
|
|
"Position": {
|
|
"X": -129.5154,
|
|
"Y": 1208.2551
|
|
},
|
|
"Description": "The last point get the rotation of its target."
|
|
},
|
|
{
|
|
"InputId": "6c2c8f16-c874-44f7-bc39-bbf770546479"/*Reset*/,
|
|
"Position": {
|
|
"X": -48.924408,
|
|
"Y": 1039.2563
|
|
},
|
|
"Description": "Initialize the ik chain"
|
|
},
|
|
{
|
|
"InputId": "7b201b0d-8298-4ddd-b534-b8127e4c5581"/*Influence*/,
|
|
"Position": {
|
|
"X": -45.767853,
|
|
"Y": 981.56714
|
|
},
|
|
"Description": "Targets influence",
|
|
"Min": 0.0,
|
|
"Max": 1.0,
|
|
"ClampMin": true,
|
|
"ClampMax": true
|
|
},
|
|
{
|
|
"InputId": "824ab47a-93ae-432b-8f5a-e701251b0e36"/*Points*/,
|
|
"Relevancy": "Required",
|
|
"Position": {
|
|
"X": -223.23633,
|
|
"Y": 409.46204
|
|
}
|
|
},
|
|
{
|
|
"InputId": "83518060-732c-421e-b90a-97c325882fd6"/*AngleConstraint*/,
|
|
"Position": {
|
|
"X": 91.07559,
|
|
"Y": 1109.2563
|
|
},
|
|
"GroupTitle": "Constraints"
|
|
},
|
|
{
|
|
"InputId": "a47682b7-98fe-4461-a328-f9c8c14ef137"/*MaxBendAngle*/,
|
|
"Position": {
|
|
"X": -45.767853,
|
|
"Y": 1016.56714
|
|
}
|
|
},
|
|
{
|
|
"InputId": "b7b18e95-f9a7-4bca-8960-d2b3a535e394"/*Tolerance*/,
|
|
"Position": {
|
|
"X": -45.767853,
|
|
"Y": 946.56714
|
|
},
|
|
"Min": 0.0,
|
|
"Max": 0.1
|
|
},
|
|
{
|
|
"InputId": "de07cd9c-11e2-414d-9c5c-9e38cc51d80e"/*Targets*/,
|
|
"Position": {
|
|
"X": 245.3364,
|
|
"Y": 1218.9674
|
|
},
|
|
"AddPadding": "True"
|
|
},
|
|
{
|
|
"InputId": "ee7be099-7dfb-4c4e-98ad-0ae739cf9f5c"/*MaxIterations*/,
|
|
"Position": {
|
|
"X": 91.07559,
|
|
"Y": 1004.25635
|
|
},
|
|
"Min": 1,
|
|
"Max": 50,
|
|
"ClampMin": true,
|
|
"ClampMax": true
|
|
}
|
|
],
|
|
"SymbolChildUis": [
|
|
{
|
|
"ChildId": "0a47fa96-b543-4314-9ce4-46339e2ae506"/*StructuredBufferWithViews*/,
|
|
"Position": {
|
|
"X": 113.58789,
|
|
"Y": 622.60925
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "241338a3-dbb4-491a-a8db-dba5ad76743c"/*IntsToBuffer*/,
|
|
"Position": {
|
|
"X": 231.07559,
|
|
"Y": 1004.25635
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "281a8a14-5092-4875-b595-0477fd2c2b14"/*BoolToInt*/,
|
|
"Position": {
|
|
"X": 91.07559,
|
|
"Y": 1039.2563
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "4299d326-da69-4a40-9f95-3e76678c9bbd"/*GetBufferComponents*/,
|
|
"Position": {
|
|
"X": 113.58789,
|
|
"Y": 692.60925
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "4ba69f23-4984-409a-b6a4-b13948f57ef7"/*BoolToInt*/,
|
|
"Position": {
|
|
"X": 91.07559,
|
|
"Y": 1144.2563
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "5c3ba491-67d6-41e7-ab46-c84766e21c5a"/*Vector3Components*/,
|
|
"Position": {
|
|
"X": -274.91455,
|
|
"Y": 758.0317
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "5fa0d94a-c399-42c3-ac39-ddb644ef0d90"/*ExecuteBufferUpdate*/,
|
|
"Position": {
|
|
"X": 527.2919,
|
|
"Y": 733.39514
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "6efb7c5b-e4d9-49e2-8c3d-5e0f906c7868"/*GetBufferComponents*/,
|
|
"Position": {
|
|
"X": 245.3364,
|
|
"Y": 1253.9674
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "7cb1bcfd-e713-41ee-bbb6-322019b9cb8e"/*FloatsToBuffer*/,
|
|
"Position": {
|
|
"X": 94.23215,
|
|
"Y": 806.56714
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "88a07aef-0334-4e98-a09b-c56835c4e3e9"/*CalcDispatchCount*/,
|
|
"Position": {
|
|
"X": 253.58789,
|
|
"Y": 552.60925
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "93f4b2ec-c457-4867-905b-df507dd994f1"/*GetSRVProperties*/,
|
|
"Position": {
|
|
"X": 113.58789,
|
|
"Y": 587.60925
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "bd65a76f-03e2-4535-bd59-e0ac33ee055f"/*GetBufferComponents*/,
|
|
"Position": {
|
|
"X": -223.23633,
|
|
"Y": 444.46204
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "c6a16a24-10ec-4a81-91dd-82ee29104a24"/*ComputeShader*/,
|
|
"Position": {
|
|
"X": 113.58789,
|
|
"Y": 517.60925
|
|
}
|
|
},
|
|
{
|
|
"ChildId": "ef47ac1d-4ea4-42c3-8343-c636bd194f14"/*ComputeShaderStage*/,
|
|
"Position": {
|
|
"X": 527.2919,
|
|
"Y": 488.39514
|
|
}
|
|
}
|
|
],
|
|
"OutputUis": [
|
|
{
|
|
"OutputId": "69c450f9-5f20-422c-a5cd-82647effbdbf"/*OutBuffer*/,
|
|
"Position": {
|
|
"X": 527.2919,
|
|
"Y": 803.39514
|
|
}
|
|
}
|
|
],
|
|
"Links": [
|
|
{
|
|
"Id": "0cebc5be-d030-4117-93e4-93c4cc6f6150",
|
|
"Title": " FABRIK ",
|
|
"Description": "inverse kinematics algorithm by Dr. Andreas Aristidou",
|
|
"LinkUrl": "https://andreasaristidou.com/FABRIK",
|
|
"LinkType": "Reference"
|
|
}
|
|
]
|
|
} |