Application with a new feature: ptmikheev
Re: Application with a new feature: ptmikheev
For what it's worth, I think Bethesda improved that third person functionality even further by Fallout 4...
-
- Posts: 69
- Joined: 01 Jun 2020, 21:05
- Gitlab profile: https://gitlab.com/ptmikheev
Re: Application with a new feature: ptmikheev
What are the main differences there? I've not played Fallout 4. The only thing I see in youtube videos, is that camera is moved even more to the right from the character.
As an addition to my previous post. Here is the list of movement-related and camera-related features I am ready to work on. Please comment each one separately. Does it make sense for you?
1) 3rd person camera position
Support 2 modes:
* [current behaviour] Camera is behind character's head. Aim cross is hidden because it is obscured by character's head.
* [as in skyrim] Camera is behind right shoulder. Aim cross is visible in 3rd person mode as well.
2) Observation mode
Support 2 modes:
* [current behaviour] Enabled by pressing TAB.
* [as in skyrim] Enabled automatically in non-combat 3rd person mode when player stops.
3) Non-combat movement
Support 2 modes of non-combat movement:
* [current behaviour] Body is always pointed to the direction of view. Diagonal movement causes slipping.
* [skyrim-like] In non-combat situations only straight-forward and straight-backward animations are used. Lower body is rotated to the movement direction (or opposite for backward and backward-diagonal movement). Head is always pointed to the direction of view. Upper body orientation is somewhere in the middle.
4) Additional animations (long-term task)
Add support of custom animations for each of the 8 movement directions. It may also depend on weapon type. Then prepare an animation pack (probably converted from skyrim) and release it as a mod.
Re: Application with a new feature: ptmikheev
It is not hard to add support for several new animation groups to the engine, but these animations are not going to implement themselves.
The issue with additional animations is that there are no modmakers which are able to implement them.
Also I do not like the "skyrim-like" term - it is unclear why it is better than camera behaviour from other games and why OpenMW should have it as a built-in feature. Why not Fallout76-like, GTA5-like or Witcher3-like movement, for example? Why just do not implement Lua bindings for camera to allow content creators to tweak camera behaviour themselves?
- psi29a
- Posts: 5362
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: Application with a new feature: ptmikheev
Are there addition animations types supported in new versions of NIF?
-
- Posts: 69
- Joined: 01 Jun 2020, 21:05
- Gitlab profile: https://gitlab.com/ptmikheev
Re: Application with a new feature: ptmikheev
Yes, fully agree. So I would prefer to start from other three points since the result will be immediately visible.
I've mentioned Skyrim because it uses a new generation of the same MW engine and shares the same world. From some point of view Skyrim can be considered as Bethesda's opinion of "What can be improved in Morrowind and Oblivion".
I see your point why "skyrim-like" is a bad term. Is it OK to implement the same, but with neutral description?
I.e. such settings would sound quite general:
1) Third-person camera position: behind head / above right shoulder
2) Switch to observation mode when doesn't move: true / false
3) Non-combat strafe mode: use strafe animation / rotate body to the movement direction
I like the approach to extract as much as possible from the engine core to plugins.
I see on OpenMW wiki page: "However, we plan to add a new Lua-based scripting system before 1.0 release".
Do I understand right that it is not yet implemented?
I've never worked with animations before and unfortunately at the moment have no idea.
Re: Application with a new feature: ptmikheev
The main difference is outside of combat the player can turn their entire body around in any direction they wish, including directly towards and facing the camera, with no change in speed. This is closer to other third-person titles like Zelda: Breath of the Wild, where character does not face viewing direction at all but instead headtracks nearest object of interest (npc, item etc) except when "locked on" to a specific target.
Fallout has an additional quirk in third person compared to Skyrim in that if the player shifts in the complete opposite direction while running, a special animation will play where the character checks themselves before wheeling around and begins running again. This means it's slightly faster to completely change direction in first person view since the animation doesn't need to be played. It's a very minor thing however since, again, it only occurs outside of combat (doesn't have a weapon out).
-
- Posts: 69
- Joined: 01 Jun 2020, 21:05
- Gitlab profile: https://gitlab.com/ptmikheev
Re: Application with a new feature: ptmikheev
An update. View and movement became even more similar to Skyrim.
I've implemented what Chris mentioned.
I.e. no hacks with camera angle. Character always looks in the same direction as camera. Only lower body is fully rotated to the movement direction.
Third person camera behaviour
- In non-combat mode camera is positioned above the right shoulder to make the activation direction better visible.
- In combat mode camera is positioned above the character's head because otherwise it would affect aiming.
- Aim cross is visible even in third person mode.
- When player looks down, the camera goes a bit farther away from the character. After some testing I found it very convenient.
- Head is pointed to the direction of view.
- Lower body is rotated to the direction of movement.
- Upper body is only partially rotated.
- Strafe animation is not used at all.
- Strafe animation is used only for straight left and straight right movement.
- Head is pointed to the direction of view.
- Lower body is rotated to the direction of movement.
- Upper body is rotated only a bit. All attacks are still pointed forward.
- What is the conceptional difference between mwmechanics/actors.cpp, mwmechanics/actor.cpp, and mwmechanics/character.cpp? I.e. how to decide where to put some new function?
- What is the difference between "bip01 spine1" and "bip01 spine2"?
- There are a lot of hardcoded strings. Bone names, ids like "sMagicBoundRightGauntletID" and a lot of other. Does it make sense to refactor it and extract as constants? For example struct Bip01 { static const char* SPINE1 = "bip01 spine1"; ... };
I've implemented what Chris mentioned.
I.e. no hacks with camera angle. Character always looks in the same direction as camera. Only lower body is fully rotated to the movement direction.
Third person camera behaviour
- In non-combat mode camera is positioned above the right shoulder to make the activation direction better visible.
- In combat mode camera is positioned above the character's head because otherwise it would affect aiming.
- Aim cross is visible even in third person mode.
- When player looks down, the camera goes a bit farther away from the character. After some testing I found it very convenient.
- Spoiler: Show
- Head is pointed to the direction of view.
- Lower body is rotated to the direction of movement.
- Upper body is only partially rotated.
- Strafe animation is not used at all.
- Spoiler: Show
- Strafe animation is used only for straight left and straight right movement.
- Head is pointed to the direction of view.
- Lower body is rotated to the direction of movement.
- Upper body is rotated only a bit. All attacks are still pointed forward.
- Spoiler: Show
- What is the conceptional difference between mwmechanics/actors.cpp, mwmechanics/actor.cpp, and mwmechanics/character.cpp? I.e. how to decide where to put some new function?
- What is the difference between "bip01 spine1" and "bip01 spine2"?
- There are a lot of hardcoded strings. Bone names, ids like "sMagicBoundRightGauntletID" and a lot of other. Does it make sense to refactor it and extract as constants? For example struct Bip01 { static const char* SPINE1 = "bip01 spine1"; ... };
Chris was quite convincing that any difference between character facing direction and camera view direction would lead to significant complications. So I prefer to go an easy way and not to allow the player character to face the camera as in Fallout 4.CMAugust wrote: ↑04 Jun 2020, 22:40 The main difference is outside of combat the player can turn their entire body around in any direction they wish, including directly towards and facing the camera, with no change in speed. This is closer to other third-person titles like Zelda: Breath of the Wild, where character does not face viewing direction at all but instead headtracks nearest object of interest (npc, item etc) except when "locked on" to a specific target.
Re: Application with a new feature: ptmikheev
Looks fantastic. Thanks for keeping at it.
Fair enough if you want to keep things simple, although I'll mention Skyrim characters did not follow the camera either if they were standing still, so you could view them from the front without holding down Tab (or R in Oblivion) for Vanity View. Regardless, what you have done so far is already a huge improvement over default behaviour.Chris was quite convincing that any difference between character facing direction and camera view direction would lead to significant complications. So I prefer to go an easy way and not to allow the player character to face the camera as in Fallout 4.
- AnyOldName3
- Posts: 2686
- Joined: 26 Nov 2015, 03:25
Re: Application with a new feature: ptmikheev
I'm impressed that it looks that good without custom animations.
- psi29a
- Posts: 5362
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: Application with a new feature: ptmikheev
Throw up a MR when you're ready.