WalkTheWeb v3.7.6
This software is a hosting software for 3D Websites as part of 3D Internet Metaverse that combine 3D Gaming with 3D Shopping. It is a 3D CMS for 3D Games and 3D Plugins.
Demo 3D Website: https://3d.walktheweb.com/
This update includes Babylon Engine 7.19, added click open swinging doors, click open sliding doors, mirrors, and many issues corrected.
Here are the details for this release:
Added Action Zone ID 2 to Molds Tables - On the communitymolds, buildingmolds, and thingmolds tables we added an actionzone2id field that acts as a second actionzoneid field. The first field was used to group parts in action zones like parts of a door that will swing or slide. The new actionzone2id is used to set the action zone for the mirror (or any other similar type of need). This new field was added to all connect, handlers, classes, forms, and scripts to complete the need and group and save with molds. We also updated the hub to support it in shared items.
Reflective Glass from a Mirror Zone - You can also create reflective glass by setting the opacity level of the mold. You can also set the colors of the mold to tint the glass, solid black (#000000) colors will make the glass mirror even more perfect reflection. The Mirror Zone as a covering will add the reflective objects to the glass.
Mirror Action Zone - We added a Mirror Action Zone. This Zone does not add a mirror, but creates the zone that decides which 3D Objects will be reflected in a mirror. After adding the zone, add a 3D Object and set the Covering to the Mirror Action Zone you added. These two parts create a mirror and sets all objects to add to the reflection list. Note that when an avatar enters the zone, it is automatically added to the reflection list.
Mirror as a Covering (Mesh Material) - The Mirror Covering is actually added by a Mirror Action Zone. By Adding a Mirror Action Zone on your 3D Scene, any 3D Object in the Mirror Zone will be added to the reflection list for the Mirror Covering. Using this method, you can create different zones of objects and add the mirror covering as reflecting any object in that zone. This covering can be used on most shapes. To get started, add the Mirror Zone from Action Zones, it will then show up as an option under the covering drop-down when editing a shape.
Upgraded to Babylon JS Version 7! - We upgraded the Babylon default version to 7.19 and set the defaults to v7.x.x. In admin you can manually select an engine version under Settings, Server Settings.
Showing Action Zones - When in Admin Mode and show Action Zones is on in the quick edit menu, if the action zone was not loaded at the time the quick menu was set, it would not show when loaded. We corrected this condition by updating the processMoldQueue function to check for the button setting when a new action zone is loaded and show the action zone as needed. This change will not activate in Browse mode, only Admin Mode.
Action Zone Render Group - When in Admin Mode and editing an Action Zone, we added the setting to the showActionZone function to set the render group to 1. This will make them visible in the correct layer during editing.
Corrected the Edit Pole Height - When editing an action zone with an axis, the pole that defines the axis was disappearing for some types of zone. We corrected the pole dimensions to make sure it is visible as expected.
Click Open Swinging Doors - We now have click open swinging doors. The click open doors require your avatar to be inside the zone then click to open the door. The door will swing shut when your avatar leaves the zone.
Click Open Sliding Doors - We now have click open sliding doors. Formerly called click activated, the click open doors require your avatar to be inside the zone then click to open the door. The door will slide shut when your avatar leaves the zone.
New Sliding Door Rotation - When adding a new Sliding Door, the axle was 90 degrees off from the avatar position. It has now been corrected to face correctly.
Action Zone Form Decimal Places - When adding a new Action Zone, some fields were not set to show 2 decimal places. Now they are all consistent.
Click Mold added Parent for Conditions - When you click on a mold, the code at inputClick in wtw_inputs.js now identifies the parent. Using the parent you can test to see if the mold is parented to an action zone. In this instance, we test to see if it is a click open action zone. If it is, we test if the avatar is in the action zone then open the door.
Click Move Disabled if not Avatar Camera - The Click to move the avatar has been disabled when in Admin Mode and if the Avatar Camera is not active. This allows you to work with the scene easier to click items for edit without moving the avatar.
Corrected Coins Render Group - The coins were being rendered behind the ground and other objects. We corrected the render group to 1 and now it is part of the same render layer as the other items in the 3D Scene. This corrects the missing coins in scenes.
Edit 3D Model Enhancements - Overall when editing a 3D Model we made a number of improvements; widened the text box showing the selected file, fixed the guidelines to show the full dimensions of the 3D Model, and fixed the ability to highlight all parts of the 3D Model.
Show and Hide Action Zones on List Hover - When listing all Items in a 3D Web, the action zones now will show and hide as the list item is hovered. This will make it easier to find and identify them in the 3D Scene.
New Set Highlight Recursive Function - We added a new setHighlight function that is called by highlightMold and unhighlightMold functions that will now check all children parts for highlighting and removing the highlight. This new function supports child meshes of 3D Models, standard meshes, and complete 3D Webs in a 3D Scene (like a building in a community or thing in the building or community).
Get Mesh or Node By ID - Many objects are parent based on meshes or transform node. this function checks for either when necessary and allows us to check the child objects regardless of the type. We now replaced the use of scene.getTransformNodeByID with WTW.getMeshOrNodeByID in all code.
Edit Guide Lines for 3D Webs - We added support to scale up the guide lines when editing a 3D Thing or 3D Building within a 3D Web Scene. Previously the guide lines were only showing the scale of the base.
Edit Poles Bounding Box Info - The openEditPoles function now checks for the WTW.boundingbox information to determine the guide locations. It also checks the total length of the item and appends the length of the guides to make sure they extend past the object being edited.
Added Bounding Tracking Info to 3D Molds - To assist with creating the bounding box in Admin mode, we append the 3D Model def with bounding information min and max points. This keeps it a one time calculation on creation and reusable each time it is edited. Production Browse mode does not create this extra information.
Enhanced Bounding Box on 3D Models - Up until now, when editing a 3D Model, the guide lines were focused on the size of the parent base box. Now we calculate the bounding box for the 3D Model and extend the guide lines to the outer extremities of the 3D Model. This will help in aligning items in a 3D Scene.
Open List Items Function - The open list items function is used to call and populate the formatted list of available web items from the connect websitems.php file. This function is called from the admin menu item.
Webs Items Connect File - There is a new Connect file for websitems.php that is used to create the list of editable items for any given web (3D Community, 3D Building, or 3D Thing). It is only available to the same site it resides on, per the headers passed. It will show Molds, Action Zones, 3D Things, and 3D Buildings added to any 3D Scene.
Proper Case Function - We added a propercase function to help with mix case titles. Previously there was a propercase construct for strings only, but this change makes it more universally available to code.
Added additional trapping to highlighting - We added additional error trapping to the highlight and unhighlight functions. This helps to not generate errors when items are being loaded and unloaded during highlighting stages.
Items to Edit Listing Highlighting - When available, if you hover over an item on the list, it will highlight in the 3D Scene. The item has to be visible in the 3D Scene and fully loaded to apply. Highlighting Child items of a given item are not yet supported.
List All Items to Edit - We added a menu option to List All Items to Edit under the Edit 3D Webs (Communities, Buildings, and Things). This makes it easier to select an item to edit. This also helps when an item is transparent or not selectable in the 3D Scene. We also added Action Zones to the list to make them easier to select and edit.
Mold Positioning with Action Zone Parent - When adding multiple 3D Things with Action Zones (like a swinging door zone) to a 3D Building or 3D Community Scene, the molds were being adjusted for position multiple times. We resolved this issue by checking the parent name of the mold (an action zone) index and making sure the position adjustment to the molds only took place on the same matching instance.
Set New Action Zone Children Position - When editing a swinging door or similar action zone, when you moved the axle position, the children molds would also move. This was due to an incorrect index on the name parts of the molds. When we added local- prefix it shifted the index of the name parts. Now they are set correctly in the setNewActionZone function.
Axle Pole Rotation - When editing a Swinging Door Action Zone, the pole was not reloading to the correct rotation. The rotation of the pole is actually supposed to be zero, since the parent base is what actually is rotated to make the axle take on an angle. It has been corrected in the basic action zones definitions. Note that in production, the pole is not shown; it is only a guide during editing.
Corrected Action Zone Index - When editing a Mold that is attached to an action zone like a swinging door, the index of the action zone was being referenced as the second variable separated by hyphens, but it needed to be the third ever since the local- prefix was added. The index value was updated to be 2 (zero based, third variable). This corrected the ability to move a mold that is parented to an action zone.
Increased Intensity on Images - When you add an Image from 3D Web Objects the image was using the diffuse texture only and was subject to shadows. We changed the covering material to also load the image as the emissive texture to force a brighter image. This is applied by a condition that the name of the mold includes the text mainimage.
Expanded the Media Library - Instead of nesting the media library menu options, we expanded the items into the top level menu in their own section of the menu, which now includes the 3D Plugins.
New Select 3D Avatar for Edit - We added a new Select Avatar page. This page is shown instead of the Admin Menu listing of Avatars to open. This design is similar to the WalkTheWeb Downloads Page and can be set to show between 1 and 4 columns at a time.
3D Webs Listing Page - The 3D Webs listing page was added to the wtwadmin class. This creates the page form layout.
New Select Webs Page - We added a new Select Webs page (Select 3D Community Scene, Select 3D Building, and Select 3D Thing). This page is shown instead of the Admin Menu listing of Webs to open. This design is similar to the WalkTheWeb Downloads Page and can be set to show between 1 and 4 columns at a time.
Admin menu Colors Added - To separate the different 3D Webs, we changed the colors of each so that it becomes more obvious. Green for communities, blue for buildings, yellow for things, and red for avatars. This was done in the wtwadminmenus class, addAdminMenuItem function, which we also added one more parameter for color. Colors accepted are currently limited to the 4 listed above.
Get File List Function Added - We added a getFileList function to the wtwdb class, then extended it to be included in the wtwhandlers, wtwconnect, and wtwplugins classes.
Reordered Admin Menu - We reordered the Admin menu to improve the selections by category. There are now sections for the main components (3D Communities, Buildings, Things, and Avatars), Media Library (files that support the main components), Settings, and Users.
3D Internet Admin Menu - The 3D internet Admin menu was opening an additional menu option in building section. This has been resolved in the class_main.js file adminMenuItemSelected function for the 3D Internet Plugin.
Updated Label for File Types supported - When uploading a 3D Model, the file types supported are currently .babylon, .obj, .glb, and .gltf. The old label had blender instead of babylon.
Removed Opacity Condition from Camera Distance - We were experimenting with checking the opacity before shortening the camera distance when standing in front of a wall. This was to watch for the difference of a window and a solid wall. But we decided to not use this condition. Now it only checks to see if it checks collisions or not.
Copy 3D Thing Function Corrected - The Copy 3D Thing function was not working because of 3 invalid references. The first was the use of variables for diffusecolor, specularcolor, emissivecolor, and ambientcolor instead of the $zrow object. The second was not handling the possibility for null values passed as the unloadactionzoneid, attachactionzoneid, and altloadactionzoneid (which have also been corrected in the Copy Building and Copy Community functions). The third was a reference to moldid when the select statement was returning thingmoldid as the name referenced. We updated the select statement to use moldid.
SError Missing Class Call - There were 4 instances in the classes where the serror function was being called without the class $wtwHandlers-> instance reference. They have been corrected and are now working as expected.
Save Point function Missing ID - The Save Point function was missing the Randomly assigned ID. Without it, it would not save more than one point. It is now functioning as expected.
Add Point Process Corrected - The Add Point function was not opening the point for edit in the form to the right sorted order. The name only has one hyphen and the reference was looking past the end of the name. We corrected it to look for segment 1 (0 based) instead of segment 2, which corrected the issue.
Edit Point Process Corrected - The Edit Point function was not opening the point for edit in the form. The name only has one hyphen and the reference was looking past the end of the name. We corrected it to look for segment 1 (0 based) instead of segment 2, which corrected the issue.
New Tube Default Points - We added code to add 2 points to any new Tube or Line. This makes it easier to get started.
Formatting Numbers - We now have more code to formatting numbers as the edit mold form is opened. This makes the decimal places more consistent.
Default Tube for Open Form for Edit - When you edit a tube and it is loaded into the edit form, if the tube has no points listed, it will default to the new tube 2 points. That way it is shown and will be easier to start editing.
Coordinate Order for Editing Points - Since the points are listed as (x,y,z) in the series, when editing a point, it made more sense to list them in the same order. This is different than the order listed above for the object where we use Z, X, Y.
Edit Point on Click Event - The code was using onmousedown to edit a point. We updated it to the more proper onclick event. It now works as expected.
New Tube Defaults Updated - When adding a new Tube, we now have the defaults set to create a tube with 2 default points, one 10 units over the other point. For Things, the base will be located at (0,0,0) while for Buildings and Communities molds the base is located in front of the camera where you are located. Note that the base coordinate is a reference point for the object, while the tube can use any point values required.
Edit Mold Decimal Points - When editing a mold, or adding a new mold, the position, rotation, and scaling were not displaying the same number of decimal points until changed. We added the function formatNumber to the values on opening and now they all have 2 decimal places.
Wireframe Settings in the Complete Mold Function - The completeMold function required some direct settings for the wireframe that excludes other potential settings used on other meshes.
Added Wireframe as a Material Covering - We added the wireframe as a material for a covering of a mesh. It is now on the drop down list for coverings when you add a mesh.
Path Number reference was incorrect - In the get Mold Points function in the wtwdb class, the reference to $zpathnumber was missing the z. It has been corrected so that it will now save the path points.
Camera Distance with Meshes without Collisions - When you walk through an object (like a partially transparent box) that has collisions turned off, we did not want the camera distance to be shortened to the box as you enter it. This change checks if the mesh has collisions and if the opacity is less than one before adjusting the distance.
Initiated the Response Array - In the connect/connectinggrids.php file, the $zresponse array was initiated in a nested location and under certain conditions would trigger an error. The initiation of the variable has been moved to the start of the page code avoiding this situation.
Track Page Views Function Updated - We updated the trackPageView JavaScript function in /core/scripts/prime/wtw_analytics.js file to include passing the action zone index value and use the new createIFrame functions. We also enabled all of the page view code with the new Google Analytics 4 functionality.
Create and Remove iFrame functions added - We added two JavaScript functions, createIFrame and removeIFrame, to the /core/scripts/prime/wtw_utilities.js. This functions are being used by the Google Analytics page views to dynamically create an iFrame and open the page view page, then remove the iFrame to save resources.
Get Community Name Function Added - We added a getCommunityName function to the wtwcommunities class to make it easy to pull the friendly name. In addition, we did the same for getBuildingName in wtwbuildings and getThingName in wtwthings classes.
Google Analytics Page View Update - We updated the way we pull page views for Google Analytics. You will now see the Extreme, High, or Near visibility and the Name of the Community, Building, and/or Thing in the analytics page views. Note that you can set the Google Analytics per Community, Building, and Thing. Therefore if you have a Building in multiple Communities, you will get detailed analytics about each community it is located.
Google Analytics Update - We updated the Google Analytics scripts to now handle GA4 triggers.
Removed Ad from Movement Menu - There was a simple ad on the Movement Menu under Help that was being used as a reminder of 3D functionality. We removed the ad.
Reformatted the Admin Dashboard - We reformatted the admin home dashboard page. It now has some minimum widths set, floats to next row as needed, and the page now scrolls vertically as needed.
Set Cookie has been removed from Headers - In the JSON formatted files there was a header for Set-Cookie. We were not using cookies in these files and Google Chrome started to trigger a warning that third party cookies would be denied in an upcoming update. Therefore, we removed the set cookie header reference from all pages. This has removed the related Google Chrome warnings.
Discord Updates - All of the Activity feeds to Discord have been upgraded to the latest webhook methods.