// PhysBoneIKGrab tool
Description
๐ ์ค๋ช
VRChat์ PhysBone Component๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์ฌ๋์ด๋ ์์ ์ด ํ์ด๋ ๋ค๋ฆฌ๋ฅผ ์ก๊ณ ์์ง์ผ ์ ์๋๋ก ํ๋ Unity ์๋ํฐ ์คํฌ๋ฆฝํธ์
๋๋ค.
โ๏ธ ์ค์ ๋ฐฉ๋ฒ
์๋จ ๋ฉ๋ด์ Window/kamyu_/PhysBoneIKGrab ํด๋ฆญ์ ์๋ํฐ ์ฐฝ์ด ํ์๋ฉ๋๋ค.
- Target : ์ ํ ์์๋ฅผ ํด๋ฆญ ์ ๋ฏธ๋ฆฌ ์ค์ ๋์ด์๋ ํ๋ฆฌ์
์ผ๋ก ๊ฐํธํ๊ฒ ์๋ฐํ ๋ณธ์ ์ง์ ํ ์ ์์ต๋๋ค.
- Write Defaults : ์๋ฐํ์ FX ์ ๋๋ฉ์ดํฐ์ Write Defaults ์ต์
์ด ํ์ฑํ ๋์ด์์ ๊ฒฝ์ฐ ์ฒดํฌ ํ์๋ฉด ๋ฉ๋๋ค. (๊ฐ๋จํ๊ฒ MMD ์๋ ๋์์ด ๋์ด์์ ๊ฒฝ์ฐ ์ฒดํฌ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.)
- Allow Upper Bone Grab : ํด๋น ์ต์
์ ํ์ฑํ ํ ๊ฒฝ์ฐ Lower, End ๋ณธ ๋ฟ๋ง ์๋๋ผ Upper ๋ณธ ๊น์ง ์ก์ ์ ์์ต๋๋ค. (๋นํ์ฑํ ๋์ด์์ ๊ฒฝ์ฐ Lower, End ๋ณธ๋ง ์ก์ ์ ์์ต๋๋ค.)
- Bone Collider Radius : PhysBone Component ์ Collider ์ฌ์ด์ฆ๋ฅผ ์ค์ ํฉ๋๋ค.
- Freeze End Bone Angle : ํ์ฑํ ์ ๋๊ตฐ๊ฐ๊ฐ PhysBone ์ ์ก์ ๊ฒฝ์ฐ ๋ ๋ณธ์ ๊ฐ๋๋ฅผ ๊ณ ์ ํฉ๋๋ค.
- End Bone Offset : PhysBone ์ Offset ๊ฐ์ ์ค์ ํฉ๋๋ค.
- Allow Self Grab : ์์ ์ด ์ง์ ์ก์ ์ ์๊ฒ๋ ํฉ๋๋ค. - ํด๋น ๊ธฐ๋ฅ์ ํ์ ์ค์ ํ ๋ ๋นํ์ฑํ ํ์
์ผ ๋ฌธ์ ๊ฐ ์๊ธฐ์ง ์์ต๋๋ค.
- PhysBone Angle X Limit : ํผ์ง์ค๋ณธ์ ๊ฐ๋๋ฅผ ์ ํํฉ๋๋ค.
- Max Stretch : ์ก๊ณ ๋น๊ฒผ์ ๋ ๋ณธ์ด ๋์ด๋๋๋ก ์ค์ ํฉ๋๋ค.
- Allow Posing : ๊ณ ์ ๊ธฐ๋ฅ์ ํ์ฑํ ํฉ๋๋ค.
- Add Grabble Toggle Parameter : IKGrab_GrabToggle ํ๋ผ๋ฉํฐ๋ฅผ FX ์ ๋๋ฉ์ดํฐ์ ์ถ๊ฐํ๊ณ ํด๋น ํ๋ผ๋ฉํฐ๋ฅผ ์ด์ฉํ์ฌ ์ก๊ธฐ ๊ธฐ๋ฅ์ ํ ๊ธ๋ก On/Off ๊ฐ๋ฅํ๊ฒ๋ ์ค์ ํฉ๋๋ค.
- Add Posing Toggle Parameter : IKGrab_PoseToggle ํ๋ผ๋ฉํฐ๋ฅผ FX ์ ๋๋ฉ์ดํฐ์ ์ถ๊ฐํ๊ณ ํด๋น ํ๋ผ๋ฉํฐ๋ฅผ ์ด์ฉํ์ฌ ์ก๊ธฐ ๊ธฐ๋ฅ์ ํ ๊ธ๋ก On/Off ๊ฐ๋ฅํ๊ฒ๋ ์ค์ ํฉ๋๋ค.
-> ์ฃผ์ ์ฌํญ
Add Grabble Toggle Parameter, Add Posing Toggle Parameter ์ต์
์ ํ์ฑํ ํ ๊ฒฝ์ฐ ์ง์ ExpressionParameters ์ ExpressionMenu ์ ํ๋ผ๋ฉํฐ์ ๋ฒํผ์ ์ถ๊ฐ ํด ์ฃผ์
์ผ ํฉ๋๋ค.
๐ ์ด์ฉ ์ฝ๊ด
PhysBoneIKGrabTool ์ ๊ตฌ๋งคํ ์์ ๋ถํฐ ์ด์ฉ์ฝ๊ด์ ๋์ ํ ๊ฒ์ผ๋ก ๊ฐ์ฃผํฉ๋๋ค.
โ ์ฌํ๋งค
โ ์คํฌ๋ฆฝํธ์ ์ผ๋ถ๋ฅผ ์์ ์ ์ํ์ ํฌํจ
โ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๊ณต์
โ
๊ณต๊ฐ ์๋ฐํ๋ฅผ ๋ง๋ค๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ๊ธฐ๋ฅ์ ์ ์ฉ
-> ์ด์ฉ ์ฝ๊ด์ ์ธ์ ๋ ๋ณ๊ฒฝ ๋ ์ ์์ต๋๋ค.
-> ๋์ผํ ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ๋ ๋์ ์ํ์ ์๋กญ๊ฒ ๋ง๋๋๊ฒ์ด ์๋ ์ ์ ์ฝ๋๋ฅผ ๋ณต์ฌํ๊ณ ์์ ํ ๋ค ์์ ์ ์ฐฝ์๋ฌผ์ด๋ผ๊ณ ๋งํ์ง ๋ง์ญ์์ค. ๋ฌด๋ฃ๋ก ๊ณต๊ฐ๋์ด์๋ ์ํ๋ ์๋ ํ๋งค๋๊ณ ์๋ ์ํ์
๋๋ค.
---
EN - DeepL
๐ Description
This is a Unity Editor script that uses VRChat's PhysBone Component to allow others or yourself to grab and move an arm or leg.
โ๏ธ How to set it up
Click Window/kamyu_/PhysBoneIKGrab in the top menu to display the editor window.
- Target : You can easily specify the avatar bone with a preset by clicking the selection box.
- Write Defaults : Check this box if the Write Defaults option in the FX Animator of the avatar is enabled. (You can simply check this box if you want to use the MMD world).
- Allow Upper Bone Grab: If this option is enabled, you can grab the upper bone as well as the lower and end bones. (If disabled, you can only grab the lower and end bones).
- Bone Collider Radius: Sets the size of the PhysBone Component's collider.
- Freeze End Bone Angle: When enabled, this will freeze the angle of the end bone if someone grabs the PhysBone.
- End Bone Offset: Sets the Offset value for the PhysBone.
- Allow Self Grab: Allows the user to grab themselves. - This should be disabled when setting up the arm to avoid any issues.
- PhysBone Angle X Limit: Limits the angle of the PhysBone.
- Max Stretch: Sets how much the bone will stretch when grabbed and pulled.
- Allow Posing: Enables the pinning feature.
- Add Grabble Toggle Parameter: Adds the IKGrab_GrabToggle parameter to FX Animator and uses it to toggle the grabbing feature on and off.
- Add Posing Toggle Parameter : Add the IKGrab_PoseToggle parameter to the FX Animator and use it to toggle the grabbing function on and off.
-> Notes
If you enable the Add Grabble Toggle Parameter and Add Posing Toggle Parameter options, you will need to manually add the parameters and buttons to ExpressionParameters and ExpressionMenu.
๐ Terms of Use
By purchasing PhysBoneIKGrabTool, you agree to the Terms of Use.
โ Resale
โ include parts of the script in your own products
โ Share it with others
โ
Use the script to create public avatars and apply its features
-> Terms of use are subject to change at any time.
-> Do not copy my code, modify it, and call it your own instead of creating a new and better product with the same idea. It's not a free product, it's a sold product.
---
JP - DeepL
๐ ่ชฌๆ
VRChatใฎPhysBone Componentใไฝฟ็จใใฆไปใฎไบบใ่ชๅใ่
ใ่ใๆดใใงๅใใใใจใใงใใใใใซใใUnityใจใใฃใฟในใฏใชใใใงใใ
โ๏ธ ่จญๅฎๆนๆณ
ใใใใกใใฅใผใฎ Window/kamyu_/PhysBoneIKGrab ใใฏใชใใฏใใใจใจใใฃใฟใฆใฃใณใใฆใ่กจ็คบใใใพใใ
- Target : ้ธๆใใใฏในใใฏใชใใฏใใใจใใใใใใ่จญๅฎใใใฆใใใใชใปใใใง็ฐกๅใซใขใใฟใผใใผใณใๆๅฎใใใใจใใงใใพใใ
- Write Defaults : ใขใใฟใผใฎFXใขใใกใผใฟใผใฎWrite Defaultsใชใใทใงใณใๆๅนใซใชใฃใฆใใๅ ดๅใใใงใใฏใๅ
ฅใใพใ(็ฐกๅใซMMDใฏใผใซใใซๅฏพๅฟใใฆใใๅ ดๅใใใงใใฏใๅ
ฅใใพใ)ใ
- Allow Upper Bone Grab : ใใฎใชใใทใงใณใๆๅนใซใใๅ ดๅใLower, End ใใผใณใ ใใงใชใใUpper ใใผใณใพใงใคใใใใจใใงใใพใใ (็กๅนใซใชใฃใฆใใๅ ดๅใLower, End ใใผใณใฎใฟใคใใใใจใใงใใพใ)ใ
- Bone Collider Radius : PhysBone Component ใฎ Collider ใตใคใบใ่จญๅฎใใพใใ
- Freeze End Bone Angle : ๆๅนใซใใใจใ่ชฐใใ PhysBone ใใคใใๅ ดๅใใจใณใใใผใณใฎ่งๅบฆใๅบๅฎใใพใใ
- End Bone Offset : PhysBone ใฎ Offset ๅคใ่จญๅฎใใพใใ
- Allow Self Grab : ่ชๅ่ช่บซใงๆดใใใจใใงใใใใใซใใพใใ- ใใฎๆฉ่ฝใฏใใขใผใ ใ่จญๅฎใใ้ใซ็กๅนใซใใฆใใใจๅ้กใ็บ็ใใพใใใ
- PhysBone Angle X Limit : ็ฉ็ใใผใณใฎ่งๅบฆใๅถ้ใใพใใ
- Max Stretch : ๅผใฃๅผตใฃใใจใใซใใผใณใไผธใณใใใใซ่จญๅฎใใพใใ
- Allow Posing : ๅบๅฎๆฉ่ฝใๆๅนใซใใพใใ
- Add Grabble Toggle Parameter : IKGrab_GrabToggle ใใฉใกใผใฟใ FX Animator ใซ่ฟฝๅ ใใใใฎใใฉใกใผใฟใๅฉ็จใใฆใฐใฉใๆฉ่ฝใ Toggle On/Off ใงใใใใใซ่จญๅฎใใพใใ
- Add Posing Toggle Parameter : IKGrab_PoseToggle ใใฉใกใผใฟใFXใขใใกใผใฟใผใซ่ฟฝๅ ใใใใฎใใฉใกใผใฟใๅฉ็จใใฆใฐใฉใๆฉ่ฝใใใฐใซใงใชใณ/ใชใใงใใใใใซ่จญๅฎใใพใใ
-> ๆณจๆไบ้
Add Grabble Toggle Parameter, Add Posing Toggle Parameterใชใใทใงใณใๆๅนใซใใๅ ดๅใ็ดๆฅExpressionParametersใจExpressionMenuใซใใฉใกใผใฟใจใใฟใณใ่ฟฝๅ ใใฆใใ ใใใ
๐ ๅฉ็จ่ฆ็ด
PhysBoneIKGrabTool ใ่ณผๅ
ฅใใๆ็นใใๅฉ็จ่ฆ็ดใซๅๆใใใใฎใจใฟใชใใพใใ
โ ๅ่ฒฉ
โ ในใฏใชใใใฎไธ้จใ่ชๅใฎๅๅใซๅซใใ
โ ไปใฎไบบใจๅ
ฑๆใใ
โ
ๅ
ฌ้ใขใใฟใผใไฝๆใใ้ใซในใฏใชใใใๅฉ็จใใฆๆฉ่ฝใ้ฉ็จใใพใใ
-> ๅฉ็จ่ฆ็ดใฏใใคใงใๅคๆดใใใใจใใงใใพใใ
-> ๅใใขใคใใขใๆใฃใฆใใ่ฏใๅๅใๆฐใใซไฝใใฎใงใฏใชใใ็งใฎใณใผใใใณใใผใใฆไฟฎๆญฃใใๅพใ่ชๅใฎๅตไฝ็ฉใ ใจ่จใใชใใงใใ ใใใ็กๆใงๅ
ฌ้ใใใฆใใๅๅใงใใชใใ่ฒฉๅฃฒใใใฆใใๅๅใงใใ