Question Re: Expanded Matrix Parameters in LE

About Truespace Archives

These pages are a copy of the official truespace forums prior to their removal somewhere around 2011.

They are retained here for archive purposes only.

Question Re: Expanded Matrix Parameters in LE // Archive: Tech Forum

1  |  

Post by Electric Jim // Jun 3, 2008, 11:38am

Electric Jim
Total Posts: 98
In the Link Editor: If I wish to access the individual channels of one of an object's input matrices, I understand that I can expand that matrix by right-clicking on it and selecting the appropriate pop-up menu. I can then connect the outputs of appropriate blocks to whichever inputs I wish to control. (I've been having a lot of fun playing around this way, and gaining an understanding of things.) However, expanding a matrix exposes all the elements of that matrix (three translation, three rotation, three scale, and three shear), and any elements that remain unconnected to another block's output are "locked" at whatever numeric value they display, unless I change those values directly. (Meaning the underlying object will not respond to mouse input in the 3D context if that output would alter the "unconnected" channels.)


This is very understandable and reasonable, but I'm wondering whether there is any convenient way to let the unconnected inputs "float" so the object can respond to normal manipulation within the 3D context for those channels that are not controlled via connection to other blocks in the LE. (For example, if I connect the object's scale inputs to certain function blocks but leave its translation & rotation inputs open, is there some way I can set things up so mousing in the 3D view will affect the translation & rotation, while the scale is left to the control of whatever LE connections I have established?)


In other words (I guess): Is there some type of block I can connect to expanded channels that I want to be left "floating" (so they respond as if the matrix were not expanded at all)? Or do I perhaps need to not expand the input matrix in the first place, and manipulate the subset of inputs in which I am interested by connecting an appropriate manipulation matrix to the unexpanded input matrix as a whole?


As always, thanks for any info you can provide.

Post by W!ZARD // Jun 3, 2008, 11:57am

W!ZARD
Total Posts: 2603
pic
I'm, far from being an LE expert but I do believe you can right click on the input you wish to control and 'export' that up one level where it will appear (without bring all the other matrix stuff with it.


I hope this helps - as I said I don't really know what I'm talking about....:o

Post by Electric Jim // Jun 3, 2008, 3:13pm

Electric Jim
Total Posts: 98
Thanks for the suggestion, Wizard; it was worth a try. :) But exporting the channels doesn't appear to make them respond to the mouse input. (It makes them available to the external container object -- in this case, "Space 3D" itself -- but they're still "locked" on that level since there's nothing feeding into them.) Perhaps if I understood the use of the Widget-related objects in the LE I could somehow attach those to the "unconnected" inputs and end up getting what I want. Oh well, something to ponder for the future... :)

Post by SteveBe // Jun 3, 2008, 5:49pm

SteveBe
Total Posts: 282
pic
Hi Electric Jim,

W!ZARD was pretty close, just missing some details.:)

Here's a video showing a method to do what you want.(at least if I understand what you want to do).

The down side of this I've found is the object nav. widget moves away from the
object.

Post by trueBlue // Jun 3, 2008, 5:57pm

trueBlue
Total Posts: 1761
pic
Not sure what you after in the end. You could expand the OwnerMatrix and maniipulate the scale from there and still be able to use the mouse to munipulate the object in 3D space.
Edit: Even better what SteveBe as suggested.
Looks like we posted at the same time SteveBe.

Post by SteveBe // Jun 3, 2008, 7:29pm

SteveBe
Total Posts: 282
pic
Hi trueBlue,

I think your method is better because the widget stays close to the object,
except if you want to control yaw, pitch & roll that way the axis goes wonky.

Thanks:)

Post by Electric Jim // Jun 4, 2008, 2:23am

Electric Jim
Total Posts: 98
Thanks, guys!


I've downloaded your video and will check it out as soon as I can, SteveBe. :)


trueBlue: Yeah, in the experiments/playing that I was doing, I originally worked through the OwnerMatrix the way you described, and that worked fine for translation-related stuff. When I tried adding in some scale-related manipulations I got unexpected results that I didn't understand, and thought that perhaps for those channels it would be better to work directly with the Matrix instead of the OwnerMatrix. (Hence, my original question.) In reality, I may well have just been doing something other than what I thought I was doing, and if I had understood things correctly I may not have needed to ask the question in the first place. (Then again, any time I learn something new -- as I'm sure I will when I can view SteveBe's video -- it's not a total loss.) :)

Post by trueBlue // Jun 4, 2008, 4:05am

trueBlue
Total Posts: 1761
pic
I am not so sure what I suggested is best. You will find that the OwnerMatrix and the Matrix will not be in sync with each other. Expand both of them and see for yourself after you manipulate both of them separately. Question is "What is it that you want to do?". Here is an example that accesses an Object's Matrix from script and by way of keyboard keys. Examine the script.
http://forums1.caligari.com/truespace/showpost.php?p=22397&postcount=1

Post by Electric Jim // Jun 4, 2008, 6:18am

Electric Jim
Total Posts: 98
I just had a chance (during lunch break) to view SteveBe's video, and now I understand what Wizard was saying: Expand the matrix in question, **then encapsulate the expanded matrix brick with its original object**, then enter the encapsulated object and export the channels I'm interested in, leaving the remaining channels amenable to manipulation with the mouse. In retrospect, I think I should have realized this is what Wizard meant in the first place, since it makes so much sense. (I can be pretty slow on the uptake, sometimes.) :o


I'll definitely check out the link & script you suggest, trueBlue, as I can always afford to improve my understanding. And I really appreciate all the help all you guys are giving me, to do so. :)

Post by W!ZARD // Jun 5, 2008, 8:28pm

W!ZARD
Total Posts: 2603
pic
To be fair I only had the general idea of how to do it - my comments were a long way from clear and explicit. I've never actually done but recall seeing it done somewhere in a tutorial video. The LE does take some getting used to. Glad you were able to figure it out though.

Post by notejam // Jun 9, 2008, 6:16pm

notejam
Total Posts: 191
On the defalt brick that comes up when you put a cube on the screen, left click on exp. Now you can wire what you want to the bricks height depth, and width. I think you will still have the standard widget, but have not tried it to see.

Now you could look through your library and find some sliders to wire to those inputs so you can control with sliders. But on the other hand, you can just left click on the defalt side of the brick, and you have those sliders already present and they already work with the mouse. I think the wiring would stay in place after you wired it up, so switching to this view gives you sliders for about everything but scale.

Now you can make your own scale, by just making a javascript brick that takes slider control and for a certain amount of slider movement adds, or subtracts and sends its output to the appropriate width, height or depth input on the le brick of the cube. Might even be able to do that directly off the sliders brick and no javascript brick needed. Wire up in exp mode of the brick, including these scale sliders you add, then switch to default view, and you have everything you want. Hopefully the widget will behave normally for control on the screen when the cube brick has been wired. and yes the sliders that appear will work with the mouse.
Awportals.com is a privately held community resource website dedicated to Active Worlds.
Copyright (c) Mark Randall 2006 - 2024. All Rights Reserved.
Awportals.com   ·   ProLibraries Live   ·   Twitter   ·   LinkedIn