Smooth Motion Factory

Precautions when creating Skyrim locomotion 본문

Modding

Precautions when creating Skyrim locomotion

Smooth Motion 2025. 12. 5. 22:58
반응형

Understanding Skyrim Locomotion Animation: Footstep Events, Looping, and Weapon-Type Differences

Skyrim’s locomotion system is fundamentally built on eight-directional walk and run animations, with additional strafe animations used for left and right movement. In this article, I’ll explain how Skyrim’s locomotion works—using the two-handed sword locomotion set as the primary example—and why certain animation issues occur with weapons like warhammers and battleaxes.


Two-Handed Sword Locomotion (2hm_): Structure and Footstep Rules

When wielding a two-handed sword, Skyrim uses a total of 18 locomotion animations consisting of:

  • 8 directional run animations
  • 8 directional walk animations
  • Left/right strafe run
  • Left/right strafe walk

Important Note About Footstep Events

For 2hm locomotion, footstep annotations are embedded in the behavior files, not in the animation files. Because these events are not stored in the HKX animation itself:

  • You must not add footstep annotations to your animation files
  • You cannot change the footstep timing manually
  • Animations must be created to match the timing defined in the behavior

To assist animators, I documented the vanilla behavior’s locomotion data below. All values are based on 30 FPS.


Example Data (2hm Run Animations)

(Only a portion shown here — the full list can follow the same structure.)

2hm_runbackward.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.433000 FootLeft

2hm_runbackwardleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootRight
0.433000 FootLeft

2hm_runbackwardright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootRight
0.400000 FootLeft

2hm_runforward.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootLeft
0.367000 FootRight

2hm_runforwardleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hm_runforwardright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hm_runleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootLeft
0.367000 FootRight

2hm_runright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hm_runstrafeleft.hkx

# numOriginalFrames: 26
# duration: 0.833333
0.300000 FootLeft
0.600000 FootRight

2hm_runstraferight.hkx

# numOriginalFrames: 26
# duration: 0.833333
0.266667 FootLeft
0.600000 FootRight

Example Data (2hm Walk Animations)

2hm_walkbackward.hkx

# numOriginalFrames: 57
# duration: 1.866667
0.100000 FootLeft
0.933000 FootRight

2hm_walkbackwardleft.hkx

# numOriginalFrames: 57
# duration: 1.866667
1.066667 FootLeft

2hm_walkbackwardright.hkx

# numOriginalFrames: 57
# duration: 1.866667
1.766667 FootRight
0.800000 FootLeft

2hm_walkforward.hkx

# numOriginalFrames: 48
# duration: 1.566667
0.033333 FootLeft
0.800000 FootRight

2hm_walkforwardleft.hkx

# numOriginalFrames: 48
# duration: 1.566667
0.033333 FootLeft
0.800000 FootRight

2hm_walkforwardright.hkx

# numOriginalFrames: 51
# duration: 1.666667
0.033333 FootLeft
0.967000 FootRight

2hm_walkleft.hkx

# numOriginalFrames: 52
# duration: 1.700000
0.033000 FootRight

2hm_walkright.hkx

# numOriginalFrames: 52
# duration: 1.700000
0.700000 FootLeft
1.433333 FootRight

The Special Case: 2hw Locomotion (Warhammers & Battleaxes)

Two-handed blunt weapons use a completely different locomotion structure.

Vanilla Structure

  • 2hw_runarmblend.hkx
  • 2hw_walkarmblend.hkx

These animations:

  • Control upper-body movement only
  • Include no footstep events
  • Are independent of the 2hm lower-body animations

Meanwhile, the legs still use the 2hm locomotion animations.


The Problem: Upper and Lower Body Drift Over Time

Because:

  • the 2hw upper-body loops
  • and the 2hm lower-body loops

…have different cycle lengths, the animations eventually fall out of sync. This causes:

  • Upper and lower body moving at different rhythms
  • Visible jitter or shaking during long movement
  • A “disconnected” look when sprinting in a single direction

Even if the upper-body animation is almost static, the desync still becomes noticeable over time.


The Fix: Replacing 2hw Locomotion with a Full 2hm-Style Set

The mod War Hammer and Battle Axe Movement Fix corrects this problem by:

  • Replacing the upper-body blends with full locomotion animations
  • Matching the exact structure used by two-handed swords
  • Adding footstep events directly into the animation files (since 2hw behavior does not include them)

What You Need to Create

You must recreate the entire locomotion set:

  • 8 run animations
  • 8 walk animations
  • No strafe animations (vanilla 2hw does not use them)
  • Footstep annotations added directly into each HKX file

The footstep timing should match the 2hm reference values.


Example Data (2hw Run Animations)

2hw_runbackward.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.433000 FootLeft

2hw_runbackwardleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootRight
0.433000 FootLeft

2hw_runbackwardright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootRight
0.400000 FootLeft

2hw_runforward.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootLeft
0.367000 FootRight

2hw_runforwardleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hw_runforwardright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hw_runleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootLeft
0.367000 FootRight

2hw_runright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

Example Data (2hw Walk Animations)

2hw_walkbackward.hkx

# numOriginalFrames: 57
# duration: 1.866667
0.100000 FootLeft
0.933000 FootRight

2hw_walkbackwardleft.hkx

# numOriginalFrames: 57
# duration: 1.866667
1.066667 FootLeft

2hw_walkbackwardright.hkx

# numOriginalFrames: 57
# duration: 1.866667
1.766667 FootRight
0.800000 FootLeft

2hw_walkforward.hkx

# numOriginalFrames: 48
# duration: 1.566667
0.033333 FootLeft
0.800000 FootRight

2hw_walkforwardleft.hkx

# numOriginalFrames: 48
# duration: 1.566667
0.033333 FootLeft
0.800000 FootRight

2hw_walkforwardright.hkx

# numOriginalFrames: 51
# duration: 1.666667
0.033333 FootLeft
0.967000 FootRight

2hw_walkleft.hkx

# numOriginalFrames: 52
# duration: 1.700000
0.033000 FootRight

2hw_walkright.hkx

# numOriginalFrames: 52
# duration: 1.700000
0.700000 FootLeft
1.433333 FootRight

Conclusion

To create polished and functional Skyrim locomotion animations:

  • Follow the vanilla locomotion timing (especially footstep events)
  • Ensure loop curves are clean and seamless
  • Match the correct animation structure for each weapon type
  • For 2hw locomotion, rebuild the entire locomotion set to prevent desync between upper and lower body

By following these rules, animators can avoid many of the problems commonly encountered when creating custom movement animations for Skyrim.

스카이림 로코모션 애니메이션 구조, 발소리 타이밍, 무기 타입별 차이

스카이림의 이동 애니메이션(로코모션)은 기본적으로 8방향 걷기와 8방향 달리기로 구성되어 있으며, 좌우 이동에는 추가로 스트레이프(strafe) 모션이 포함되어 있습니다. 이 글에서는 특히 양손검(2hm) 로코모션을 기준으로 스카이림 엔진이 이동 애니메이션을 어떻게 처리하는지 설명하고, 양손망치·양손도끼(2hw) 무기를 사용할 때 발생하는 문제점과 해결 방식까지 정리해보겠습니다.


양손검 로코모션(2hm)의 구조와 발소리 규칙

2hm 로코모션은 총 18개의 애니메이션으로 구성됩니다.

  • 8 방향 달리기(run)
  • 8 방향 걷기(walk)
  • 좌/우 스트레이프 달리기
  • 좌/우 스트레이프 걷기

발소리(footstep) 주석은 애니메이션 파일에 넣으면 안 된다

스카이림의 2hm 로코모션은 발소리 이벤트가 비헤이비어 파일에 내장되어 있습니다. 즉, 애니메이션 파일(.hkx)에는 발소리 주석을 추가하면 안 되며, 애니메이션 제작 시 반드시 비헤이비어에 기록된 타이밍에 맞추어 애니메이션을 제작해야 합니다.

아래는 바닐라 2hm 로코모션의 발소리 타이밍을 정리한 자료이며, FPS 30 기준으로 작성되었습니다.


예시: 2hm 러닝 애니메이션 발소리 데이터

2hm_runbackward.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.433000 FootLeft

2hm_runbackwardleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootRight
0.433000 FootLeft

2hm_runbackwardright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootRight
0.400000 FootLeft

2hm_runforward.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootLeft
0.367000 FootRight

2hm_runforwardleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hm_runforwardright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hm_runleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootLeft
0.367000 FootRight

2hm_runright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hm_runstrafeleft.hkx

# numOriginalFrames: 26
# duration: 0.833333
0.300000 FootLeft
0.600000 FootRight

2hm_runstraferight.hkx

# numOriginalFrames: 26
# duration: 0.833333
0.266667 FootLeft
0.600000 FootRight

Example Data (2hm Walk Animations)

2hm_walkbackward.hkx

# numOriginalFrames: 57
# duration: 1.866667
0.100000 FootLeft
0.933000 FootRight

2hm_walkbackwardleft.hkx

# numOriginalFrames: 57
# duration: 1.866667
1.066667 FootLeft

2hm_walkbackwardright.hkx

# numOriginalFrames: 57
# duration: 1.866667
1.766667 FootRight
0.800000 FootLeft

2hm_walkforward.hkx

# numOriginalFrames: 48
# duration: 1.566667
0.033333 FootLeft
0.800000 FootRight

2hm_walkforwardleft.hkx

# numOriginalFrames: 48
# duration: 1.566667
0.033333 FootLeft
0.800000 FootRight

2hm_walkforwardright.hkx

# numOriginalFrames: 51
# duration: 1.666667
0.033333 FootLeft
0.967000 FootRight

2hm_walkleft.hkx

# numOriginalFrames: 52
# duration: 1.700000
0.033000 FootRight

2hm_walkright.hkx

# numOriginalFrames: 52
# duration: 1.700000
0.700000 FootLeft
1.433333 FootRight

로코모션이 ‘뚝뚝 끊겨 보이는’ 이유

이동 중 애니메이션이 뚝 끊기거나 루프 전환이 부자연스럽게 보인다면, 대부분의 원인은 그래프 에디터에서 루프 처리가 제대로 되지 않았기 때문입니다.

  • 곡선이 시작과 끝에서 자연스럽게 이어지는지
  • 마지막 프레임이 첫 프레임으로 부드럽게 연결되는지

이 두 가지를 확인해야 완벽한 루프 애니메이션을 만들 수 있습니다.


양손망치·양손도끼(2hw)의 로코모션 문제

2hw 무기(양손망치/양손도끼)는 로코모션 구조가 2hm과 완전히 다릅니다.

바닐라 2hw 로코모션 구성

  • 2hw_runarmblend.hkx — 상체 달리기 루프
  • 2hw_walkarmblend.hkx — 상체 걷기 루프

2hw에서는 상체 애니메이션만 별도로 루프되며, 하체는 여전히 2hm_ 로코모션을 사용합니다.

이 구조의 문제점

상체와 하체의 루프 길이가 서로 다르기 때문에 다음 문제가 발생합니다:

  • 오래 이동할수록 상체와 하체가 따로 움직임
  • 장시간 이동 시 상체 떨림(jitter)
  • 하체와 상체 리듬이 계속 어긋남

바닐라의 상체 모션이 거의 정적인 포즈 형태라면 티가 덜 날 수 있지만, 실제로는 이동할수록 점점 심하게 드러납니다.


해결 방법 War Hammer and Battle Axe Movement Fix

해당 모드는 2hw 이동 구조를 아예 2hm 방식으로 재구성하여 상/하체가 같은 루프를 따라가도록 수정합니다.

적용 방식은 다음과 같습니다:

  • 2hm 구조와 동일한 8방향 걷기/달리기 애니메이션 제작
  • 2hw에는 발소리가 없으므로 애니메이션 파일에 직접 Foot 이벤트 추가
  • 스트레이프 애니메이션은 사용하지 않으므로 제작할 필요 없음

이 방식으로 구성하면 상체와 하체가 완전히 동기화되며, 2hw 무기의 이동 떨림 문제를 해결할 수 있습니다.


2hw 예시 데이터

2hw_runbackward.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.433000 FootLeft

2hw_runbackwardleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootRight
0.433000 FootLeft

2hw_runbackwardright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootRight
0.400000 FootLeft

2hw_runforward.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootLeft
0.367000 FootRight

2hw_runforwardleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hw_runforwardright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

2hw_runleft.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033000 FootLeft
0.367000 FootRight

2hw_runright.hkx

# numOriginalFrames: 23
# duration: 0.733333
0.033333 FootLeft
0.366667 FootRight

Example Data (2hw Walk Animations)

2hw_walkbackward.hkx

# numOriginalFrames: 57
# duration: 1.866667
0.100000 FootLeft
0.933000 FootRight

2hw_walkbackwardleft.hkx

# numOriginalFrames: 57
# duration: 1.866667
1.066667 FootLeft

2hw_walkbackwardright.hkx

# numOriginalFrames: 57
# duration: 1.866667
1.766667 FootRight
0.800000 FootLeft

2hw_walkforward.hkx

# numOriginalFrames: 48
# duration: 1.566667
0.033333 FootLeft
0.800000 FootRight

2hw_walkforwardleft.hkx

# numOriginalFrames: 48
# duration: 1.566667
0.033333 FootLeft
0.800000 FootRight

2hw_walkforwardright.hkx

# numOriginalFrames: 51
# duration: 1.666667
0.033333 FootLeft
0.967000 FootRight

2hw_walkleft.hkx

# numOriginalFrames: 52
# duration: 1.700000
0.033000 FootRight

2hw_walkright.hkx

# numOriginalFrames: 52
# duration: 1.700000
0.700000 FootLeft
1.433333 FootRight

정리

스카이림 로코모션을 안정적으로 제작하려면 다음을 지켜야 합니다:

  • 바닐라의 정확한 발소리 타이밍 준수
  • 루프 그래프를 반드시 매끄럽게 처리
  • 무기 타입마다 사용되는 로코모션 구조 이해
  • 2hw는 2hm 방식으로 전체 로코모션을 교체해야 상하체 불일치 문제 해결

이러한 원리를 알고 제작하면 로코모션 품질이 크게 향상되며, 이동 중 떨림이나 발소리 오류 같은 문제도 예방할 수 있습니다.

반응형

'Modding' 카테고리의 다른 글

Understanding DirectInput (DXScanCode) Keycodes for Modding  (0) 2025.12.06

Unreleased mods are available in advance on the Discord download channel.

The Discord download channel becomes active when you join Patreon Tier 1 or higher.


Patreon Membership Benefits

Tier 1 or higher

Access to Discord Server
(Maintained even if support stops)

Discord Download Channel

For Honor in Skyrim - Kyoshin

For Honor in Skyrim - Black Prior

For Honor in Skyrim - Nobushi

For Honor in Skyrim - Highlander

For Honor in Skyrim - Lawbringer

For Honor in Skyrim - Grapple


Tier 2 or higher

All benefits of Tier 1

Guide Request

For Honor Real Time Waiting



 

If Patreon is not available in your region,
you can also join via YouTube Membership or Afdian.


How to Connect to Discord



Patreon

Patreon Discord Connection Guide

YouTube

YouTube Discord Connection Guide

Afdian

https://afdian.com/a/SmoothAnimation

 

아직 공개되지 않은 모드들은 디스코드 다운로드 채널에서 미리 이용할 수 있습니다. 

디스코드 다운로드 채널은 Patreon 1티어 이상 가입시 활성화 됩니다. 


Patreon 가입 혜택

1티어 이상

디스코드 서버 접근 권한
(후원을 중단시에도 유지됩니다.)

디스코드 다운로드 채널

For Honor in Skyrim - Kyoshin

For Honor in Skyrim - Black Prior

For Honor in Skyrim - Nobushi

For Honor in Skyrim - Highlander

For Honor in Skyrim - Lawbringer

For Honor in Skyrim - Grapple


2티어 이상

1티어의 모든 혜택

가이드 요청

For Honor Real Time Waiting



 

Patreon 플랫폼을 사용할 수 없는 지역이라면
Youtube 멤버십 또는 Afdian 플랫폼을 통해서도 가능합니다.


디스코드 서버 연결 방법



Patreon

Patreon 디스코드 연결 가이드

Youtube

Youtube 디스코드 연결 가이드

Afdian

https://afdian.com/a/SmoothAnimation