Application with a new feature: ptmikheev

Join the team. This area is for people who want to participate in OpenMW's development in one way or another.
CMAugust
Posts: 285
Joined: 10 Jan 2016, 00:13

Re: Application with a new feature: ptmikheev

Post by CMAugust »

For what it's worth, I think Bethesda improved that third person functionality even further by Fallout 4... ;)
ptmikheev
Posts: 69
Joined: 01 Jun 2020, 21:05
Gitlab profile: https://gitlab.com/ptmikheev

Re: Application with a new feature: ptmikheev

Post by ptmikheev »

CMAugust wrote: 04 Jun 2020, 00:08 For what it's worth, I think Bethesda improved that third person functionality even further by Fallout 4... ;)
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.
User avatar
akortunov
Posts: 899
Joined: 13 Mar 2017, 13:49
Location: Samara, Russian Federation

Re: Application with a new feature: ptmikheev

Post by akortunov »

ptmikheev wrote: 04 Jun 2020, 14:14 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.
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.
ptmikheev wrote: 03 Jun 2020, 21:07 What do you think if I try to implement something similar in openmw? In settings there will be a switch "vanilla movement / skyrim-like movement".
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?
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Application with a new feature: ptmikheev

Post by psi29a »

Are there addition animations types supported in new versions of NIF?
ptmikheev
Posts: 69
Joined: 01 Jun 2020, 21:05
Gitlab profile: https://gitlab.com/ptmikheev

Re: Application with a new feature: ptmikheev

Post by ptmikheev »

akortunov wrote: 04 Jun 2020, 14:34
ptmikheev wrote: 04 Jun 2020, 14:14 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.
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.
Yes, fully agree. So I would prefer to start from other three points since the result will be immediately visible.
akortunov wrote: 04 Jun 2020, 14:34
ptmikheev wrote: 03 Jun 2020, 21:07 What do you think if I try to implement something similar in openmw? In settings there will be a switch "vanilla movement / skyrim-like movement".
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?
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
akortunov wrote: 04 Jun 2020, 14:34 Why just do not implement Lua bindings for camera to allow content creators to tweak camera behaviour themselves?
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?
psi29a wrote: 04 Jun 2020, 14:45 Are there addition animations types supported in new versions of NIF?
I've never worked with animations before and unfortunately at the moment have no idea.
CMAugust
Posts: 285
Joined: 10 Jan 2016, 00:13

Re: Application with a new feature: ptmikheev

Post by CMAugust »

ptmikheev wrote: 04 Jun 2020, 14:14
CMAugust wrote: 04 Jun 2020, 00:08 For what it's worth, I think Bethesda improved that third person functionality even further by Fallout 4... ;)
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.
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).
ptmikheev
Posts: 69
Joined: 01 Jun 2020, 21:05
Gitlab profile: https://gitlab.com/ptmikheev

Re: Application with a new feature: ptmikheev

Post by 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.
Spoiler: Show
Non-combat movement
- 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
Combat movement
- 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
Technical questions:
- 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"; ... };

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.
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
Posts: 285
Joined: 10 Jan 2016, 00:13

Re: Application with a new feature: ptmikheev

Post by CMAugust »

Looks fantastic. Thanks for keeping at it. :)
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.
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.
User avatar
AnyOldName3
Posts: 2667
Joined: 26 Nov 2015, 03:25

Re: Application with a new feature: ptmikheev

Post by AnyOldName3 »

I'm impressed that it looks that good without custom animations.
User avatar
psi29a
Posts: 5355
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Application with a new feature: ptmikheev

Post by psi29a »

Throw up a MR when you're ready. 8-)
Post Reply