Forum Replies Created
-
AuthorPosts
-
xeonCustomer
Ok… so there is some algebra and geometery involved.
Overview – we have to determine the angle we need to rotate the object to based on the new X-entry point.
Basically you have to determine the (x, y) of where the mouse left the screen, and where its re-enter. These two points will be the base of a triangle with the apex of the triangle being the origin/center point of the object be rotated.
Two key formulas….
distance between two points =√((x2-x1)^2 – (y2-y1)^2 this will give us the lenght of the two sides from where they exit the screen to the objects center as well as the distance between the two exist points. You will have to do this calculation for all three points.Then you can use the law of cosines : cos(C) = (a^2+b^2+c^2)/2ac….solve for C and then you have the angle you have to animate the object to.
The problem— the time it takes for it to determine the new angle may be slower than the update X-values. So you would have to create some sort of delay on initial re-entry to prevent further rotation until the object is in the new orientation. This too might look like a stutter or at least sluggish…perhaps…have to try it out.
I also tested the standard drag move puzzle and it behaves the same way…so we are fighting that which is sort of a known condition of drag move…. My only thought is at this point is to put sort of a lag/delay on all the move…so on re-entry it just seems normal.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerOk…after watching your GIF…I think I miss understood the problem you were having.
In situation you are showing the mouse leaves the canvas at X and then renters the canvas a X+n and upon re-entry the object snaps to the mouse due to the new “current location” of x.The code I provided will not fix this particular issue. I had thought that you were dragging on the x… then returned from the same X starting point…so if you exit with X=0, you returned at X=0 but what you are doing is exiting the drag ie. X=10 and then returning from out of canvas to immediately appear at X = 400 and the cube rotates to face the new location making it “jump” for lack of a better phrase. Its not that the mouse is not rotation is not stopping…when the mouse leaves the canvas….its your re-entry point.
If the requirement is really that a person rotates the object leaves at X=0 and can return at X=500 and the object has to assume the entry point is the new x=0 so that the cube resumes the same rotation point regardless of where the mouse enters….??? I am sure it can be done….I know I haven’t tried to solve for that one…but I will think on it.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerOk…I have been trying to recreate the problem you are having and I just cant make it happen.
To test the theory out I created a scene with just a cube. I took the Camera and set it so that it does not have any controls. It can’t orbit, cant pan and cant zoom. This was important because often if you drag on the canvas the orbit Camera will take over and that will rotate while outside the canvas and that was a bit confusing.. when I was testing the drag over on a object.When using this setup dragging over an object stops for me as soon as the mouse leaves the canvas… however…. i created something else to ensure it stops….give it a shot.
basically added the width of the canvas container to be the limiter of the drag.
Attachments:
You must be logged in to view attached files.Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerThe code is correct..the problem is the “All objects”. This is a non itterable object selector and for this to work the way you want it needs to be an itterable object like an object, group, collection.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerHi domjasper….i take it my last bit of information was not sufficient.
Here is a screen shot of the HTML for the slider and the puzzles needed to read it into a variable and make an object move…no apply button needed.Attachments:
You must be logged in to view attached files.Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerI don’t think you can directly control a parent of a parent from via puzzles. But what you may want to consider is having your controls for your V3D canvas be in the main html and then have them communicate to the V3D canvas. This way you only have one HTML file to deal with and one canvas. Then if you need to have this project inserted as an iframe you leave that up to that top level page. The communication between the UI elements on the page and the canvas can done via puzzles.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.com2024-08-23 at 2:49 pm in reply to: 3Ds max model Editable poly Animation ‘AutoStart’ and ‘loop mode’ repeat change default values #76944xeonCustomerTry this: https://www.soft8soft.com/topic/blender-object-properties-control/#post-54523
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerSo…if you take a look at the Swiss army knife demo provided by Soft8Soft you will find this is not a problem with your version..but an inherent issue with the demo itself.
The demo is designed to be responsive so the Full screen button would have been better to have been disabled as there is no need for it. If you use the browsers full screen button it works fine.
Do you really need the full screen button…because if you do, there are a number of changes to the html/css to make it work.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerOk…well… like all things web there are many ways to do this. Adding in the mix of Verge3D then you have a few more.
My initial thoughts are you only need two plane objects and a single camera.
The planes will act as layers. The top most layer will be you spelled out name. This will be a created using a sprite sheet with an alpha channel so only the name appears. The bottom layer will be a large texture of all your content.To navigate you have tbree options…you can move the camera or you can move the plane or you can move the UV map. Choose one that is easiest for you.
Next you will have navigation to control the movement. You can use simple plane objects, that match the curvature of the buttons you have. Give them a completely transaprent texture…place them between the two planes.
If this is the only thing you are doing…you could consider going up to 4K on the content but 2K with HiDPI compositing will probably be good enough.
And all is done.
Super simple, super performant.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerI dont see an image attached.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.com2024-08-21 at 4:05 pm in reply to: Clone Object Function Works one One Object and Not Another #76874xeonCustomerAll I have are guesses right now….
I would check to make sure your dictionary and associated data are lined up for the expected object…meaning there isn’t something unexpected in the data field. If there was it would explain the “undefined”You may want to turn of the Verge3d setting “Optimize Mesh Attributes”, a source of your clone object may be getting merged with another object causing the object name to be different than expected.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerHi there,
I believe based on your puzzles, you would be better off with a different approach. When you have an existing animation created you will want to trigger an event at a specific frame I would recommend using the “on animation frame” puzzle.
https://www.soft8soft.com/docs/manual/en/puzzles/Animation.html#on_animation_frame_doMy suggestion regarding the animate paramter puzzle is to use it for things that are not already keyframed that you are intending to animate via puzzles.
Keep in mind that you can animate things in Blender and although they share the same timeline in blender, you can initiate them on different timelines in Verge3D.
As an example you have a person swinging a bat. This can be animation 1 that runs from frame 0 to 100. You can have a ball that is traveling through the air towards the stick frame 0 to 30 (animation 2). You can trigger the ball to animate in a loop…and then have the bat swing based on a specific frame, user event, etc…without having to use the animate parameter puzzle. This way all your animations are easily triggered and played back based on your needs by frame number and timing without issues or hiccups.
- This reply was modified 3 months ago by xeon.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerHave you tested your theory?
Create a simple animation. Create a play animation puzzle to stop its playback after reaching a specific frame. Conduct your next animation and see what happens. You can do this with a simple text cube project….animated the cube in a given direction over a set number of frames.
Then create a v3d project. Use the play animation puzzle and select your cube animation.
Then create another puzzle like animate parameter and conduct another animation operation on it.If the animate parameter animation doesnt affect the position of the animation controlled in your keyframes…it should work very well and allow you to end your new animation sequence in a state that matches the postion in the key framed aniamtion.
However, if you have a key frame animation and you have to create another anim parameter at specific key frames… you will have to determine if at a specifc frame the key frame animation will stop or not and do you have to resume it when the new animation is done. If the answer is yes…then again you need to make sure your anim parameter aniamtion leaves the cube in the same location you started from so that you don’t get a “skip”.
Alternatively you could just do all this via key frames. Play animation frame 0-30 and then play animation frames 60-90 then when done go back to playing aniamation frame 0-30 etc.
There should be no stuttering unless you programmatically or key frame the stutter to ocurr.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerRecommendations to try to solve this problem.
1. Create a new project and re-export your scene from Max as a Verge3D GLTF and save it to the new project folder and give that a test. If this results in it working it means that some modifications the html, CSS, JS files ocurred – more than likely.
2. Open Dev Tools in Chrome and provide a screen shot of the console log and the Network tab of the Dev Tools. Be sure you open the Dev tools to the window you are doing your puzzles on. Since the error is happening there…lets see the log.
3. Check to see if you Init Tab in the Puzzles Window and validate you do not have use compressed assets turned on. I don’t see any in your folder so … it it was on…this would cause a similar issue.
Post results…we might be able to figure it out.
Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.comxeonCustomerYou can get the values of the sliders using the HTML Get Prop Value and the slider HTML ID.
You can then assign it to a variable or do as need to via puzzles.Xeon
Route 66 Digital
Interactive Solutions - https://www.r66d.com
Tutorials - https://www.xeons3dlab.com -
AuthorPosts