* Open virtual keyboard on focusing text fields * Reopen keyboard if auto-closed and empty * BepInEx version * Fix storage * BepInEx config * Cleanup dependencies * Unlock mouse * Debug mode * GetValue not needed I think * Setting ranges * Path fixes * Update Readme with rollback info * Fix empty patches * Added support Unity project * NomaiVR modifications to SteamVR plugin * Add patch files for future SteamVR updates * Assume Unity 2019.4 assemblies are present * XRModule loading, testing automated unity build * Should now deploy without issues * Transition project to netstandard2.0 * Added enabler mod * Full unity build only on release * VR loading * Some camera fixes * Rotate camera * Add comment * Restore exception logs * Add some inputs. MoveXZ and LookXZ not working. * Patch move, look, roll * Cleanup * Revert restore logging * Fix hands in menu, but still wrong position ingame * Enable every module except controllerinput * Updated fog fix * Player rotation fix * Some progress on shader issues * Shadow fix fix * Bye bye XR plugin * Shadow fix fix, fix after removing the xr loader * Re-enabled mostly working stuff * Simulating input for landing camera * Simulate flashlight input * Cleanup * Add binding for autopilot * Add recenter input (oculus only) * Act on recenter input * Separate UI select action from jump action * Remove redundant laser input simulation stuff * Removed redundant patches * Restore reference frame tracker patches * Removed autopilot bindings * Use interact button for EVERYTHING * Add boost input * Revert to old camera system * Additional inputs, restored hand independent inputs * Restored water effects in DLC areas * Haptics and stationary tools test * Additional input tweaks * Cleanup inputs * more cleanup * Force gamepad mode * Remove leftover log * Add more menu inputs * Fix holding items * Add debug cheats * Added proof of concept of image prompts for vr bindings * Re-enable holding word stones, prevent HoldItem from fully crashing if one of them isn't found * Change supported version * Re-enable gesture prompts * Add separate actions for UI, use triggers for subtabs * oculus: right stick click to autopilot, chord to recenter * Mouse pointer interactions for menus, dialogues and probably shiplog too * Switched back to old stable VRToolSwapper * Restored shiplog swap * Re-enable signalscope zoom * Fix null reference that could occur on final sequence of the game * Prevent null reference in eye scene * Imported poses playground in Unity project * Fixed playground * Added basic pose tutorial * Formatting issues * Spelling... * Effect fixes for a certain item in the DLC * Prevent too much UI rebuilding, add controls for DLC item, remove failed shiplog experiment * Fix crashes during a certain transition * Dynamic prompt icons (#437) * Starting work on dynamic prompt icons * Reading input icons from new structure * new VRActionInputs * Abstract and interaface for vractioninput * Fixed vector2, cleanup * Add more stuff to input mapo * stationary actions * Cleanup * Cleanup * Readd usable items check that disappeared from merge * Fix map condition * Cleanup * Break lines * Add patch to remove unused inputs * Add menu entry for recentering * Fix signalscope positioning when the suit is off * Create proper SteamVR manifest for the mod * Getting prompts from all input maps (#438) * Small input fixes * Fixed a DLC transition * Trying out new ways of interacting with an item in the DLC * Simulated inputs now need explicit values * Attempt at fixing a 2d effect * Fix poses on pause menu exit, changes to holdables to better detect equip/unequip * Add cheats: wake up in dream, start mind projection * Different attempt at mind projection * Fix menu buttons not being visible to new profiles * Interactable autopilot button in the ship * Fixes to a certain shader used in the DLC * Include SteamVR shaders in shader bundle * Starting work on DLC hand poses * More polish on some poses * Fixed light sorce locations on DLC item * Fixes to certain means of transport in the DLC * Made previous fix head direction independent * Fixes to a cool mechanic in the DLC * Fixed stationary dpad not bound properly * Added icons for each controller, thanks to NoChill for the index icons and WMR layout * Official bindings for index * Run draw on top patch only when needed * Patcher default moddir, peephole fixes and removed unused code * Restored not so unused code * Fix another DLC item * Solved performance issues during credits scene * Avoid null reference exceptions during post credits scene * Removed debug code * Better mind projection shader reproduction * Additional fixes to mind effect * Add launch support as doorstop target for the vr patcher * Support for OWML builds * Hand poses for all DLC items * Fixed typo * Texture for empty actions, action part caching * Cleanup old classes * More fixes to prompt logic * Properly change autopilot prompts during autopilot phases * Added direction and click to prompts * Avoid spamming haptics events * Fix vive bindings, add trackpad hand * Updated WMR bindings to use all the new actions * Fixed prompts for CV1 controllers * Test OWML external patcher * Ignore files already copied * Started to update readme for new release * Disable debug cheats by default, cleaup old comments * Ensure that one DLC effect doesn't persist when opening the pause menu * Moved vrmanifest under StreaminAssets * Removed physics override, use SteamVR refreshrate always * Removed bepinex dependency from patcher, copy patcher in mod's postbuild events * Changed full build order * Separated secondary interact from grip action * Added cleanup logic for previous versions to the patcher * Updated readme to be more in line with the current build process * Updated user settings file instructions * Simplify build process * Further details in readme for dev builds * Support main hand swap for usable items * Revert change that caused project initialization issues * Fixed issues in project references * Move fov management inside camera helper, disabled fov changes for a DLC effect * Cleanup readme * Improve oculus bindings * Adjusted autopilot button color and text * Removed unused asset bundles * Make end scene follow snap to the front of the headset every 70 degrees * Usable items now use the interact button and are droppable * Fix oculus tool bindings * Increased manifest version to force rebind * Adjust prompts position * Removed instructions to downgrade OWML * Fix menu collider not aligning * Fix typo in last change * Cleanup force settings * Don't change probe retrieve prompt * Upgrade OWML * Remove DLC info from warning * Mods dir * Cleanup readme * More Readme cleanup * Remove comfort section * Fix setup link * Fixed table of contents * fixed toc again * Add readme pointer to warning message * Update readme and warning * Autopilot and Recenter now marked as optional * Add info about icons Co-authored-by: Ricardo Lopes <raicuparta@gmail.com> Co-authored-by: Raicuparta <Raicuparta@users.noreply.github.com>
5.6 KiB
Bad tutorial on how to make poses
General Guideline
A few rules to start:
- It should be clear that uploading game assets extracted from the game as-is without remaking them or havily modfying is not allowed and should be avoided, assets exported from the game to create new poses for should be placed under the Assets/Exported/ directory
- Never override the PosesPlayground scene with changes that aren't necessary
- Due to the nature of asset bundles, poses can't be directly imported so the last few steps of the guide will explain how to export them
- Be sure to set Unity's rotation and coordinates handling to Pivot and Global/Local
Process Steps
The generic steps to make a pose are
- Identify prefab used in the game for the item/tool we wan to make a pose for
- Extract the prefab
- Import the prefab in the playground
- Make the poses
- Save and Export the poses
Tool/Item extraction
You can extract prefabs from the game with commonly used extraction tools from the game. In order to have an easier time, be sure that the prefab you extract has the same hierarchy which it will have when parented to the hand in the mod.
Generally, though, models for items are expected to be centered with their origin in the origin of the prefab and no additional rotations, since most of the movements will be done in the playground hierarchy (documented later).
Tools/Items should be saved under Assets/Exported/ which is ignored and never pushed to the repo.
Playground Setup and Importing
The playground scene (Assets/Scenes/PosePlayground.scene) has a structure like this
PoseSetup
This is the object where the SteamVR_Skeleton_Poser is placed, this will be used to preview, edit and save poses. How to use it will not be documented here, just go ahead and look at Zulubo's Tutorial on how to use it.
The features that we'll use are the right hand preview (left hand preview hasn't been setup in the project) and the basic functionalities of the pose editor, everything else (Fallbacks, Blenders, etc.) will be ignored.
Only bone rotations for the Thumb, Index and Ring fingers are stored and used in the mod. Save all the poses to Assets/Poses/ and remember to copy the right pose to the left one before saving. The naming scheme for the poses is {posename_glove/hand}, if a pose is good for both gloves and hands omit the last part. Poses are assigned to objects in their respective NomaiVR/Tools/{HoldItem/HoldSignalscope/...} classes.
WristFollower/HoldPoint
This is the part of the scene where we'll put our imported model, sockets for each element should already be present.
In general each item/tool will have a hierarchy like this:
- WristFollower/HoldPoint/{Name}/Rotation/{Hand/Glove}_Offset
So to preview one item you'll need to enable the Hand or Glove offset and move the extracted model under that.
If an item is not yet available you need to create these objects following these rules.
{Name}
This is an empty object that should have a Position and Scale equal to the ones given to the corresponding coded Holdable in the mod. (ex. Signalscope)
var holdSignalscope = _signalscope.gameObject.AddComponent<Holdable>();
holdSignalscope.transform.localPosition = new Vector3(1,0,1);
holdSignalscope.transform.localScale = Vector3.one*2;
holdSignalscope.SetRotationOffset(Quaternion.Euler(50, 3, 3));
holdSignalscope.SetPositionOffset(new Vector3(1,2,1), new Vector3(0,0,1));
Will have a {Name} node like this:
Items will have a name ending with Socket and they mostly have the same Scale and Position (just copy it from the other already available). Some items require to look at their scale in the game though (like the VesselSocket) to do this UnityExplorer is needed.
Rotation
This is an empty object that should have the Rotation assigned to the holdable object by the mod, so from the previous example:
var holdSignalscope = _signalscope.gameObject.AddComponent<Holdable>();
holdSignalscope.transform.localPosition = new Vector3(1,0,1);
holdSignalscope.transform.localScale = Vector3.one*2;
holdSignalscope.SetRotationOffset(Quaternion.Euler(50, 3, 3));
holdSignalscope.SetPositionOffset(new Vector3(1,2,1), new Vector3(0,0,1));
Offsets
The last element consist in offsets assigned to the holdable that are different between hands and gloves, these are also set with calls to SetPositionOffset.
holdSignalscope.SetPositionOffset(new Vector3(1,2,1), new Vector3(0,0,1));
// ^hand_offset ^glove_offset
Make Pose
To make a pose just select the PoseSetup object in the scene and in the inspector in the SteamVR_Pose_Editor create a new pose.
Show the right hand preview will add an object to the scene hand_pose_setup(Clone) where you can enable or disable its childs to view the glove and hand previews.
The Root skeleton you need to rotate is under hand_pose_setup(Clone)/Root/wrist_r and the bones that affect the hand are the ones for the Thumb, Index and Ring finger.
Moving the wrist/root isn't supported.
When done save the pose as mentioned in the PoseSetup section.
Export the pose
When a pose is saved as an asset, to export it to the mod's folder. Right click on the generated asset, then "JSON->To JSON".
Save the file to /NomaiVR/Hands/Poses and you should be able to use the pose in the mod.


