Hey everyone, just a small patch to fixup a few issues with the laser reticle being too big in some cases, so it doesn't have to wait on other stuff.
Build is compatible with previous one, no need to update immediatelly if you don't experience issues.
Tweaks:
- Virtual Keyboard will no longer activate when using the new desktop mode and clicking into a text field - Tweaked laser reticle scaling logic in VR so it's non-linear, preventing the cursor from becoming too small when really close and scaling up slower when in distance
- Merged Japanese, Esperanto and Chinese locale updates by @Melnus - Merged Russian locale update by @Shadow Panther [RU/EN, UTC+3]
Bugfixes:
- Fixed cursor reticle size not compensating for user's scale (reported by @Cyro, @Delphox, @Sox and others)
This week we have some more important progress to share on the new desktop mode, which now has core interactions implemented! You can click, grab, interact with UI's and scroll with your mouse after you switch to the new desktop mode. The system will also pose your avatar's hand to make it look more natural.
There's still a lot of interactions and polish missing though - you can't use tools or context menus and the simulated motions are more robotic looking. Our focus has been on designing and building the underlying mechanisms, so there's a lot more to come before the new desktop mode is well rounded. For the time being it's still hidden behind the F8 key and fully usable only when Neos is launched in VR, but if you like to play with it in the current state you can!
Thanks to getting some development momentum, we have also addressed some of the highly voted GitHub/Patreon issues, focusing on ones that were easier to do to start. For example the dynamic bones scaling incorrectly after exiting an avatar anchor is no longer an issue.
Some of the work this week has also been more in the background. We have reorganized both our private and public GitHub repositories and published some missing ones. They're all now moved to the Neos-Metaverse organization account instead of personal Frooxius one.
This is to make the development process more robust with cloud automation, making collaboration with more developers easier and giving the repositories more official status. If you use the NeosPublic or NeosLocale repositories, make sure to update your links to the new ones!
Friday Q&A livestream
If you missed our regular Friday livestream, you can watch the recording here. We did another usual session of Q&A, answering all your questions about Neos and showcased some of the progress on the desktop mode. This was before the interaction system has been implemented yet though, so for that one we recommend checking out the dedicated section below!
Clicking, Grabbing & Scrolling in desktop mode
We have implemented the core of the new interaction system for the new desktop mode, giving you the ability to click, interact with world UI’s, grab and scroll with your mouse wheel. This new system is built on top of Neos’ existing interaction systems that have been used for VR.
Instead of rebuilding the interactions, the desktop mode simulates inputs that a VR user would and feeds the system interaction targets to make the inputs easy to use with keyboard and mouse or gamepad.
Thanks for this, the interactions will have consistency for both VR and desktop, with most systems in Neos not needing to distinguish in which mode the user is currently using. This simplifies development both on our side and for any content builders. You can also notice that the interaction laser cursor you see in VR is the same one that's now shown in desktop and changes based on the context the same way!
Not all interactions are implemented yet so far. So far you can click things (e.g. UI’s), grab objects and scroll UI’s with the mouse wheel. Using tools or context menus isn’t supported yet, but is coming soon.
Because of that, desktop mode is still considered in heavy development and is hidden behind the F8 key, but with this step brings even more usability to it. Our focus has been on building the core interaction mechanisms and systems that power it.
Some latest development notes on the interaction system
One of those is also a hand posing system. When you’re on a desktop and you click or grab things, the avatar hand will be posed automatically to make the interaction look more natural. Currently it’s very rudimentary and robotic looking, but once we focus on the layer of polish we’ll make it look more natural.
More movement options in desktop mode and VR
One of the new additions to the desktop mode is also the ability to crouch, giving you more flexibility and improvements to bindings for both mouse & keyboard and gamepads. Gamepad should now provide better precision for camera look, making it easier to do fine motions and can be used to turn in VR as well.
We have added bindings for avatar anchors as well, so any vehicles and other contraptions using the primary and secondary axes can now be used with keyboard & mouse and gamepad as well.
Other issues were fixed as well, for example the VR eye tracking is now ignored when in desktop mode, preventing the eyes from becoming derpy or the VR -> Desktop transition is now skipped when opening/joining a new world while already in desktop.
Fixing some high priority issues
With desktop gaining some more momentum, we have put some time to some of the highly voted GitHub/Patreon issues. Our first pass focused on ones that are easier and faster to implement/fix.
The problem with dynamic bones scaling incorrectly after the user enters and exits an avatar anchor has been finally fixed. The LogiX node for baking meshes has also been expanded to give explicit controls over adding Colliders and Grabbable components to the baked mesh.
For a full list of new features, tweaks and bugfixes, you can always check out our Discord or the Steam patch notes.
Moving public & internal repositories to organization account
Last week we have spent some time reorganizing our internal and public code repositories, to ease the onboarding process for new developers, prepare for a cloud automation of the build process and make things look a fair bit more official.
As some of you have probably noticed the public repositories (e.g. NeosPublic and NeosLocale) have moved from Frooxius account to Neos-Metaverse, along with any of our own open source libraries and forks that we use to build Neos.
We have also published a few libraries and forks that previously weren’t on GitHub at all or were private, for example our QuantityX library that provides unit conversions and formatting (it’s also historically the first library ever written for Neos).
While this doesn’t change much for you in the short term, this is an important step as we grow our team and development process, allowing us to better iterate on various Neos’ dependencies, making the development process more robust and improving collaboration.
Sneak preview of the upcoming MTC Creator Plaza
While the interactions for the MTC avatar lobby are still being built out, we're already putting together models for another of the environments - the creator plaza. This one will serve as a tutorial / sandbox for many of the building tools inside of Neos VR. Here are some early previews of what it looks like so far, but please note that a lot can still change with them before they reach public.
Community Highlights
Greeting and Salutations everyone! It’s time of the day for that weekly update of that good old community content. This week we are focusing on some maps with some sweet atmosphere this week. We also catch up to some of the stuff the folks over at Creator Jam have been up to!
Ovation by GAWAWA
An immaculate map made by GAWAWA. Come into this compostorium as you hear the divine musings of the music ebb and flow through your bones. From what I’m aware this world was made as a new home world and seems pretty grand as a way to start your Neos sessions! So if you ever get a chance take the time to check out the amp and look at the awe inspiring view. Thanks GAWAWA for the map!
Skate Park by Gearbell
Get ready to rip your pants folks! There’s a new skate party in town! Skate Park made by Gearbell, goes into setting up a nice scene for people to throw out a skateboard provided in the map to skate around and make some sweet flips! So grab a board, grab some friends and go skating! Thanks for the map Gearbell!
Avamora Vodica by Lewis Snow
A wonderful world between worlds, a place between the “Everything”. A bleak world that fills a nice balance of void and existence. This place acts as a purgatory between the worlds of NeosVR. You look under your feet and see the energy of the Metaverse ebbing and flowing through the glass that you stand upon. Thanks Lewis_Snow for making this wonderful map to meditate and exist between everything! The sounds are really on point too!
CJ 93: Push my Buttons!
For this Creator Jam we had a wonderful theme of where folks made all kinds of contraptions with buttons! Some even model exotic button types as you can by something making an actual “Belly” Button. Memes and jokes and all kinds of neat button creations in here!
CJ 92: Whatcha Looking at?
Watchout! There’s a lot to look at or be looked at in this Jam! Creator Jam 92 “Whatcha Looking At?” takes a stab at using the new feature in Neos where you can have your eyes, ears, or 3d person to have a different perspective for your avatar. This is what allows people to have decoupled heads in Neos! People get a little freaky in here!
CJ 91 MacGuffin Land!
In this wonderful land of MacGuffin, there are many things to find in this location! Maybe you can find the Temple of Cheese? Creator Jam 91 MacGuffin Land focuses on interest points of discovery or to find for people to interact with. There’s some interesting things to find here so hopefully you find some treasure!
------------------------------------------
Anyway this is all for this week! As usual, huge thanks for your support, whether it's on Patreon, Twitch, ICO or just by being part of the community and building awesome content! We'll have more news for you next week, so stay tuned!
Hello everyone, got another important update to the new desktop mode, you can now grab and click things! It will even pose the avatar hand to make it look more natural. Everything is in quite early state so it's a bit rough and raw, as the focus is more on designing the underlying interaction mechanisms and building them out, but more polish will come soon. Hopefully it should significantly improve the usability of the mode in its current state though!
Sorry there's only few of other things in this build, there's a few bugfixes and tweaks as well, but my main focus was on getting more of the desktop mode going and dealing with some background things.
New Features:
- Added initial version of desktop interaction system, allowing for clicking and grabbing in the new desktop mode -- Current bindings are as follows (note that these are pre-liminary and will likely change as we go): --- Left Mouse button / Right gamepad trigger to click/touch --- Right Mouse button / Right gamepad bumper to grab/hold --- Delete key to destroy grabbed --- Insert key to duplicate grabbed -- The interaction laser is used as a base, with the laser portion hidden and the cursor centered at the screen -- Please note that this is still in heavy development and a lot more behaviors & polish is coming
- Added initial version of hand interaction posing system, which will pose the avatar hands when interacting with items -- This provides a visual feedback to other users when a desktop user is interacting (e.g. clicking or grabbing items) -- Note that currently the posting is still quite rudimentary and will be expanded and polished in the future builds - You can now use mouse scroll for the in-world interfaces by hovering over them in the new desktop mode - Added locomotion turn bindings to gameapads (based on feedback of Iforgotwhosorry ;_;) -- Those are only active while in VR, in desktop mode they're overriden by the camera look controls which turn the player implicitly
Tweaks:
- Added exponentiation (default 4) to gamepad look sensitivity, to allow for better precision with fine movements - Laser reticle now scales based on the distance from the view for the owner, to make sure it's still legible even when interacting with far away objects - Screen inputs now update before everything else, ensuring that no behaviors (e.g. avatar IK) lag behind its movements a frame behind - Added "(for 7 days)" to "Remember Me" option in the login dialog (based on feedback by @drecalen#2829) -- This is to avoid confusion on users getting logged out after a week of inactivity - Tweaked update order for laser, fixing cases where the laser would be slightly jittery even when stationary - VR -> Desktop transition is now skipped if the user is already in desktop mode and starts/joins a new world
- Merged Korean locale addition by @MirPASEC - Merged Japanese, Esperanto and Chinese locale additions & changes by @Melnus - Merged Russian locale additions & tweaks by @Shadow Panther [RU/EN, UTC+3] - Merged Czech locale additions & tweaks by @rampa_3 (UTC +1, DST UTC +2)
Bugfixes:
- Fixed nametags going semi-transparent when the user is in the desktop mode - Headless will no longer list and allow focusing of the Userpace world, preventing operations from being executed on it (based on report by @Glitch) - Fixed headless hanging when running commands with improperly quoted strings and reworked parsing logic to allow for inclusion of quotes in the argument itself (reported by @Glitch) - LogixTip now uses the bendy laser hit when restoring broken input nodes, fixing cases where custom tooltips would block the raycast when refreshing broken LogiX nodes (reported by @Hayden, @Shifty | Quality Control Lead and @Epsilion)
Known Issues:
- The actual laser offset on the hand is not currently respected, resulting in the laser being bent even at rest and the hand getting into the face when moving item too close - You can't use context menus properly yet (they'll spawn in incorect location) - If you equip a tool, desktop interactions might not work correctly - If you bring item too close it'll get physically grabbed/equipped - Many more interactions are still missing, please remember that the desktop mode is currently in heavy development
Hello everyone, sorry for another smaller build after a while, I'm working on a few things in the background that didn't give any results yet (e.g. switching to the new libVLC, which is giving some more trouble, but so far solvable) and reorganizing things internally - some if it you probably noticed as we moved all Neos related repositories to Neos-Metaverse on GitHub and added a bunch more that weren't public or on GitHub yet.
There's some extra progress on desktop mode in this, mostly smaller additions in this one as well as bugfixes for some issues that cropped up (e.g. the audio output desyncing over time). I'm working on the design and pieces of the interaction system, that's going to be coming soon after.
I've also started cleaning up some more of the existing bugs and issues to improve the general quality of life, the dynamic bone scaling issue is now fixed, as are a bunch of cases of user randomly flying or breaking when gripping and switching locomotions.
New Features:
- Added ability to crouch in the desktop mode (using the C key or the left trigger on a gamepad) - Added ability to scroll UIX ScrollRect with the mouse scroll wheel -- This is based on a new general system for UIX canvases/elements receiving axis movement events - Added support for importing Lights when importing 3D models/scenes (requested by @Elektrospy) -- To enable, you need to go to Advanced Settings and check "Import Lights" -- Currently not heavily tested and might need some tweaking. Will output debug info to log -- The intensity of lights might be too strong or too weak after import, depending on the source and might require to use the LightSource Wizard to adjust after -- Neos will normalize the maximum light intensity to 1, to avoid extremely bright lights when large units are used (e.g. watts coming from Blender) - Added Keyboard & Mouse Avatar Anchor bindings -- Space to release/exit anchor -- WASD for primary axis and Arrow Keys for secondary axis -- Space for primary action, Right Control for secondary action - Added GrabbableHandling and ColliderHandling to BakeMeshes, which allows specifying how are those components handled (based on feedback by @ProbablePrime and @Enverex) -- IfExists (default) - component is added if it exists on the source or if it's needed (e.g. Grabbable will enforce a collider) -- AlwaysAdd - component will always be added -- NeverAdd - component will never be added
Tweaks:
- Moved majority of public (and private) Neos repositories from my personal GitHub account (Frooxius) to organization one (Neos-Metaverse) -- NeosPublic, NeosLocale and any dependencies can now be found at: https://github.com/Neos-Metaverse -- More open source forks and custom libraries/wrappers have been published (freetype, FreeImage, msdfgen, Msdfgen.NET, Compressonator.NET, crunch, Crunch.NET and QuantityX) -- This is also done for better internal collaboration with developers and as pre-requisite for setting up a cloud build pipeline for Neos
- VR eye tracking is now ignored when switched to desktop mode, fixing user's eyes becoming derpy - Neos now strips RTF tags from a world name when sending it to the Steam Rich Presence (reported by @Shard Wolf#5513 and @Earthmark) - Updated MTC tutorial text to include information on how to activate the laser for remote gripping (based on general feedback, change provided by @Turk)
- Merged Korean locale additions and tweaks by @MirPASEC - Merged Russian locale additions by @Shadow Panther [RU/EN, UTC+3] - Merged Japanese, Esperanto and Chinese locale additions by @Melnus - Merged French locale additions by @brodokk
Bugfixes:
- Fixed mirrors and portals rendering the Overlay layer (reported by @epicEaston197 and @Khosumi) - Fixed Neos-overriden audio output devices slowly getting more and more delayed over time (reported by @Shifty | Quality Control Lead) - Fixed user rapidly flying away when gripping on an object in PhysicalLocomotion and switching to a different locomotion (reported by @Shifty | Quality Control Lead, @Aegis_Wolf | Art Director, @Hayden, @chemicalcrux, @Robyn (QueenHidi)) - Fixed user's transform getting corrupted and not syncing anymore when they're gripping on an object that gets destroyed (reported by @Cyro, @June and @Shire) - Fixed user's transferred rotation getting doubled when gripping onto an object (rotating more than they should) (reported by @Zyzyl, @Rukio, @Princess and others) -- This could also potentially fix any extra position and scale offsets in some scenarios (e.g. with avatar anchors, as reported by @Hayden) - Fixed VR headset presence sensor setting user's status to Away even when desktop mode is currently active (reported by @Shifty | Quality Control Lead) - Fixed dynamic bones getting scaled incorrectly when the user's root space changes while at the same time changing their scale (reported by @Shifty | Quality Control Lead, @H3BO3, @Hayden, @chemicalcrux and others)
We have some exciting progress to share on the development of our proper desktop mode. Thanks to several additions it has reached its first usable state for VR users for dynamic switching. There's still lots of work to do to bring it to feature parity and allow to use it without needing VR headset in the first place, but it's an important step forward.
If you're in VR, you can currently press the F8 key (this will likely change in the future) to dynamically toggle to the new desktop mode and back. The dash will now be projected directly onto your screen and usable with your mouse cursor, as you would any other application, allowing you to message people, open worlds, join sessions and change settings.
In the settings you will also find new option "Select Audio Output Device", which lets you override which audio device is used for playback. Along with the audio input device and your volume settings, Neos will remember your settings separately for VR and desktop mode, automatically switching them as you toggle between the modes, making the whole process effortless.
Thanks to the new input binding system we've also added gamepad support, allowing you to move and use avatar anchors (e.g. vehicles) with it, whether you're in VR or Desktop. There's a lot more to come as we continue building out more interaction systems and bring in more hardware.
Since it's the end of the month, we have also devoted our Friday livestream to showcasing some of the amazing community highlights from February, including some awesome games that you have created! If you missed it, check out the video below!
Community Highlights
February Community showcase livestream
As is the tradition at the end of the month, we have devoted out most recent Friday livestream to showcasing many of the amazing community creations made this month. We check out many cool interactive items as well as some amazing worlds and fun games! If you missed the stream, you can check out the recording here:
Tamasobi by mohu yan, kinoko_b, Aetoriz
This map is quite explosive, literally! A really fun team based competition where you as the user need to take a glowly ball of power and throw it into the other teams goal! Be careful though, the other team can steal the ball and have it hit the roof or ground and reset it. For those wondering how the game plays.It feels a bit like Battle discs but also a little bit like Echo Arena. Give it a try and let the creators know! Thanks mohu_yan, kinoko_b and Aetoriz for the fun map!
Abandoned Factory Hall by YumYum
An eerie quiet map, with a nice sense of aesthetic. Inside the factory you’ll find a place left to the wild, contemplating what used to be here, or what was made. Outside you’ll find there’s more to the complex as it seems you are surrounded by more abandonment. Overgrown roads and walls surround making you think even more how did you get here? Thanks YumYum for the map!
Slime Springs by Gearbell
You enter the cave and experience a particular aroma swelling your senses. Is it Rotten Eggs? Is it Sweaty Sport Socks? Maybe some sort of chemical. Little do you know you’ve found the hangout of the slime people. Of all shapes, sizes, and concoations, those of the slime variety come here to hang, jiggle, wiggle, and bounce with other slimes. Be careful though! I’ve heard tales of travelers entering the slime pools not returning quite the same as they were. Feel less solid as you say. Thanks for the map Gearbell! Also, welcome fellow slimes! I hope you feel at home.
Moment in the Week
Now while creations, maps, tools, and toys get featured on here I wanted to take a moment to feature some of the more special moments of the community. Sometimes they aren’t always being recorded, or being clipped for many to see. Yet, In the process of making his very cursed Teletubbies inspired map. ProbablePrime has somehow managed to get all of us to watch teletubbies for 30 minutes, including “Banned” episodes. As this happened everyone kept adding to the cursed nature of the project, and more hilarity ensued. Thanks ProbablePrime, and thanks everyone who came by to bask and add to the eldritch horror. Only on Neos eh?
First usable version of Desktop Mode
Our official desktop mode has gotten some crucial additions this week that have pushed it closer to a usable state. While we still don’t recommend it as the main way of playing yet (in part because you can’t properly use it without VR yet), it’s getting closer and already offers a way for VR users to switch to desktop for a bit to be able to socialize.
Screen projected dash
One of the important additions was ability to the dash to be rendered as screen overlay, rather than a curved object in-world. Alongside adding a mechanism for pointer interactions (mouse cursor and touch screens), this has made the dash UI usable as traditional desktop UI, allowing you to search and open worlds, join sessions, interact with the contacts system (including sending/receiving messages), interact with UI and also importantly your settings.
While in-world interactions aren’t implemented yet, apart from being able to walk, run and jump, this lets you move around the environments and socialize for the time being when you jump out of your VR headset. Simply press the F8 key to switch from VR to desktop controls and back.
Once interactions are implemented and the system has feature parity of the legacy debugging desktop mode, we’ll remove the old one and make this one the new default for both users with and without VR.
Audio Output Override
If you’re using different audio output for VR and for desktop, this new addition will be very useful to you. Instead of having to manually switch your audio output every time you toggle between VR and screen, simply go to Settings and use the new “Select Audio Output Device” option to change which audio output device to use.
Along with the audio input, noise gate and master volume, Neos will remember those settings for both Desktop and VR mode, automatically switching them for you as you toggle between the two modes.
This way you don’t ever have to change your audio settings and you can effortlessly jump between desktop and VR as you play.
Gamepad support
Thanks to our new internal input binding system, we have already added support for gamepads to Neos! You can now use standard gamepads to move around and use avatar anchor inputs, even while in VR!
As we add more interactions to the desktop mode you’ll be able to use tools, build and do everything else that you can do while in VR. We plan to add more different input devices as we go as well and provide ways to expose those to LogiX for scripting.
There’s still lots to do, but we hope that even the in-development versions provide you with some good benefits as we continue to add more functionality, fix bugs and bring the desktop closer to feature parity with VR.
Making textures tileable, avatar expression improvements and more
Alongside the desktop mode we have added a bunch of other smaller features, tweaks and bug fixes as usual. Those include some new processing options for textures, which let you easily make any texture tileable (though quality will heavily depend on the type of the texture) or replace transparency with white or black color.
We have also made numerous improvements to Neos’ support for facial tracking, greatly expanding the list of supported expressions on AvatarExpressionDriver and adding heuristics for automatically assigning expressions from blendshapes.
Based on the report from the community we have also improved the security of the local assets, making it harder to get unauthorized access to locally stored data. If you’d like to see all the changes and improvements over the past week, check out the patch notes on Steam or on our official Discord.
Anyway this is all for this week! We're excited as the pieces of the new desktop mode are falling in places. Now the major missing piece is the interaction system, which will allow you to click and grab items, interact with menus and use tools, weapons and other interactive elements. With those you'll be able to do everything you can in the legacy debugging desktop mode and we'll be able to make a swap.
It's a pretty big system on itself, our next goal is having a base version of it working and then adding more polish to all parts, making things easier to use, look better, removing jank and bugs. If you'd like to see the latest developments, check out our #devlog channel on our official Discord.
And as usual, big thanks to your support! Without it we wouldn't be able to grow this platform and keep going. See you next week!
Just a small patch for a few things so they don't have to wait on a bigger build! Compatible with last build, no need to update right away if you don't need the fixes.
Tweaks:
- Increased sensitivity of gamepad right thumbstick for camera look control
Bugfixes:
- Fixed screen locomotion axis inputs (e.g. gamepad left thumbstick) being normalized, resulting no lack of analog speed control - Fixed AvatarExpressionDriver heuristic incorrectly detecting lower lips raising as "Jaw Down" - Fixed gamepad inputs getting stuck when the gamepad is disconnected (reported by @Shifty | Quality Control Lead) - Fixed the dash in desktop mode flickering when the user isn't at unit scale (reported by @Lyo, @epicEaston197, @Robyn (QueenHidi), @Cyro and others) - Fixed Neos crashing on startup when running through the native Oculus runtime (reported by @Shadow Panther [RU/EN, UTC+3])
Hello everyone and sorry for fewer builds again, I'm still putting what time and energy I have into the new desktop mode and it's a bit tough splitting my focus now. There are several important additions to it, it's now in a state when it should be mostly usable for basic socializing! No interactions yet, but that's next on the menu.
When you switch to the new desktop mode (pressing F8 currently), you can now use your dash with your mouse! This lets you use the messaging system, inventory, world browser and settings! This means that you can now also adjust your microphone for the desktop mode and newly even the audio output device, meaning Neos will automatically switch your settings as you toggle between VR & Desktop!
There's initial bits of other systems too, for example we have initial Gamepad support now! It's only usable for locomotion & avatar anchors now (left and right thumbsticks map to the Primary & Secondary motion inputs), you can use it even if you're in VR.
I'm pushing whatever I have along with other things, because some upcoming things (swapping out the libVLC) I want to run through danger testers first and I don't want that to block some of the other additions, tweaks and bugfixes. There are some improvements to the Neos' face tracking framework, to make setup easier and support more expressions, new feature to make textures easily tileable and more.
IMPORTANT: Note that this build also improves the security of local assets and database. This will run database upgrade process when you first start which might take up to a few minutes (depending on the size of your database). The upgrade/repair process has been made significantly faster though, so hopefully it shouldn't take too long!
New Features:
- Added ability to override audio output device -- Can be found in Settings on the dash -- The setting automatically switches between desktop / VR mode, allowing you to configure different audio output for when you're in VR and when in Desktop mode, switching between the two automatically (along with other audio settings) -- If you won't use desktop/VR dynamic switching, it's recommended to change the audio device in Windows, as this mode potentially adds a bit of extra latency -- Currently only supported on Windows
- Added initial Gamepad support -- You can use it to move around in the new desktop mode or even while in VR -- More interactions to come (e.g. virtual cursor to allow interacting with UI/dash)
- Greatly expanded list of supported expressions on AvatarExpressionDriver (under Users/Common Avatar System/Face) -- Following expressions were added: --- Tongue motion: TongueLeft, TongueRight, TongueDown, TongueUp, TongueRoll --- Combined expressions: GrinLeft, GrinRight, Angry --- Cheeks: CheekSuckLeft, CheeckSuckRight, CheeckSuck --- Lip movement: LipRaiseUpperLeft, LipRaiseUpperRight, LipRaiseLowerLeft, LipRaiseLowerRight, LipRaiseUpper, LipRaiseLower, LipLeftUpper, LipMoveLeftUpper, LipMoveRightUpper, LipMoveLeftLower, LipMoveRightLower, LipTopOverturn, LipBottomOverturn, LipOverlayUpper, LipUnderlayUpper, LipOverlayLower, LipUnderlayLower, Pout --- Jaw movement: JawLeft, JawRight, JawForward, JawDown, JawOpen -- Grin expression was improved to require user to partially smile, rather than just bare their teeth -- This will drive the avatar expressions using any supported lip/face tracking technology - Added semi-automatic blendshape assignment to AvatarExpressionDriver (through inspector button) -- For assignment to work, it needs to be placed on/above the Slot with SkinnedMeshRenderer -- Any already driven blendshape are ignored -- If there are blendshapes for independent sides (e.g. SmileLeft & SmileRight), the unilateral expression (e.g. Smile) is ignored, even if present to avoid potential overdriving -- Note that you might need to manually add/remove/tweak the expressions after, as detection success heavily relies on the naming conventions of an avatar -- If you find any blendshapes or problems with heuristics, let us know (ideally with a sample model)
- Added TongueRoll property to the AvatarRawMouthData - Added AudioOutputDeviceInfo -- This is analogous to AudioInputDeviceInfo, but for output devices
- Added "Make Tileable" texture processing option, which allows easily making any texture into one that will tile seamlessly -- You can setup transition ratio (portion of the texture used for tiling) -- Two simple algorithms are currently implemented - Loop and Mirror. Both bost well with organic textures, rather than rigid patterns
Work in progress:
- Added initial implementation of PointerInteractionController, which handles pointer interactions in desktop mode (mouse cursor, touch screen) - Added screen-projected overlay rendering to Dash in the Desktop mode -- You can now use the dash UI when switched to the desktop mode
Tweaks:
- Tweaked the priority issue scoring mechanism to include lifetime support as another score point and represent the score as a normalized value, rather than a raw sum -- This helps anonymize the data a bit and make the numbers more readable -- The lifetime support also gives us another datapoint for prioritization, highlighting people who have supported Neos in the past significantly, but are currently on lower pledge -- votePoints has been replaced by activePledgeScore in the JSON (you'll need to update tools to display the data accordingly) - Renamed AudioDeviceInfo to AudioInputDeviceInfo - Improved world/asset data security (based on feedback by @ItsDusty <PRISM>) - Improved database upgrade/repair process speed significantly - Database upgrade/repair text now keeps changing every half second to help indicate that the process is on-going - Added "thm", "thmb", "ind", "mid", "rin", "pin", "pnk" to finger rig detection heuristics (based on feedback by @Groxxy the Eye-Puppeteer) - Added heuristic for merging multiple animation tracks into a single one when importing models where each individual part has its own unique animation track (based on report and sample models by @Aegis_Wolf | Art Director, @Dante and others) - Small optimizations in BitmapX bilinear sampling
- Merged Korean locale additions by @MirPASEC - Merged French locale additions & tweak by @brodokk - Merged Russian locale additions & tweaks by @Shadow Panther [RU/EN, UTC+3] - Merged Japanese locale additions & tweaks by @かず (kazu / GitHub: kazu0617) and @Aesc - Merged Spanish locale additions by @Ruzert - Merged Esperanto and Chinese locale additions by @Melnus - Merged Czech locale additions and tweaks by @rampa_3 (UTC +1, DST UTC +2)
Bugfixes:
- Fixed input groups getting their actions stuck on the last evaluated values when disabled - Updated version number of the VoiceFacetPreset, forcing the icons to update to the newest ones (based on report by @ohzee, @Lyo, @Hayden, @Kulza and @Shadow Panther [RU/EN, UTC+3]) - Added generic type validation to ValueTextFormatDriver<T> and to prevent instantiation with invalid types (based on feedback by @Cyro)
Hello everyone and welcome to another of our weekly updates!
This week we have some exciting news on the progress on the desktop mode. One of the major pre-requisites, the first phase of an input binding system, has been completed, finishing a large rework of Neos' internals in order to support new functionality. There's still lots of work to do before the desktop mode is in usable state, but with the new system it was already quick to add locomotion support, with more to come.
We also have another important change to our guidelines, to reduce some vagueness and anxiety it has caused. You can read more details below, on what we changed and why.
There are also many awesome community highlights, including a 3D snake game, some beautiful worlds and even a snowboarding mechanic in Neos. We showed off some of our own progress on the MTC Streaming & Recording room on our latest livestream.
Important update to the guidelines
Veer, our chief of moderation, has made an important change to our guidelines based on feedback we have received from you, the community and discussion with the moderation team. Specifically we have removed this guideline: “ii. Publicly display fetishes or lifestyles in a blatant manner that may make others uncomfortable.”
While our original goal was to ensure that users will avoid using avatars and tools in public that tend to make a lot of people uncomfortable, we have found that this statement ended up being too vague and caused some anxiety over what constitutes as fetish/lifestyle and what does not.
Because we want Neos to be an open and tolerant space where people can freely express themselves, we have decided to remove this particular guideline as it was too subjective. Note that actual adult content is still not allowed in public, but other than that we don’t want the guidelines to be too strict or unclear.
To deal with people becoming uncomfortable around particular people and/or avatars, we’d like to direct users to use self-moderation tools instead, whether that involves politely asking them to change their avatar or banning them from your own sessions. We can also prioritize avatar blocking features and similar solutions to expand the set of tools available to everyone to make their experience more comfortable.
If you missed our regular Friday livestream, you can check out the recording below. We have showcased some work in progress on the upcoming MTC Streaming & Recording room, which will teach users how to use Neos' built in streamer camera functions as well as provide a place to host events and record with a pre-built green screen.
Nexulan has also let the chat pick ingredients for his pizza order for some hilarity, thanks to generous Twitch sub gifts!
First phase of new Input Binding system complete
After some long major reworking of Neos’ input handling internals, we have released the first phase of our new Input Binding system! Originally Neos’ input handling code has grown organically over the years and had a lot of hardcoded rules and checks for specific controllers and combinations of input methods.
This has made it harder over time to add support for new VR controllers, but especially other input methods, like keyboard & mouse or gamepads for the desktop. We’ve also had requests for being able to customize the controls and add more different input devices over past years.
To solve this problem, we have designed a proper Input Binding system that replaces the hardcoded rules with a generalized system, while at the same time providing more flexibility and makes it easier to add support for new devices.
Input Groups & Actions
The new system is based on a concept of “Input Groups”. Anything in Neos that needs to receive inputs defines one or more input groups, each with a list of actions (boolean, analog, 2D and 3D) that it receives.
These groups are then registered with the input binding system, which fill search and match bindings for those actions and handle sorting and blocking of inputs based on the priority of each group.
This way, if a particular input source (controller Trigger button for example) is used by a higher priority input, it will naturally block for any other inputs that might want to use it, rather than those blocking rules having to be hardcoded. This way the system adapts to customized controller bindings too.
Thanks to the new system, we could greatly simplify the code of common interactions, tools, locomotion system, avatar anchors and other inputs, removing all the old controller-specific code and replacing it with a more unified system, that is easier to extend and build upon, effectively serving as an abstraction layer between input devices, ensuring that any Neos behaviors don’t need to worry about any specific input devices.
The rework of Neos’ input internals has taken a while and currently only provides small improvements in behavior. For example we have fixed handling of dead zones and movement exponent curve, which was computed incorrectly. Thanks to this you should now have better control when moving in Neos, but you might also need to tweak your deadzone and movement exponent settings a bit if they become too sensitive.
Thanks to the rework we also discovered some serious performance bugs, which have been fixed and have done general cleanup of related systems, removing a lot of the cruft. While the surface benefits of the first phase of this new system are relatively minor, the main improvements are yet to come.
Locomotion in desktop mode & future additions
Thanks to the flexibility and ease of use of the new Input Binding system, it has taken us less than 5 minutes to add locomotion support to the new desktop mode, giving users the ability to walk, fly and jump around.
While the desktop mode isn’t in a fully usable state yet, having this new input system implement is a major milestone towards its implementation. With it finalized we can now continue adding more features and building out necessary pieces to make the desktop mode properly usable, so stay tuned, there’s a lot more to come now!
We’ll be also adding support for other input devices, like gamepads, giving you more options on how to play Neos. Once the system stabilizes a bit more internally, we’ll also start looking into exposing it for user configuration, allowing you to customize the bindings. This will be likely done through a configuration file first and UI later on.
Community Highlights by Turk
Hello everyone! I hope everyone’s week went wonderfully! This week has been a little exciting as stuff has been a bit busy amongst the Neos community. New things have appeared through the creative void that is the Metaverse that is Neos. So let us shine a light on some of the things people have been making!
3D Snake by Joe Sylva & Napo
Showcased at the Metaverse Meetup we have 3D Snake! With a Maximum of 8 players you can grab your own snake and proceed to enjoy some VR quality fun as you twist, turn, pull, and push your hand all around to get that snake into those tight nooks and crannies. Be careful to not crash into anything! Your snake will explode and then you’ll have to restart your score all over again! (There’s also skins too! Instead of a Worm you can use a Dragon!) Props to Joe Sylva and Napo for showing him the ropes! This only took 2 weeks to make and the time shows!
Boolean Beach by Aetoriz
An amazing map that took alot of our inspirations by storm! Enter this gentle beach filled with multi tones of gray black and white. Watch as all the trivialities of life fade into the dull and mundane. Jump and climb over the beach’s cliffs and dunes. This map has some nice styling and is definitely a sight to behold! It truly feels like you're in a different place entirely. Props to you Aetoriz! Thanks for making the map!
Donut Dimension by QueenHidi
A wonderful idea to instill the spirit of the donut into everyone. The “Donut Tutorial” as called by many wanting to get into 3d Modeling made by the BlenderGuru. Shows as a nice world to showcase the example of everyone's donut! Thanks to everyone who contributed a Donut and Thanks Hidi for making a neat interesting map!
256fes Room uploaded by Danyy59
The 256fes challenge is back in season! People in Neos have been coming together to try and make assets with only 256 triangles! Now you might ask, why do that in this modern day and age? Well of course limitation breeds creativity! There have been all kinds of things made like avatars, maps, or even toys and tools! If you want to partake in the 256fes challenge just get into Blender and make something with only 256 triangles :slight_smile: Thanks Danny for sharing your passion with your 256 Gorilla and using a map by Maebbie to show us other parts of the modeling community!
Delvr Community One Shot by Chris and Tomo
The boys over at DelVR have some cool things to show us with the new DnD system being used live and with a community behind it. They had their first community oneshot and it seems pretty packed! Check out part 1 of their vod to see how it went down. Thanks Chris & Tomato!
VR Snowboarding by orange
Thought the vehicle craze was over yet? Guess not! We had Geese, we had cars, now we have snowboards! As the Japanese Community in Neos was participating in a VR Snow Festival, all kinds of snow toys and maps are being made! Anyone feeling for some SSX Tricky in VR? While not released yet this got a lot of interest on twitter, so I figured it was appropriate to showcase the cool and new things users are cooking up in Neos!
That's all for this week, we hope you had a great one and we're excited to bring you more progress on the desktop mode now with one of the major pre-requisites implemented, as well as clean up some other features, tweaks and bugfixes in the queue over the next weeks, so stay tuned!
And as usual, big thanks to our community for supporting this platform and allowing us to improve it every day. See you next week!
First round of tweaks and fixes for the new input binding system and some other stuff that's been waiting in the queue! Including a mechanism for the keyboard inputs (whether physical or virtual) to be blocked while typing, preventing you from moving (sorry for the inconvenience it has caused, unfortunately it wasn't caught during danger nightly testing ^^; ).
A bunch of other behaviors were tweaked and improved, which should prevent some oddities (e.g. being able to move super fast by combining keyboard & VR controller), NoClip not respecting the scale, diagonal movement being faster on some controllers and so on.
A bunch of other things got fixed up as well and a few minor additions, including new credits send/receive notification sounds by @Lewis Snow | Lead Audio Engineer! More to come soon, pushing this out now so you don't have to wait on those!
New Features:
- Added "Add White/Black Background" processing option to static texture -- This will replace the alpha channel of the texture with either solid white or black color
- Added new credits (NCR/KFC) send/receive notification sounds (created by @Lewis Snow | Lead Audio Engineer) - Added blue "Neos Pro" badge for users who have the full commercial "Neos Pro" license for business use (based on request by @KG6LSE#0881) -- Currently the process of assigning this badge to account isn't fully automated, if you'd like this badge to be displayed, please contact us
Tweaks:
- Keyboard inputs are now blocked when a world element has active focus -- This fixes typing on virtual or physical keyboard causing player movement (reported by @Lewis Snow | Lead Audio Engineer, @Freyar, @Raith (CytraX), @Mentalish, @Tok, @ArcticGamez, @Geenz | Graphics Programmer, @OctopusMan388, @Shadow Panther [RU/EN, UTC+3] and others) - Analog actions are now scaled to the maximum magnitude of each individual binding, rather than raw sum -- This prevents using multiple input methods (e.g. keyboard + VR controller) from producing exceedingly large values (e.g. resulting in the user moving too fast, as reported by @Shifty | Quality Control Lead) - Base axes for VR locomotion direction are now clamped to unit magnitude -- This fixes diagonal movement being too fast compared to pure horizontal/vertical with some controllers (reported by @Epsilion) - SetSlotPersistentSelf input boolean is now named Persistent instead of Active (based on feedback by @Zyzyl) - Added heuristic to detect broken user presence in the headset (headset/SteamVR reporting that user is not in the headset, while they are) to fix blocked interactions, closed eyes and auto-away status (based on reports by @Rue Shejn | Artist 3D, @Rukio, @Princess and others) -- The presence status will be reset if there are at least 8 trigger presses detected within last 15 seconds, while headset or controllers are moving
- Merged Korean locale additions by @MirPASEC - Merged Japanese, Esperanto and Chinese locale additions by @Melnus - Merged French locale additions by @brodokk
Bugfixes:
- Fixed NoClip locomotion speed not respecing the user's scale (reported by @DeliriousJax and @Cyro) - Improved File Browser security (based on feedback by @Psychpsyo) - Fixed WebSocketClient failing to connect to a secure (wss://) websocket when it uses newer versions of TLS (reported by @techy, @runtime, with root issue found by @Epsilion) - Fixed TransformStreamDriver providing invalid user space in some scenarios - Fixed DuplicatorTip not working when holding objects with a laser (reported by @Epsilion, @Medra and @Cataena) - Fixed interaction laser going through the context menu on the first frame when opening it, causing it to flicker to large distance and immediatelly close it in cases there's userspace element behind it (based on report by @Shifty | Quality Control Lead) - Fixed DynamicBoneSPhereCollider still being active when the component is disabled (reported by @3x1t_5tyl3)
Hello everyone, I finally got a new build for you all. I'm sorry that it took so long, it involved a lot of reworking of old Neos' interaction internals and transitioning them to a brand new Input Binding system and making sure everything still works as it should (big thanks for @Danger Tester's for helping to iron out all the major bugs before it went public!), plus I've been taking more breaks recently to better deal with stuff.
Right now the system is mostly internal, meaning you can't customize your bindings quite yet, but that's coming at some point in the future (probably through config files first). It already offfers some benefits though, as some of incorrect input handlings were fixed in the rework and parts of system made more efficient. It's a big milestone towards the desktop support and other planned features (gamepad support, new controllers, customizing the bindings and so on) - you can already use locomotion and move around, which has been trivial to add after this rework. More desktop features should now start following up soon!
There's a bunch of other smaller additions, tweaks and bugfixes as well, I plan on doing a batch of them after this build too to cleanup some of the queue since a lot of it got held up by the large rework, so builds should start coming out more frequently again. Thank you to everyone for your patience and understanding!
New Features:
- Implemented first phase of Neos' new Input Binding system and reworked Neos' internal input handling to use this new clean, generalized system -- This greatly simplifies Neos' input code, removing old tangled hardcoded controller checks and rules and replacing them with a generalized system of "Input Group" with "Input Actions" -- This makes it significantly easier to add support for new controllers, gamepads, keyboard & mouse controls and other input methods and reduce number of bugs -- Currently the input bindings cannot be customized (I want the system to stabilize a bit before we get to that), but will be in the future -- Common interactions (grabbing, clicking), tooltips, locomotion, avatar anchors were all reworked to use this new system -- Handling of movement exp and deadzone has been reworked, correcting previous incorrect implementation which would result in wrong behavior (e.g. deadzone cutting part of the range) --- You might need to readjust your in-game deadzone and movement exp settings, as those changes make some controls more responsive/sensitive -- Big thanks to Danger Testers who helped to bugtest this system before it went live: @Shifty | Quality Control Lead, @H3BO3, @Robyn (QueenHidi), @DeliriousJax, @Cyro, @Shadow Panther [RU/EN, UTC+3], @Epsilion, @Wolfie, @/home/JellyOsaurusPC and @Zyzyl
- Added "Split Submeshes" advanced model import settings, which will import each submesh as individual object -- This can be used for compatibility with programs that export multiple objects on the same scene node (e.g. Anyland, as reported by @Alex from Alaska and @Dirk#3000) -- It's highly recommended to not use this setting unless necessary, as it will produce incorrect results for most models and/or produce suboptimal results - Added "Convert To Point Cloud" processing option to static meshes, which will convert all submeshes into point clouds (based on feedback by @H3BO3)
- You can now use PhysicalLocomotion in the proper desktop mode (currently bound to WASDQE + Space bar, subject to change) -- Note that the proper desktop mode is still in heavy development and not recommended for general use yet
Tweaks:
- PriorityIssue summary now uses HTML URL to the issue, rather than the API one - TipJar now receives IButton events (suggested by @かず (kazu / GitHub: kazu0617)#0617, @rhenium_75#1015 and @AshtonSparx) - Reworked PrimaryLocomotionController setting into a more general "Primary Hand" (old setting should auto-convert) - Improved moderation tools to automatically notify any banned users on which ban is applied to their account, for how long and for what reason (based on feedback by @Veer | Chief Moderation Officer and the rest of the moderation team) - When your current Patreon priority issue is closed, you will get notified in Neos (suggested by @Shifty | Quality Control Lead) - Tweaked the mentor username badge colors (based on suggested values by @Turk) - Anchors now fire events from the user who actually got anchored - Improved sanitization of user Patreon information in the public API (based on issue by @AshtonSparx) - Updated voice icons to use a microphone graphic, instead of speaker to be more clear (icons created by @Coffee | Programmer, based on feedback by @Yellow#0930 and others) - Normalized volume of the new audio message notifications (based on report of them being too quiet by @Turk)
- Removed old ToolBase and ToolSlot components, removing unecessary complexity of double tool system (CommonTool being equipped into Tool system and Tooltips being equipped to CommonTool) -- CommonTool is now the top level component that's directly put on the user, rather than being dynamically equipped
- Merged Korean locale addition and fixes by @MirPASEC - Merged Japanese locale additions by @Aesc - Merged Esperanto and Chinese locale additions by @Melnus - Merged Czech locale additions and tweaks by @rampa_3 (UTC +1, DST UTC +2) - Merged French locale additions by @brodokk - Merged Russian locale tweak by @Shadow Panther [RU/EN, UTC+3]
Optimizations:
- Fixed CommonTool registering user interface edit mode events when destroyed, resulting in potentially significant CPU and memory usage bloat over time, as users are (re)spawned and worlds opened/closed - CommonTool undo and laser events are now only registered for the user actually owning the tool - Parts of CommonTool are not instantiated and/or initialized for users other than its owner, reducing some resource usage
Bugfixes:
- Fixed flat object positioning (used by GrabbableReceiverSurface among other things) still using Trigger colliders for part of the positioning mechanism (reported by @Toxic_Cookie) - Fixed Neos sessions crashing when trying to encode enum values that are negative (based on testing by @Cyro and @Komdog) - Fixed held tooltips receiving trigger press event on trigger release - Fixed HyperlinkOpenDialog working outside of Userspace (reported by @marsmaantje) - RaycastOne now validates input values, preventing performing raycasts when fed invalid values (e.g. NaN origin, direction or distance) and resulting in huge amount of exceptions (found in a log from @Cyro) - Added exception guard to missing struct fields for old instances of MemberEditor to avoid polluting the log with errors (found in a log from @Zyzyl)