> For the complete documentation index, see [llms.txt](https://krjaeh0.gitbook.io/j-log/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://krjaeh0.gitbook.io/j-log/gamedev/gameplayprogrammer/animation/ik/ikinversekinematics.md).

# IKInverseKinematics

{% hint style="warning" %}
⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document.\
You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
{% endhint %}

## Excalidraw Data

### Text Elements

IK (Inverse Kinematics, 역운동학) ^e5ynBO2L

* 말단(end effector)의 위치를 지정하면, 루트 쪽 관절이 자동으로 움직여 연결을 맞춰주는 기술
* "손을 이 위치에 두고 싶다" > 어깨, 팔꿈치, 손목이 자동으로 그 자세가 되게 계산 ^tVssZuU2

^GfATgCii

FK (Forward Kinematics) : 관절을 루트부터 차례로 수동으로 회전시키며 포즈 구성\
IK (Inverse Kinematics) : 손이나 발 위치를 고정하고, 그 위치에 맞게 관절 자동 계산 ^U4hmmfJA

<예제> ^0VuZVi5u

* 캐릭터가 계단을 오를 때 발이 자연스럽게 바닥을 따라간다.
* 벽을 짚고 있는 손 모션
* VR에서 손 컨트롤러 위치에 맞춰 캐릭터 팔이 자동으로 따라간다.
* 발이 경사면이나 바닥을 따라 정확히 닿는 기술 ^LxIFJWvO
  * ㄴ 경사면에 따라 짝다리를 한다던가 ^RtNYjiUh

\<Unity IK 방식> ^7AaWb9R8

* Animator 기반 IK: Mecanim 애니메이터 컨트롤러에서 제공
* Final IK 플러그인: 고급 IK 솔루션 (Asset Store)
* Unity Physics 기반 Custom IK: 직접 본 회전 계산 ^NFqwTh5W

%%

### Drawing

```compressed-json
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=
```

%%


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://krjaeh0.gitbook.io/j-log/gamedev/gameplayprogrammer/animation/ik/ikinversekinematics.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
