游戏开发中的高跟鞋难题:The High Heel Problem
Simonschreibt.
Menu
⭐ Game Art Tricks ⚙ Work Flow Tricks 💌 Newsletter 👩👧👦 Discord 🌳 Linktree I made a game! Buy on Steam A Game Art Trick The High Heel Problem
Introduction
本文探讨了不同类型的鞋子如何影响游戏开发,并考察了游戏在实践中如何处理这个问题。
在深入探讨之前,让我们先来看看高跟鞋的可能性:
以防我搞砸了术语,这里有一个小图表:
来源: Shola
Character Height | Posture | Animation | Optimization | Audio | Bonus | Summary | Sources
💘💘💘 Huge thanks to Nicolas, Damrus, Irina, Battz, Magari, Luna, Angel for helping with this article. 💘💘💘
Character Height
🚨 The Problem
不同的角色体型意味着游戏开发者需要做大量额外的工作。这里有一个很好的例子,来自《Dragon's Dogma 2》,其中具有不同体型的角色仍然可以接吻:
Source: Dragons Dogma 2 Let’s Play #1 & #2
在这里我们可以看到动画是如何调整的,以便嘴唇能够相遇。 摄像机也做了很多工作:
Source: Dragons Dogma 2 Let’s Play #1 & #2
但是即使所有角色都有相同的身高,不同的鞋子也会影响角色的身高! 这导致了新的骨骼位置,因此,例如,手指不再击中墙上的按钮。
Source: Mixamo “Romero”
除了精确的交互之外,在某些特殊情况下,高跟鞋可能会导致问题:例如,你应该小心高跟鞋不会暴露玩家的藏身之处:
Source: Mixamo “Romero”
如果角色身高发生变化,您可能还需要更新碰撞体积,尤其是在竞技游戏中。 这取决于引擎如何处理这些体积。 最好仔细检查!
游戏开发者现在正面临一个十字路口。 明智地选择!
让我们先谈谈选项A,我们正确而真实地调整角色身高!
💡 Solution A: “Adjust Height”
有三种方法可以处理角色不同鞋子高度带来的后果:
- 抱最好的希望
- 手动修复
- 动态修复
🙈 1. Hope for the best
有些游戏可以负担得起调整角色身高,因为与NPC或环境只有很少的精确互动。 例如,在玩《Infinity Nikki》时,我发现的大多数动画都无关紧要,例如 Nikki 高 10 厘米或矮 10 厘米(例如打开箱子):
Source: Infinity Nikki
而且我不记得任何精确的互动在过场动画中(例如握手)。 因此,抬高身体并不是什么大问题:
Source: Infinity Nikki
但是,有一个例外:我注意到一种情况,其中存在密切的互动:梳妆。 有两种服装:一种有高跟鞋,一种没有高跟鞋:
Source: Infinity Nikki
我想如果我非常仔细地观察,我可以看到带有高跟鞋的动画存在轻微的剪切问题。 不过,这可能是由于不同的地形造成的。 我不确定,但这绝对不是什么大问题。
《Saints Row》是另一款正确调整角色大小的游戏,也是我偶然发现的唯一一款你可以作为男性角色穿高跟鞋的游戏:
Source: Saints Row
💪 2. Manual Labor
如果游戏需要,动画师可以创建独特的动画(每种鞋类型),例如,手部位置得到纠正。 他们会喜欢的!
stand_groom_barefoot.fbx stand_groom_shoe_5cm.fbx stand_groom_shoe_12cm.fbx
但是要小心! 如果没有调整所有动画,这可能会导致问题。 例如,这里,一个特定的高尔夫动画似乎只适用于平底鞋:
Source: GTA Online
饮酒动画(右)也发生同样的情况,它似乎只适用于平底鞋。 当涉及高跟鞋时,诸如摩托车骑行之类的特殊情况也需要特别注意:
Source: Suggestions to improve female characters
以下是更仔细地了解发生的情况:当穿高跟鞋(右)时,脚必须摆出不同的姿势。 否则看起来很滑稽(左):
Source: CGarchitect
顺便说一句,当更换鞋子时,在《Nikki》中也可以看到相同的行为在单个帧中。 鞋子网格在姿势调整前一帧被替换:
Source: Infinity Nikki
⚙️ 3. Dynamic Systems
手动调整是一项繁重的工作! 有没有办法自动化它? 例如,如果你想拥有一个牵手机制,那么你需要大量的动画来确保具有不同鞋子高度的角色的手仍然可以精确地相遇,这将是一场噩梦。
Source: Hand Holding Mechanics
IK 来救援了!
现代引擎提供实时IK系统。 大多数玩家已经熟悉它们,因为这些系统会根据地形调整脚的方向:
Source: Infinity Nikki
这样的系统也可以用于大气程序动画,例如在您走过时触摸墙壁:
Source: iHeartGameDev | Uncharted
或者,这对我们的主题特别令人兴奋,动态调整手的位置,使其朝向目标,因此角色本身可以具有不同的高度,并且/或者目标可以在关卡中处于动态高度:
Source: Unreal Content Examples: IK Rig
但是要小心。 如果 IK 目标使用不正确,您可能会最终得到 NSFW 动画。 警告过你了!
💡 Solution B: “Find Workaround”
不想手动调整所有动画或使用动态系统? 没问题!让我们来看看一些让角色穿上高跟鞋而不改变实际身高以绕过上述问题的方法。
同样,我们有三个选择:
- 隐藏
- 缩短
- 弯曲
🙈 1. Hide!
如果鞋子允许,您可以将脚“隐藏”在鞋底中。 这会使腿看起来更短(就像在下一节中一样),但既不需要改变腿也不需要改变鞋子:
Source: Example kindly provided by Irina
🦶 2. Shorten
我在研究中经常看到这种解决方案:只是缩短小腿,以便不改变角色的身高。
这是一个在 Sims 4 中的示例,正如您所见:臀部保持原位,大腿没有改变,但是小腿被缩短(角度向上移动):
Source: Sims 4
另一个坐在时的例子:
Source: Sims 4
《Watchdog Legions》也是如此。 但是,小腿的形状在这里会发生变化,因为它略微被压缩:
Source: Watchdog Legions
另一个例子,这次来自《Cyberpunk》:
Source: Cyberpunk 2077
通常,腿部几何体被替换为不同的几何体。 理论上,也可以使用混合形状,但这些形状很昂贵。
⚠️ 重要提示:仅更改网格,不更改骨架。 这意味着脚踝围绕其旋转的脚仍然具有相同的位置:
这可能会导致强烈的视觉扭曲,就像在《Final Fantasy 14》中一样:
Source: Reddit Discussion
相比之下,穿高跟鞋时脚踝应该位于此位置。 当然,您永远无法在《Nier》中切换到平底鞋,因此它们可以完美地适应骨架:
Source: Platinum Games Blog
🦵 3. Bend
这是一个很好的例子,其中同步的角色身高非常重要(否则接吻时嘴唇就不会相遇),但是不是缩短小腿,而是简单地将腿弯曲更多:
Source: 3D Sex Villa 2
Posture
如果你想正确地做到这一点,仅仅抬起臀部并将脚转到“高跟鞋”姿势是不够的。 根据这篇文章和这篇文章,整个姿势都会改变! 主要区别:
- 身体重量的重新分配
- 向前倾斜的骨盆,脊柱轻轻拱起
- 小腿肌肉参与
- 臀部的曲线更加明显
Source: Why Shoes Make“Normal” Gait Impossible
我尝试通过以下方式将其适应到我的僵尸:
- 抬起臀部
- 旋转脚部(使其再次接触地面)
- 通过倾斜骨盆和拱起脊柱来重新分配身体重量
Source: Mixamo “Romero”
我用一个行走动画做了一个测试。 我将我的姿势改变添加作为附加到mixamo行走动画,它起作用了! 看看我性感的僵尸 :)
Source: Mixamo “IV Pole Walking
顺便说一句#1,我注意到《Cyberpunk》中的一个小细节:当鞋子被更换时,我们可以简要地看到脚的姿势是如何变化的:
Source: Cyberpunk 2077
顺便说一句#2:如果你想非常精确,你也应该改变你大脚趾的方向,因为它经常不自然地被挤压到鞋子里:
Source: Foot in High Heel Turntable
Animation
除了身高和姿势之外,您可能还需要更改整个动画,因为高跟鞋可以极大地改变步态:
“高跟鞋鼓励更短、更刻意的步幅,从而实现更平稳、更受控的行走运动”
这篇文章甚至提供了一个小图表,显示了这些变化。 他们对12名女性进行了大量的运动捕捉分析:
Source: Human Gait Analysis using 3D Motion Capture
现在我们又到了游戏开发者的另一个十字路口!
如果你决定只重用平底鞋动画,别担心! 我会给你两个理由不要太担心:
- 其他开发者也这样做
- 即使穿高跟鞋,“正常”的行走也是可能的
😊 1. Other developers do the same
大多数游戏只是重用它们的动画。 我能找到的唯一一个使用自定义动画的例子是《Skyrim》的MOD! 在那里,高跟鞋的动画导致腿交叉和更明显的髋部运动:
Source: Conditional High Heel Walk
是的,确实可以在现实生活中观察到这种步态:
Source: Who says men not walk in heels
但是...
👠 2. “Normal” Walk in High Heels
这种交叉步态也适用于平底鞋(左),而中度交叉(中)或完全没有交叉(右)的步态也适用于高跟鞋:
Source: Shutterstock
因此,穿高跟鞋并不意味着你的腿自动交叉,你的臀部会疯狂摆动。 但如果这正是你想要的,而你的游戏“只”提供平底鞋,你仍然可以做到。 一切皆有可能!
顺便说一句,即使是《Nikki》也没有每只鞋子都有独特的动画,而这款游戏完全是关于服装和时尚穿着:
Source: Infinity Nikki
然而,他们确实有不同的空闲动画。 我数了四个不同的动画,具体取决于你穿哪双鞋。 在我看来,这相当多了:
Source: Infinity Nikki
Optimization
当腿的几何体被鞋子覆盖时会发生什么? 良好的处理有助于防止剪切,当然,这是一种很好的优化方法。
这是我们想要防止的:
Source: Daz To Unreal – Dealing with Heels
有些游戏将多边形隐藏在鞋子内。 在《Saints Row》中,腿由不同的部分组成,可以在必要时隐藏:
Source: Saints Row
《Watchdogs》也是一个有趣的例子:
- 左:整条腿是单个绘制调用,并且是完整的(即使脚趾被鞋子覆盖,它们也存在)
- 右:相同的位置,只是穿了一双平底鞋。 现在腿由多个网格(即绘制调用)组成。 我不确定为什么,因为两只鞋子都显示出大约相同数量的皮肤……很奇怪! 但是在这种情况下,脚趾被优化掉了!
Source: Watchdog Legions
这是游戏如何处理多边形减少的静态比较:
- 高跟鞋:使用完整的腿(带脚趾)。
- 平底鞋:腿由几个部分组成; 脚趾被移除。
- 靴子:腿由几个部分组成; 小腿被移除。
Source: Watchdog Legions
那么《Cyberpunk》呢? 他们只是保留了整条腿,即使靴子很大并且覆盖了大部分腿!
Source: Cyberpunk 2077
Audio
根据鞋子是否带有细高跟,脚步声应该听起来不同。 如果你根本没有穿鞋(赤脚),情况也是如此。 《Cyberpunk》在这方面做得很好:
Source: Cyberpunk 2077
如果你玩的是竞技游戏,高跟鞋可能会更容易暴露玩家的位置,因为它们通常声音更大。 这可能是一个平衡问题!
Bonus Work
你已经在游戏中内置了高跟鞋,一切正常,现在你感到无聊? 这里有一些挑战:
- 实施实时肌肉模拟以实现此目的:“抬高的脚后跟还会使小腿肌肉参与进来,并突出臀部的曲线[...]”。
- 如果你做一个人们可能会受伤的生活模拟,你可以实施穿高跟鞋的长期副作用,如关节退化、小腿肌肉萎缩、神经组织增厚等等 (来源视频)。《Dwarf Fortress》是否已经模拟了这一点?
- 根据高跟鞋和土壤类型实施“陷入地面”功能:
Source: Ultimate Heel Guards for Walking on Grass
- 为穿高跟鞋的战士实施更高的射程和伤害,但也增加 5% 的几率让他们滑倒并需要长时间暂停才能恢复:
Summary
- 支持不同的鞋类型可能会改变角色的身高和脚的方向(也可能改变碰撞体积)。
- 如果需要与环境或 NPC 进行精确交互,则身高变化的后果需要解决方案(独特的动画、IK 系统)或解决方法(缩短小腿、弯曲腿)
- 不同的鞋类型也可能改变姿势、步态和脚步声(后者可能在竞技游戏中造成平衡问题)。
- 许多游戏对所有鞋类型使用相同的动画(但诸如摩托车骑行或穿高跟鞋潜行等特殊情况可能需要特别注意)。
- 有时,鞋子覆盖的多边形会被删除以进行优化(也可以防止剪切)。 通常交换网格,因为混合形状太昂贵。
- 优雅的步态(双腿交叉、突出的臀部)也可能适用于平底鞋,而“正常”的步态也可能适用于高跟鞋。
History Lesson
最初,男人开始穿高跟鞋,然后女人采用——“这是为了使他们的服装男性化”。
Sources
Articles & Studies
- The Impact of High Heels on Walking https://www.oceansidepodiatrist.com/blog/item/1212-the-impact-of-high-heels-on-walking
- Wearing high heels – Scholl Biomechanics https://youtu.be/xlnmvALaMZg
- The influence of high heeled shoes on balance ability and walking in healthy women https://pmc.ncbi.nlm.nih.gov/articles/PMC6047962/
- Human Gait Analysis using 3D Motion Capture http://dyros.snu.ac.kr/project/human-gait-analysis-using-3d-motion-capture/?ckattempt=1
- Walking in High Heels: The Physics Behind the Physique https://illumin.usc.edu/walking-in-high-heels-the-physics-behind-the-physique/
- Platinum Blog Near Automata https://www.platinumgames.com/official-blog/article/8997
- Walking in high-heel shoes induces redistribution of joint power and work https://pmc.ncbi.nlm.nih.gov/articles/PMC10291901/
References
- https://www.shutterstock.com/video/search/woman-walk-side-view-heels
- https://www.shutterstock.com/video/search/walk-side-view
- Anatomy for Sculptors https://www.artstation.com/artwork/Vy3dXn
- SKAMotion 3D walk cycles https://www.youtube.com/@SKAmotion/videos
- Rapa Motion Female Heels (Motion Capture Animations for Unreal Engine) https://youtu.be/RJWVI_6cgJU
Tutorials & Discussions
General
- axyz women in heels and mocap
- how do devs implement changeable footwear for female characters?
- this is not how high heels work
- Conant Exiles High Heel Modder Guide
Blender
- Blender rigging heels https://www.youtube.com/watch?v=bV2jn57oJ4c
- Heel rigging in 60s https://www.youtube.com/watch?v=voYM3yyeZP4
- Royal skies rigging https://www.youtube.com/@TheRoyalSkies/videos
- How to Use Mixamo Animations in Blender 4.2 https://youtu.be/F25_c-Q0_Qw
Maya
- Maya Reverse Footroll Rigging https://www.artstation.com/blogs/dcbittorf/2ZYN/rigging-a-foot-roll-in-maya-using-a-reverse-foot
Unity
- unity heel flat transform https://www.youtube.com/shorts/tLZ0cRhAjeM
- Final IK: Interaction System (grabbing objects) https://youtu.be/RdSfLkFHTWM
- Learn Procedural Animation in Unity https://youtu.be/cg_vXWPaG8A
- How to handle high heel footwear in Unity characters/rigs? https://discussions.unity.com/t/how-to-handle-high-heel-footwear-in-unity-characters-rigs/59685
Unreal
- UE5 – Fix High Heels – TPS Template https://youtu.be/a58-dactGuU
- Feet IK Improvement with ControlRig https://youtu.be/Yho2BOrBnQs
- High Heels and flat feet help https://forums.unrealengine.com/t/high-heels-and-flat-feet-help/147715/5
- How to adapt High Heel shoe in Metahuman? https://forums.unrealengine.com/t/how-to-adapt-high-heel-shoe-in-metahuman/650189
- heels on meta human https://forums.unrealengine.com/t/attaching-high-heels-to-metahuman-resolved/1190673/5
- How to add custom clothing onto Metahumans in Unreal Engine using Blender https://youtu.be/3_b60jkuDMY
- Daz To Unreal – Dealing with Heels https://davidvodhanel.com/daz-to-unreal-dealing-with-heels/
- Unreal Engine 5.5: Hand Holding Mechanics https://youtu.be/x8I2Xi8bRL8
- Unreal Engine 4 Tutorial – Hands IK https://youtu.be/xsvvA042l98
- Unreal Engine IK Rig Example Setup https://dev.epicgames.com/documentation/en-us/unreal-engine/ik-rig-in-unreal-engine
Unreal Content Example Map: IK Rig
Wearing Examples
- heels walk male/female https://www.youtube.com/shorts/2DriKlNOJcc
- heels dance https://www.youtube.com/shorts/-ymWhRhoQ2o
- extreme plateau heels jump https://www.youtube.com/shorts/L-rvdMHA9ec
- extreme plateau https://www.youtube.com/shorts/79n-62kQttA
- fighting in heels https://www.tiktok.com/@blumineck/video/7282440261223992609
- kicking in heels https://youtube.com/shorts/aj81fNQFYH0?si=aMkDqtuLvbueOWib
- convertible https://www.youtube.com/shorts/1pHgqF5M-74