renderStacks

⌘K
  1. Home
  2. Docs
  3. renderStacks
  4. Pass Modifier | Pmodifier
  5. [oP] ObjParams / [moP] ManyObjParams

[oP] ObjParams / [moP] ManyObjParams

[oP] ObjParams – 1 per pass, sub name required, Custom Object

[moP] ManyObjParams – Accumulative, sub name required, Custom Property

ObjParams and ManyObjParams pmodifier allow you control almost all parameters on node/baseobject/modifier per pass. If a parameter is expose to Maxscript, you can control it.

The difference between ObjParams and ManyObjParams

  • ObjParams
    can control 1 property for each objects individually. For example, each object can have different “radius” value per pass.
  • ManyObjParams
    can control many properties for many objects at once. But, all objects will share same value for a property. For example, you can control multiplier and color of 87 light objects at once. But, all lights will share same intensity and color per pass.

This pmodifier is the first pmodifier which requires sub name to use. The colon[:] will be used to separate the main pmodifier type and sub name like ObjParams:LitMul. Essentially, you are making your own pmodifier for the each parameters you want to control.

Since you have to give sub name, you can only make the first ObjParams pmodifier using Tab menu.

When you choose parameters to control, you need to choose 2 items using 2 dropdowns. The first one defines where the parameter is. The second one is parameter name.

Node

In 3ds Max SDK and Maxscript, a “Node” means a scene object. If you choose, “Node” you can control per object parameters like wireframe color and object ID. Many of node level parameters are actually have own dedicated pmodifiers like AlignLink(Parent), Transform and Material. Other than them, you can control node level parameters with this option.

New in 1.1. ObjParams and ManyObjParams can control Material.
Controlling Material iwth ObjParams  is essentially same as Material pmodifier. If you need a secondary Material pmodifier, you can use this.

baseObject

The item at the bottom of modifier stack is called baseobject. The creation parameters for a parametric object like Sphere and Teapot are in base object. Also all the lights and camera settings are in baseobject.

If you select this, the parameter name drop down will show a common parameters of selected objects’ base object. For example, if you want to control radius of spheres and teapots, you should select “baseObject” and “radius”.

baseObject | [class name]

Another option is base object like the above but only for a certain class.  For example, only Teapots or Omni Lights.

[Modifier name]

if selected objects are sharing same name modifier(s), you can control any parameters of the modifiers.

If you have more than one same name modifiers on an object, the top most modifier will be used. Therefore, it would be a good to give a unique name for the modifiers you want to control.

controller

You can control the parameters of any controller on an object. The controller is defined by the path. So, if you want to control nested controllers, the controller path needs to be the same.

How to add ObjParams / ManyObjParams pmodifier

  1. If you try to add ObjParams pmodifier, it will ask you to “Type_Subname”.
  2. If you try to make ObjParams pmodifier without sub name, it will warn you.
  3. After you type sub name, press Enter. Double click would not work for this.

    As long as you only use alphabet and number, You can name sub name as whatever you want. There is no direct relationship between sub name and what it actually does. It is just a name. But, it is always good idea to name close to what it does. 🙂

    This is what it look like after the ObjParams pmodifier is just created. As you can see, the short name shows the sub name “radius” after colon [oP:radius].

  4. Now let’s see pass modify panel, there are two empty drop down, you can choose which parameters you want to control here.

    After select object(s) in the scene, open the left drop down first. This drop down will show what you can control like node, base object or modifiers.

  5. After you choose an item in the first dropdown, the second dropdown list will be populated. There you can choose the parameters you want to control. If there is a nested parameters like FumeFX.standard it will show all nested parameters, too.

    If there are too many parameters, try to type something in the dropdown text box, it will act as a search box and show only the parameters that include the text in the name.

  6. Also if you are really confident about what you are doing, you can directly type in both dropdowns.
  7. After you choose what to control, right click the below list and add the objects to control. The list will only show the object with the chosen parameter.
  8. Add objects to control.
  9. If you assign objects to control, the dropdowns will become uneditable. You can see the dropdown is not text box anymore.

How to change property to control

  1. If you want to change the parameter you control, right click the list.
  2. Remove all objects with “Clear” command.

How to use ManyObjParams

  1. Add ManyObjParams pmodifier. It will requites to type subname just like ObjParams.
  2. Set objects to control with “Objejcs” section.
  3. Select a property to control.
    You need to select a object to see the property list.
    You can directly type, too.
  4. Open right click menu
  5. Choose “Add Property from Dropdown”

    You can see the property is added to the list.
  6. Keep adding properties as you need.