Thanks for sharing, always great to see how people organize their maxscripts, I have arrived to a similar structure with the rollout nested in the struct. I like the version string variable, I should implement that here too.
@jjbigley
3 жыл бұрын
wow. This is such a good video. Incredible information here from an amature scripter persepctive.
@ifeanyiobi9196
3 жыл бұрын
I wish I could like the video twice.
@jamesvella
2 ай бұрын
Hey paul, this is great thanks for the run down! Is there any way you can show your master rollout setup? I understand you are using subrollouts to position and lay these out as you have. For example I have my list of scripts on the left list, but having trouble getting the UI into the right subrollout section. Can you post a screenshot of your subrollout setup in your main struct (for the master tool)? Also curious how you are calling the getRollouts function (if you can share that too) - for example every new rollout do you put into a new function, so fn ui (main), fn ui_2 (subrollout) then call them in getRollouts using #(ui(), ui_2() etc).
@paulneale
2 ай бұрын
@jamesvella I'm not at a system so I will try to describe it. My master tool is a rollout with two sub rollout. The left sub is populated with a rollout that has a dotnet tree view that simply displays all the scripts that are stored in a given folder and its sub folders. When you click on a script is does a fileIn command which returns the structure for that tool. TheStruct.getRollouts() returns an array of rollout definitions. I loop through those rollout and add them to the sub rollout on the right side of the main tool.
@jamesvella
2 ай бұрын
@@paulneale Hey Paul, thanks now it all makes sense. Cheers! Out of curiosity do you still use syntax "TheTool.ui()" these days or do you use "this.ui()".
@paulneale
2 ай бұрын
@@jamesvella "this" refers to itself. It can be used in a script controller for instance where you have a CA Definition on the script controller and want to access it. this.cadef.thetrack. theTool.UI() would be used to access a structure and a function with in the struct. theInstanceOfTheStruct.theNameOfTheFunction(). So both are used it just depends on where you are using them.
@jamesvella
2 ай бұрын
@@paulneale Yeah my intention was to use this.ui() when making each tool so that when making new tools it can be left as this.ui() instead of myTool2.ui(), my Tool3.ui() etc if that makes sense. But I get what you mean about the instanceOfStruct, which is kind of how Im using it now. Just was curious how your current worklfow is now after 3 years. Anyway thanks mate appreciate your time and tips!
@paulneale
2 ай бұрын
@@jamesvella you filein to a variable, so... MyTool=fileIn "thepathtothescript.ms" MyTool.ui()
@speed256x
3 жыл бұрын
this can change people lives!!!
@jason1e2
3 жыл бұрын
This is so crazy! would you be so kind as to further demo linking 1 script to this master script and made it show up on the right when you click on the left tab/buttons.
@paulneale
3 жыл бұрын
Well if I can find the time I might be able to put something together but I do describe how it is done in this video.
@jason1e2
3 жыл бұрын
@@paulneale That would great! I really do appreciate the demos you share, because I have no formal training in max scripting, thus I usually learn through typing out other people's work, and testing what each line does.
@paulneale
3 жыл бұрын
@@jason1e2 self taught here as well.
@SteS
3 жыл бұрын
Thanks Paul for this. Have you ever tried sublime text as your IDE and the build script on github? The predictive text in the native editor is one major downside for me. In ST any variables, functions etc are given to you as suggestions as they are added plus its just way more powerful.
@paulneale
3 жыл бұрын
I used to use it but moved to MS Code as I find it far better overall then Sublime and it is free and open source and is constantly being updated.
@SteS
3 жыл бұрын
@@paulneale vs code? Is there a way to execute maxscript from it?
@paulneale
3 жыл бұрын
@@SteS yup
@John-mz8rj
3 жыл бұрын
Clever.
@giusmontreal
3 жыл бұрын
great sharing! thanks!
@mikegentile13
3 жыл бұрын
Great video! Are you still available for consulting?
@paulneale
3 жыл бұрын
Select projects only. You can reach me through my site.
@stefantornqvist2498
3 жыл бұрын
Any chance to buy this script from you Paul? I have so many scripts, and it would be great to have a tool like this!
@paulneale
3 жыл бұрын
The tool on the left is 100's of scripts written over 25 years of production and is not for sale. Sorry.
@jean-gabrielbedard9975
3 жыл бұрын
Hi! I love your videos! Thanks for sharing the knowledge! I actually started to follow this model for my tools from one of your previous videos. I made a little tweak to it though : To acces the struct functions from inside the rollout, I added a variable to the rollout definition called ----> thisStruct. I then added a line to the run() function : fn run = ( if uiInst==undefined then ( uiInst=ui() createDialog uiInst uiInst.thisStruct = this
@janjanas6644
Жыл бұрын
How do I evaluate the script on macro execute to defined the structure when I run the macro?
@paulneale
Жыл бұрын
If I understand what you are asking you use fileIn command. That will evaluate the script and define the structure. TheTool=fileIn "theTool.ms" TheTool.run()
@janjanas6644
Жыл бұрын
@@paulneale Yes, that was correct, thank you
@Iam-gk9jw
3 жыл бұрын
GirlTools MonsterTools Monster_Neck_Stretch_FOR_RI... 👁👄👁 I see where this is going...
@paulneale
3 жыл бұрын
Those are all character specific tools I use for setting up those characters.
Пікірлер: 30