Copy/Paste Object Properties

5 votes
Version: 
1.02
Date Updated: 
01/21/2014
Author Name: 
Colin Senner

This script allows you to copy and paste properties from one object to another (or multiple at once).

This is useful for copying camera settings from one to another. Although it will do any type of object you copy from. You can easily include/exclude any properties you DONT want copied (like FOV, focal length, etc).

Run the script:
1. In Max goto "Customize -> Customize User Interface -> Toolbars tab -> Category: ColinScripts->Properties (Copy)" and "Properties (Paste)" and drag them to a toolbar.

You can also copy an object's properties from one open max file to another open max instance because the script just writes a txt file with the properties.

Version Requirement: 
Max 9+
AttachmentSize
1.jpg41.91 KB
2.jpg82.2 KB
propertiescopyandpaste.ms7.83 KB

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
igamaximus's picture

Great work on adding object properties!

All checkboxes apart form motion blur section are working perfectly, great job Colin. Motion blur enable checkbox, multiplier and radio buttons are not working but i think this is not important at all. If renderer properties could work in future that would be so so useful and great.

Thanks a lot!

harumscarum's picture

Great script!

I'll check it but is it allows to copy camera settings with camera and its target positions? would be very helpful to add new frame to animated camera from camera in scene

igamaximus's picture

Colin, thank you very much!

You are right, it is the same in finalRender as you have described the process in Vray. So, selecting 1 or more objects...right click...object properties...finalRender properties tab...checking/unchecking checkboxes. :)
In that sense if there is general method for you to do that, i believe what will work with Vray will work for fR too, i will test it deeply and let you know.

Many thanks!

colinsenner's picture

Updated

I know it doesn't look like it, but I updated the script considerably to be able to accommodate your request and reworked how things are parsed to be cleaner and allow me more flexibility (like adding friendly names to each of the parameters so you know what you're copying.

Check out the new script. It doesn't support custom renderer object properties yet, but it's ready to be able to at least.

After a bunch of work I realized that with V-Ray you can easily change the V-Ray custom properties for a bunch of objects at once by simply having multiple objects selected and right-clicking and going to "V-Ray Properties" and changing them easily there. I take it FinalRender doesn't have this ability?

Let me know.

igamaximus's picture

But these are not object properties from right click meny.

Is it helpful to show you the screenshots of finalRender right click object properties rollouts? I think there are 3 rollouts in total on finalRender properties tab.

Thanks!

igamaximus's picture

with pleasure Collin, please take a look

When i do exactly like you told me i don't get anything in mxs listener, i am really not sure why. fR is my current renderer and this approach does not provide some informations.
But, when i create small script like this:

fr = renderers.current
show fr

it gives me all the exposed properties of the fR renderer, and these are:

.useAntialiasing (Use_Antialiasing) : boolean
.aaQuality (AA_Quality) : percent
.showAdvancedSettings (Show_Advanced_AA_Settings) : boolean
.useScanline (Use_Scanliner) : boolean
.aaSampler (AA_Sampler) : integer
.aaSamplerName (AA_Sampler_Name) : string
.aaSamplerRef (AA_Sampler_Reference) : maxObject
.filterMaps (Filter_Maps) : boolean
.filterImage (Use_Image_Filter) : boolean
.aaFilter (AA_Filter) : integer
.aaFilterName (AA_Filter_Name) : string
.aaFilterRef (AA_Filter_Reference) : maxObject
.aaFilterSize (AA_Filter_Size) : float
.bucketSize (Bucket_Size) : integer
.bucketOrder (Bucket_Order) : integer
.bucketReverseOrder (Reverse_Bucket_Order) : boolean
.bucketColor (Bucket_Color) : RGB color
.trackMouseInVFB (Track_Mouse_in_VFB) : boolean
.enablefRVFB (Enable_finalRender_VFB) : boolean
.displayMessages (Display_Messages) : boolean
.saveLogToFile (Save_Log_To_File) : boolean
.logFilePath (Log_File_Path) : filename
.checkForMissingFiles (Check_for_Missing_Files) : boolean
.verboseLevel (Verbose_Level) : integer
.clearOptions (Clear_Options) : integer
.clearColor (Clear_Color) : RGB color
.channels : integer
.storage : integer
.useLowPriority (Use_Low_Priority_Threads) : boolean
.useMaterialOverwrite (Use_Material_Overwrite) : boolean
.overwriteMaterial (Overwrite_Material) : material
.useMappings (Use_Mappings) : boolean
.freeMapsAfterRender (Free_Maps_After_Render) : boolean
.useAutoRefl (Use_Auto_Reflect_Refract) : boolean
.useDefLights (Use_Default_Lights) : boolean
.renderHiddenLights (Render_Hidden_Lights) : boolean
.useShadows (Use_Shadows) : boolean
.enhanceBumpShadows (Enhance_Bump_Shadows) : boolean
.bumpShadowsFactor (Bump_Shadows_Amount) : percent
.useSSS (Use_Sub_Surface_Scattering) : boolean
.rollouts : integer
.lockGISky (Lock_GI___Skylight) : boolean
.irRecomputeGISamples (Reuse_and_Recompute_GI_Samples) : boolean
.rttPaddingWithAlpha (Padding_With_Alpha) : boolean
.useMultithreadedPreProcessing (Use_Multithreaded_Preprocessing) : boolean
.renderingCanceled (Rendering_Canceled) : boolean
.useReflections (Use_Reflections) : boolean
.useRefractions (Use_Refractions) : boolean
.useBlurry (Use_Blurry_Refl_Refr) : boolean
.reflectBounces (Reflection_Bounces) : integer
.refractBounces (Refraction_Bounces) : integer
.shadowBounces (Shadow_Bounces) : integer
.totalBounces (Total_Bounces) : integer
.useReflectColor (Use_Max__Reflection_Color) : boolean
.useRefractColor (Use_Max__Refraction_Color) : boolean
.reflectColor (Max__Reflection_Color) : RGB color
.refractColor (Max__Refraction_Color) : RGB color
.useReflectMap (Use_Max__Reflection_Map) : boolean
.useRefractMap (Use_Max__Refraction_Map) : boolean
.reflectMap (Max__Reflection_Map) : texturemap
.refractMap (Max__Refraction_Map) : texturemap
.rtDisableLocals (Disable_Raytrace_Locals) : boolean
.rayThreshold (Ray_Threshold) : percent
.shadeAtmospherics (Consider_Atmospherics) : boolean
.shadeScattering (Consider_Sub_Surface_Scattering) : boolean
.reflectEnvMode (Reflection_Environment_Mode) : integer
.reflectEnvColor (Reflection_Environment_Color) : RGB color
.reflectEnvMap (Reflection_Environment_Map) : texturemap
.refractEnvMode (Refraction_Environment_Mode) : integer
.refractEnvColor (Refraction_Environment_Color) : RGB color
.refractEnvMap (Refraction_Environment_Map) : texturemap
.totalIntReflections (Total_Internal_Reflections) : integer
.filterMapsFactor (RayTracing_Filter_Maps_Factor) : float
.atmosphereIOR (Atmosphere_IOR) : float
.optimizeAtmospherics (Optimize_Atmospherics) : boolean
.rayBias (Ray_Bias) : worldUnits
.clipTransFromGBuffer (Clip_Trans__From_GBuffer___RE) : boolean
.clipTransThreshold (Clip_Trans__Threshold) : percent
.geomSmpMode (Geometric_Sampling_Mode) : integer
.geomSmpMaxSamples (Geom_Smp__MaxSamples) : integer
.geomSmpRadius (Geom_Smp__Radius) : worldUnits
.geomSmpRepulsion (Geom_Smp__Repulsion) : percent
.geomSmpIterations (Geom_Smp__Iterations) : integer
.geomSmpShow (Show_Geometric_Samples) : boolean
.geomSmpReferenceFrame (Geometric_Samples_Reference_Frame) : time
.useSkyLight (Use_SkyLight) : boolean
.skyType (Sky_Type) : integer
.skyColorMultiplier (SkyLight_Multiplier) : float
.skyColor (SkyLight_Color) : RGB color
.useSkyMap (Use_SkyLight_Map) : boolean
.skyMap (SkyLight_Map) : texturemap
.skySamples (SkyLight_Samples) : integer
.useSkyTransparency (Use_Transparency) : boolean
.phySkyMultiplier (Physical_Sky_Multiplier) : float
.phySkyFilter (Physical_Sky_Filter) : RGB color
.phySkySaturation (Physical_Sky_Saturation) : float
.useSunlight (Sunlight_Enable) : boolean
.sunlightMultiplier (Sunlight_Multiplier) : float
.sunlightFilter (Physical_Sky_Sunlight_Filter) : RGB color
.sunlightSaturation (Physical_Sky_Sunlight_Saturation) : float
.phySkyShowInEnvironment (Show_Physical_Sky_in_Environment) : boolean
.phySkyEnvMultiplier (Physical_Sky_Env__Multiplier) : float
.phySkyEnvFilter (Physical_Sky_Env__Filter) : RGB color
.phySkyEnvSaturation (Physical_Sky_Env__Saturation) : float
.phySkyColorSpace (Phyical_Sky_Color_Space) : integer
.phySkyTurbidity (Turbidity) : float
.phySkyWater (Water) : float
.phySkyOzone (Ozone) : float
.phySkyHours (Hours) : integer
.phySkyMinutes (Minutes) : integer
.phySkySeconds (Seconds) : integer
.phySkyDay (Day) : integer
.phySkyMonth (Month) : integer
.phySkyYear (Year) : integer
.phySkyGMTOffset (GMT_Offset) : integer
.phySkyTimeOffset (Time_Offset) : float
.phySkyDaylightSavingTime (Daylight_Saving_Time) : boolean
.phySkyLongitude (Longitude) : float
.phySkyLatitude (Latitude) : float
.phySkyCompass (Compass) : node
.phySkySun (Sun_Node) : node
.phySkyGroundEnable (Use_Ground) : boolean
.phySkyGroundShift (Ground_Shift) : percent
.phySkyGroundBlur (Ground_Blur) : percent
.phySkyGroundColor (Ground_Color) : RGB color
.phySkyNightColor (Night_Color) : RGB color
.phySkyShadowAngle (Physical_Sky_Shadow_Angle) : angle
.phySkyShadowAngleOffset (Physical_Sky_Shadow_Angle_Offset) : angle
.phySkyShadowSamples (Physical_Sky_Shadow_Samples) : integer
.phySkyShadowBias (Physical_Sky_Shadow_Bias) : worldUnits
.phySkyenableVisibleSun (Enable_Visible_Sun) : boolean
.phySkyVisibleSunRadius (Visible_Sun_Radius) : worldUnits
.phySkyVisibleSunMultiplier (Visible_Sun_Multiplier) : float
.phySkyVisibleSunSharpness (Visible_Sun_Sharpness) : percent
.skyType (Sky_Type) : integer
.useSkyLight (Use_SkyLight) : boolean
.skyColorMultiplier (SkyLight_Multiplier) : float
.skyColor (SkyLight_Color) : RGB color
.useSkyMap (Use_SkyLight_Map) : boolean
.skyMap (SkyLight_Map) : texturemap
.skySamples (SkyLight_Samples) : integer
.useSkyTransparency (Use_Transparency) : boolean
.usePhysicalSky (Physical_Sky_Enable) : boolean
.useSunlight (Sunlight_Enable) : boolean
.showInEnvironment (Show_Physical_Sky_in_Environment) : boolean
.phySkyMultiplier (Physical_Sky_Multiplier) : float
.sunlightMultiplier (Sunlight_Multiplier) : float
.hours : integer
.minutes : integer
.seconds : integer
.day : integer
.month : integer
.year : integer
.GMTOffset (GMT_Offset) : integer
.timeOffset (Time_Offset) : float
.daylightSavingTime (Daylight_Saving_Time) : boolean
.longitude : float
.latitude : float
.turbidity : float
.water : float
.ozone : float
.compass : node
.giEnable (Enable_Global_Illumination) : boolean
.giBounces (Diffuse_Bounces) : integer
.giUseDiffuseColor (Use_Diffuse_Color) : boolean
.giDiffuseColor (Diffuse_Color) : RGB color
.giUseDiffuseMap (Use_Diffuse_Map) : boolean
.giDiffuseMap (Diffuse_Map) : texturemap
.giMultiplier (Multiplier) : float
.giSecMultiplier (Secondary_Multiplier) : float
.giEngine (Global_Illumination_Engine) : integer
.giEngineName (GI_Engine_Name) : string
.giEngineRef (GI_Engine_Reference) : maxObject
.giEngineSec (Secondary_Bounce_GI_Engine) : integer
.giEngineSecName (Secondary_Bounce_GI_Engine_Name) : string
.giEngineSecRef (Secondary_Bounce_GI_Engine_Reference) : maxObject
.giColorBleeding (Color_Bleeding) : percent
.giContrast (Contrast) : percent
.giContrastRange (Contrast_Range) : float
.giSaturation (Saturation) : percent
.giHdriAngle (HDRI_Cover_Angle) : angle
.giDowngradeThreshold (GI_Downgrade_Threshold) : percent
.giDowngradeColor (GI_Downgrade_Color) : RGB color
.giDisableLocals (Disable_Raytrace_Locals) : boolean
.giShadeBG (Consider_Background) : boolean
.giShadeAtmospheric (Consider_Atmospherics) : boolean
.giShade3S (Consider_Sub_Surface_Scattering) : boolean
.giRenderCaustics (Render_GI_Caustics) : boolean
.giShowDirectLight (Show_Direct_Lights_in_Prepass) : boolean
.aoEnable (Use_Global_Ambient_Occlusion) : boolean
.aoDiffuse (AO_Diffuse_Calculation) : boolean
.aoBlend (Global_Ambient_Occ__Blend) : percent
.aoSamples (Samples) : integer
.aoDistance (Max_Distance) : worldUnits
.aoLightShadowFalloffBlend (Light_Shadow_Falloff_Blend) : percent
.aoShadowDistance (Max__Distance__Shadow) : worldUnits
.aoLockDistances (Lock_Distances) : boolean
.aoSpace (Space) : integer
.aoScreenDistance (Screen_Distance) : percent
.aoScreenShadowDistance (Screen_Shadow_Distance) : percent
.aoDensity (Density) : integer
.aoShadowDensity (Shadow_Density) : integer
.giShowPrepass (Show_Prepass) : boolean
.giShowSamples (Show_Samples) : boolean
.giSampleColor1 (Samples_Color_1) : RGB color
.giSampleColor2 (Samples_Color_2) : RGB color
.giSolutionMode (Solution_Mode) : integer
.giSolutionReuse (Reuse_Solution) : boolean
.giSolutionLock (Lock_Solution) : boolean
.giPrepassOnly (Prepass_Only) : boolean
.giSolutionAnimationMode (Animation_Mode) : integer
.giUpdateSolution (Update_Solution) : boolean
.giSolutionInterpolationFrames (Animation_Interpolation_Frames) : integer
.giSolutionMultipleFiles (Solution_Mutiple_Files) : integer
.giSolutionAnimationPass (Animation_Pass__Prepass_Rendering) : integer
.giUseSolutionFile (Use_Solution_File) : boolean
.giSolutionFile (Solution_File) : filename
.useCaustics (Enable_Caustics) : boolean
.useVolumeCaustics (Enable_Volume_Caustics) : boolean
.useReflectCaustics (Enable_Reflection_Caustics) : boolean
.useRefractCaustics (Enable_Refraction_Caustics) : boolean
.csDisableLocals (Disable_Raytrace_Locals) : boolean
.causticMultiplier (Caustics_Multiplier) : float
.causticEngine (Caustics_Engine) : integer
.causticEngineName (Caustic_Engine_Name) : string
.csEngineRef (Caustics_Engine_Reference) : maxObject
.useDistributedRendering (Enable_Distributed_Rendering) : boolean
.distributeMaps (Distribute_Maps) : boolean
.isectEngine (Accelerator_Engine) : integer
.isectEngineName (Accelerator_Engine_Name) : string
.isectEngineRef (Accelerator_Engine_Reference) : maxObject
.isectVisualDebug (Visual_Debug) : boolean
.qmcAmount (Amount) : percent
.qmcMinSamples (Min__Samples) : integer
.qmcThreshold (Threshold) : percent
.qmcLockToScreen (Lock_To_Screen) : boolean
.qmcGlobalMultiplier (Global_Blurry_Multiplier) : float
.useMicroTriangleDisplacement (Enable) : boolean
.mtdMode (Mode) : integer
.mtdSubdivisionLevel (Subdivision_Level) : integer
.mtdHeight (Height) : worldUnits
.waterLevel (Water_Level) : float
.mtdViewDependend (View_Dependend) : boolean
.mtdEdgeLength (Edges_Length) : float
.mtdKeepEdges (Keep_Edges) : boolean
.mtdRoundGeometry (Round_Geometry) : boolean
.mtdViewClipping (View_Clipping) : boolean
.mtdMapGeometry (Map_Displaced_Geometry) : boolean
.mtdMaxCompatibleMesh (3dsmax_compatible_Mesh) : boolean
.mtdDisableLocals (Disable_Locals) : boolean
.mtdThreshold (Threshold) : percent
.mtdSmoothingMethod (Use_Smoothing_Angle) : integer
.mtdSmoothingAngle (Smoothing_Angle) : angle
.mtdCameraDistanceExponent (Camera_Distance_Exponent) : float
.useInformationStamp (Use_Information_Stamp) : boolean
.useHeader (Use_Header) : boolean
.header : string
.useFooter (Use_Footer) : boolean
.footer : string
.transparency : percent
.blurriness : percent
.useDOF (Use_DOF) : boolean
.shutterSize (Aperture) : worldUnits
.lensType (Lens_Type) : integer
.lensAngle (Lens_Angle) : angle
.dofSamples (DOF_Max_Samples) : integer
.useCameraDistance (Use_Camera_Target) : boolean
.dofTargetDistance (Target_Distance) : worldUnits
.dofUseTint (Use_Tint) : boolean
.dofTintFrontColor (Tint_Front_Color) : maxObject
.dofTintBackColor (Tint_Back_Color) : maxObject
.colorMapUse (Use_Color_Mapping) : boolean
.colorMapType (Color_Mapping_Type) : integer
.darkMultiplier (Dark_Multiplier) : float
.brightMultiplier (Bright_Multiplier) : float
.colorMapAffectBackground (Affect_Background) : boolean
.useMotionBlur (Use_Motion_Blur) : boolean
.useObjMotionBlur (Use_Object_MotionBlur) : boolean
.useCameraMotionBlur (Use_Camera_Motion_Blur) : boolean
.useOMblurTrails (Use_Obj_MotioBlur_Trails) : boolean
.mBlurDuration (Obj_MotionBlur_Duration) : float
.mBlurPhase (Obj_MotionBlur_Phase) : percent
.mBlurMeshSamples (Obj_MotionBlur_Mesh_Samples) : integer
.mBlurSamples (Obj_MotionBlur_Max_Samples) : integer
.mBlurTMSampling (TM_Sampling) : percent
.mBlurForceTweenMode (Force_Tween_Mode) : boolean
.mBlurApplyToMtls (Apply_to_Materials) : boolean
.mBlurCameryOnly (Motion_Blur_for_Camera_Only) : boolean
.mBlurForceAtmosphere (Force_Atmosphere_Motion_Blur) : boolean
.cameraNumber (Camera_Number) : integer
.cameraName (Camera_Name) : string
.cameraRef (Camera_Reference) : maxObject
.textureMode (Texture_Pager_Mode) : integer
.textureMemory (Texture_Memory) : integer
.textureBlockSize (Texture_Bucket_Size) : integer
.texturePath (Texture_Pagefile_Path) : string
.gbufferMode (Texture_Pager_Mode) : integer
.textureMemory (Texture_Memory) : integer
.textureBlockSize (Texture_Bucket_Size) : integer
.texturePath (Texture_Pagefile_Path) : string
.rePassesEnable (Enable_Render_Element_Passes) : boolean
.rePassesRenderIncludedOnly (Render_Included_Objects_Only) : boolean
.rePassesRenderMainBeauty (Render_Main_Beauty) : boolean
.rePassesForceAllForSmp (Use_All_Objects_For_Sampling) : boolean

Please let me know if i can do anything more.

Thank you!

colinsenner's picture

Do me a small favor. I want

Do me a small favor. I want to see how final render handles these properties as vray might do them slightly differently.

In max, open the vray listener (MAXScript-> MAXScript Listener).

Select an object and in the listener window type

getUserPropBuffer $

and hit Shift+Enter and post the output here please.

Thanks!

igamaximus's picture

Much appreciated Colin, thanks a lot.

Yes, that would be great, it's fully your choice.
For example, there could be 2 main checkboxes (3 in total), like "copy object parameters" and "copy object properties" (with subcheckbox named "include custom render props").
Or maybe, to reduce UI size, it could be toggle button with these 2 states (i am not sure if this is possible), and just to add 1 checkbox near it named "include custom render props"
It's really up to you, and i will test all functions as much as i can and report in details.

Thank you!

colinsenner's picture

I'll be more than happy to

I'll be more than happy to write this in once I can find some time. The render properties are the easier bit of this :). I can see if I can find the time.

I'm planning on adding another button for pasting properties like "Paste Custom Renderer Properties" so users can use the current script as they always have been. Will this be appropriate?

igamaximus's picture

Thank you so much Colin.

There is no other tool that allows copying and pasting object properties from one object to another, i was looking for tool like this for a long time. Especially the one that supports 3rd party render engine properties.
Please let me know if i can help you by any means by testing anything needed in finalRender.

Thank you!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.