advancedfx / advancedfx

Half-Life Advanced Effects (HLAE) is a tool to enrich Source (mainly CS:GO) engine based movie making.
https://www.advancedfx.org
MIT License
507 stars 80 forks source link

mirv_calcs/campath blend? #271

Closed saelio closed 5 months ago

saelio commented 4 years ago

like calcs with keyframes, making a campath with the mirv_cam offset values. would be really neat for making super precise gun cines or player cines.

dtugend commented 4 years ago

I am not sure if I understand your question, but I think you can already use mirv_calcs + mirv_cam to set the current camera position and use that with mirv_campath add to make a new keyframe at that position.

It is also possible to use mirv_calcs / mirv_aim on-top of campath.

If that is not what you meant, please elaborate further.

Edit: If you need to override the order things are applied, check out mirv_cam order.

saelio commented 4 years ago

i've tried the calcs+cam in tandem with campath to make a cine but it's just a big hassle, i was thinking like keyframes of the mirv_cam offset values to keep the camera truly locked to the weapon. sorry if i'm being a little vague, i'm not sure what's possible and what isn't with the limitations of demos and stuff.

dtugend commented 4 years ago

If you want to keep the camera locked to the weapon, that's already possible with purely mirv_calcs though?

See e.g.:

If that's not what you want, please describe in which way you need to blend campaths and mirv_calcs. E.g. do you mean switching between campaths and mirv_calcs dirving the camera? If that's what you want, then the easiest way to achieve it would be using a smooth calc on-top of a weapon calc, that is only activated when it shall detour from the normal campath. I will try to make an example if that's what you want, but I need to understand what your desired outcome is.

saelio commented 4 years ago

i suppose a better word than "camera" would have been campath. a good example of my desired outcome would be this (timestamped URL.) i think a way to make something like this would be neat, and if there's a way to create it without a new addition to the software, i'd like to know.

dtugend commented 4 years ago

It seems you want to do a CamPath in local space of the Weapon hand. This is sadly currently not cleanly possible in a way that makes sense to edit for the user.

I'll leave this bonus config here though:

// save in movie making config foler as wpl.cfg, then exec wpl to enable.

mirv_calcs handle add localPlayer localPlayer
mirv_calcs handle add observerTarget observerTarget localPlayer

mirv_calcs handle add activeWeapon activeWeapon observerTarget 1

mirv_calcs vecAng add handleAttachment led activeWeapon led
mirv_calcs vecAng add handleAttachment muzzleFlash activeWeapon muzzle_flash
mirv_calcs vecAng add handleAttachment weaponHandR observerTarget weapon_hand_R

mirv_calcs vecAng add or weaponOr2 muzzleFlash weaponHandR
mirv_calcs vecAng add or weaponOr led weaponOr2

mirv_calcs vecAng add globalToLocal weaponLocal weaponOr activeWeapon

mirv_calcs vecAng add switchInterp weaponLocalSmooth weaponLocal activeWeapon observerTarget 0.5 0.5

mirv_calcs cam add current current
mirv_calcs vecAng add cam current current
mirv_calcs fov add cam current current

mirv_calcs handle add value invalid -1
mirv_calcs cam add smooth currentSmooth current invalid

mirv_calcs cam edit currentSmooth halfTime 1.0 // sets all half life time for vec (position), and (rotation), fov (field of view) to same value in seconds.

// Uncomment to set independently:
// mirv_calcs cam edit smooth halfTimeVec 1.0
// mirv_calcs cam edit smooth halfTimeAng 1.0 // Tip: Use 0 value to disable smoothing, or use e.g. 0.1 value for lower delay and less smoothing.
// mirv_calcs cam edit smooth halfTimeFov 1.0

mirv_calcs vecAng add cam currentSmooth currentSmooth
mirv_calcs fov add cam currentSmooth currentSmooth

mirv_calcs vecAng add offset weaponLocalOfs weaponLocalSmooth currentSmooth 1

mirv_calcs vecAng add localToGlobal weaponFinal weaponLocalOfs activeWeapon

mirv_cam source calcVecAng weaponFinal

mirv_cam order default
mirv_cam order move input 0
mirv_cam order move camSource 1

mirv_input cfg offsetMode
mirv_input cfg offsetMode ownLast
mirv_input cfg ksens 0.25
mirv_input cfg msens 0.05
mirv_input camera
mirv_input position 50 0 0
mirv_input angles 0 -179.9 0
mirv_input fov 90

spec_mode 5

echo +----------------------------------------------------------+
echo | Camera weapon local input mode enabled.
echo +----------------------------------------------------------+
echo | Camera is controlled by observer target.
echo | To quit this whole mode enter: weapon_local_config_end
echo +----------------------------------------------------------+

alias weapon_local_config_end "mirv_cam source calcVecAngClear; mirv_cam order default; mirv_input cfg offsetMode current; mirv_input end"
saelio commented 4 years ago

neat! i'lll try this out.

dtugend commented 5 months ago

Hi.

CS:GO / mirv-calcs is currently discontinued, maybe mirv-script will allow some of this in the future for CS2.

Otherwise thank you for your suggestion. The implementation of this feature in a reasonable time-frame is currently not realistic for me. After considering that together with issue #896 I am closing this request as not planned for now, since it would block other things I would like to still get done before that. Sorry for the copy pasta.