You are on page 1of 37

RealFlow3DStudioMaxPlugin

Features,ImprovementsandTutorials
This document describes the improvements made to the RealFlow 3D Studio Max plugin. The main
areas that have been improved are workflow and performance. The code has been rewritten from
scratchbutcarehasbeentakentopreservefullcompatibilitywithpreviousversions.Attheendofthis
documentyoucanfindtutorialsexplainingvariousaspectsoftheworkflowandnewobjectsintroduced
bytheplugin.
Installer
Thenewpluginhasaninstallerwizardsothatusersarenolongerrequiredtomanuallycopyfilesinto
the3DStudioMaxdirectory.Theinstallerautodetectswhich3DStudioMaxversionsareinstalledand
where.Allversionsof3DStudioMaxfromversion7.0aresupported,withboth32bitand64bitbuilds
whereapplicable.

Figure1:Thewizardautodetects3DStudioMaxversionsandinstallationlocations.
ToolbarandMenus
Thefunctionalityofthepluginisconvenientlyshowninafloating/dockabletoolbarandamenu.

Figure2:RealFlowtoolbar.
Thefunctionsofthebuttons,fromlefttoright:
ExporttoSD:Exportsthesceneusingthesettingsstoredinsidethescene.Ifthisisthefirsttime
thesceneisbeingexported,orthesettingshavebeenlostforanyreason,thebuttonwillbring
upthesettingsdialog.
ExportSDSettings:AllowstheusertoadjusttheSDexportsettings.
Import from SD: This can be used to import an SD file into 3D Studio Max. No settings are
needed.
ExportPFlowEmitters:CanbeusedtoexportoneormorePFlowemittersasasequenceofBIN
files.Itusesthelastsettingsstoredinthesceneifavailableorbringsupanoptionsdialog,just
liketheSDexporter.
ExportPFlowSettings:DisplaystheoptionsdialogfortheBINparticleexporter.
Load RealFlow Mesh: Creates a mesh object inside 3dsMax and loads its geometry from a
sequenceofBINmeshfiles.
TheImport/ExportoftheSDandMeshfilescanalsobedoneusing3dsMaxFile>Import/File
>Exportoptions.

Figure3:RealFlowSDImport/Exportusing3dsMaxsFileI/Omechanism.
UserscanconfiguretheirowntoolbarbyusingtheCustomizeUserInterfacedialog.

Figure4:RealFlowtoolbaractionsareuserconfigurable.
SDfilesupport
ThissectionwilldiscusstheusageoftheSDcomponentofthepluginandthewaysinwhichithasbeen
improvedforthisversion.
SoftBodyobjects
Softbodyobjectsarenowsupportedin3DStudioMax.PleasenotethatRFSoftBodyobjectcannotbe
created manually by users. The plugin will create RFSoftBody nodes when importing an SD file that
containssoftbodyobjectswhicharenotpresentinthecurrentscene.Iftheyarealreadypresentinthe
scene, the plugin will assign them positioning data (translation, rotation, scaling) and will only change
theSDlinkfiletheypointtoandtheSDobjectnametheyarelinkedto.RFSoftBodyobjectswillusefile
offsets for each frame and will load geometry from disk when the current frame changes, ensuring
optimalmemoryusage.
A soft body object is linked to the original SD file through two properties: SD file name and SD object
name(seefigure5).ChangingthenameoftheobjectorthepathtotheSDfileisnotrecommendedbut
canbeusede.g.whentheSDfilehasbeenmovedtoadifferentdirectory.Nodeswithabrokenlink(bad
filepathorobjectname)willshowupasasimplecubeintheviewport.
A soft body object can be used as a normal 3D Studio Max object, which means it can be instanced,
copiedorreferencedandusedincombinationwithdifferentobjectorworldspacemodifiers.

Figure5:Softbodyobjectproperties.

MAXScriptsupport
TheSDfunctionalityisalsoincludedinMAXScript.ThecommandtoimportSDfilesis:
rfImportSD file:path_to_file
Whenusingthecommandtoexportscenes,theexportsettingscaneitherbetakenfromthescene,or
explicitlyspecified.Tousethesettingsstoredinsidethescene,executethefollowingcommand:
rfExportSD output:path_to_file
Tospecifytheoptionsexplicitly,youcanaddoneormoreofthefollowingarguments:
deformation:YES/NO turns on perframe geometry export on the exported objects. The
defaultisAutodetect.
camera:name toselectwhichcameratouse.Thedefaultistousetheactivecamera(ifany).
entireScene:YES/NO exports the entire scene or just the selected objects. The default is
toexporteverything.
firstFrame:number specifies the first frame to export. The default is first frame from the
activetimesegment.
lastFrame:number specifiesthelastframetoexport.Thedefaultisthelastframefromthe
activetimesegment.
RealFlowspecificobjectattributes
A RealFlow tab is added in the Object Properties dialog for the currently selected objects. RealFlow
soft body objects, cameras, lights and particle system will have the options disabled since they are not
supported.Thetabcontainsattributeswhichcontrolhowtheexportertreatstheobject:
Export deformation: this can be used as an objectlevel override for the deformation mode
whichisspecifiedintheexportoptions.

Figure6:RealFlowspecificobjectattributes.
Theseattributesaredynamicallyaddedtotheobjectonlywhentheyaresettoanondefaultvalue.
Progressreporting
Boththeimportandexportprocessesreportprogressinthemain3DStudioMaxprogressbar,inthe
statusline.TheusercancancelatanytimebypressingtheESCkey.Pleasenotethatabortinganimport
beforeanyframeshavebeenreadwillleavealltheimportedobjectsattheorigin.

Figure7:RealFlowSDExportprogressbar.
Miscellaneousimprovements
Largefilesupport:thepluginuses64bitoffsetsforfileoperations,sotherearenorestrictions
onthesizeoftheSDfiles.
UVWmapping:thepluginwillcorrectlyimportandexporttexturecoordinatesnow.

RealFlowParticlesin3DStudioMax
ThissectioncoversthepartofthepluginwhichhandlessequencesofparticleBINfiles.
RealFlowStandardFlowusingtheParticleFlowSystem
Three RealFlow operators have been implemented for the Particle Flow system so that particles
simulatedinRFcanbemanipulatedusingthefullpowerofPFlowinMax.
A Standard flow implies having only 5 operators defined within the PFlow System: RealFlowFileBirth,
RealFlowFileUpdate, RealFlowDeathTest, Shape and Display. Figure 8 shows the Standard Flow when
usingRealFlowasanemitter.ThisflowcanbecreatedmanuallybytheuserbyplacingaPF_Sourcenode
in the scene and replacing the default Birth operator with an instance of RealFlowFileBirth. To update
the particle positions, place the RealFlowFileUpdate operator in the event container. The
RealFlowDeathTestoperatorisneeded togetridofparticlesmarkeddeadbytheRealFlowFileUpdate
operator.

Figure8:AStandardflow.
RealFlowFileBirthoperator
TheRealFlowFileBirthoperatoractsasthedefaultBirthoperator.ItfeedstheentirePFlowsystemwith
particles.

Figure9:RealFlowfilebirthoperatorsettings.
ThesettingsfortheRealFlowFileBirthoperatorare:
RealFlow .BIN file sequence: will open a dialog box allowing the user to select a file from a
sequence of files containing simulated particle behavior. After the file has been selected, the
prefixfortheemitteriscalculatedbasedontheformatandpaddingsizespecifiedbytheuserin
theFilenameoptionsgroup.
Format:has4predefinedfileformatsthatmatchRealFlowsFilenameOptions.

Figure10:Fileformatoptions.
PaddingSize:thenumberofdigitsusedtorepresenttheframe.Theframenumberwillreplace
#fromtheselectedfilenameformatwhenthefinalfilenameiscalculated.
Prefix:replacesthenamepartinthenameformatspecification.
Emit Start: specifies the initial frame in which the RealFlowFileBirth emitter should start
emittingparticles.
Emit Stop: specifies the frame in which the RealFlowFileBirth operator should stop emitting
particles. Please note that if the particles have speed in the .BIN sequence files, particles will
continuetomoveaftertheemitterstopsemittingnewparticles.
Offset:specifiesthefirstframeofthe.BINfilesequencewhichwillbeusedbytheemitter.
InheritemitterTM:allparticlepositionswillinherittheemitterspositionandorientationinthe
scene.Inthisway,youcankeepparticlesundertheirownemitter.

Note:AtricktomovetheparticleswhenwemovingthePFlowiconistoapplyapositionicon
operatorandturnoff.NowwecanmovetheparticlewhenwearemovingthePFlowicon.
RealFlowFileUpdateoperator
The RealFlow File Update operator updates position, speed and other information about custom
channelsforallparticlesgeneratedbytheRealFlowFileBirthoperator.
Itsanoptionaloperator,meaningthatifyouareroutingparticlestoanothercontainer(event)andyou
dont need to keep the particle information (position, speed etc) synchronized with RealFlow files, you
donthavetouseaRealFlowFileUpdateoperatorinthatcontainer.SimplyDisplayorDeletethemasin
figure11below.


Figure12:Workflowwhenroutedparticlesareupdated. Figure11:Workflowwhenroutedparticlesaredeleted.

When routing RealFlow particle information to another PFlow container (event), if you want to keep
particle information synchronized with the RealFlow files, you need to place another RealFlow File
Updateoperatorinthatcontainer.(Seefigure12)
TheRealFlowFileUpdateoperatoralsoactslikeagarbagecollectorforeveryPFloweventcontaineritis
placedin.ItsroleistocheckfordeadparticlesbycomparingitscurrentparticleIDswiththeparticleIDs
storedinthecurrentRealFlow.BINframefile.Ifitfindsanydeadparticles,itwillmarkandsendthemto
aRealFlowDeathTestoperatorinordertoberoutedtoanothercontainerevent.Fromtheretheycan
bedeletedfromPFlowifnecessary.
RealFlowChannels:MAXScriptPFlowoperatorscanaccessparticleattributeswhicharecomputedby
RealFlowlikeviscosity,densityetc.

Figure13:RealFlowFileUpdateoperatorsettings.
These attributes are shown in the custom data channels available in PFlow particle containers. The
custom data channels can store less data than RealFlow produces, so users must select which particle
attributes they want to use. Each attribute will use up a certain number of value slots of the available
space,asfollows:
Force,Vorticity,Normals,UVW:3slotseach
IsolationTime,Viscosity,Density,Pressure,Mass,Temperature:1sloteach
Theselectedchannelswillbedistributedoverthe16availablevalueslotsinthisorder:
Thefirst12valuesgototheparticleMatrixchannel.
Thenext3valuesgototheparticleVectorchannel.
ThelastvaluegoestotheparticleFloatchannel.
TheNeighborcountattribute,ifselected,ismadeavailablethroughtheparticleIntegerchannel.
PleaseconsulttheMAXScriptdocumentationforfurtherdetailsonhowParticleFlowisintegratedwith
MAXScript.
ThefollowingparticleattributesareavailablethroughstandardPFlowdatachannels:
PositiondatacanbereadthroughtheparticlePositionchannel.
VelocityisavailableasparticleSpeed.
TheRealFlowparticleIDisinparticleID.
Please note that the position you get from the particlePosition channel does not exactly match the
position in the BIN file. You will need to perform some adjustments on this value in order for the
rendered position to match the position from the BIN file, which is what matters. Also, the velocity
channelinPFlowisexpressedinmeterspertimetick,notmeterspersecondasintheBINfile.Inorder
tocomputetheoriginalvaluesyoucanapplythefollowingformulas(MAXScriptcode):
r eal Vel oci t y = par t i cl eSpeed * t i cksPer Fr ame * f r ameRat e
r ender Posi t i on = par t i cl ePosi t i on + par t i cl eSpeed * t i cksPer Fr ame / 2. 0
ThenamesticksPerFrameandframeRatearebuiltinMAXScriptvariables.
RealFlowDeathTestoperator
TheRealFlowDeathTestsimplygetsallparticlesmarkeddeadbytheRealFlowFileUpdateoperatorand
routesthemtoanothereventtobedeletedfromPFlow.ItsveryimportanttoplaceitunderaRealFlow
FileUpdateoperatorsincetheorderofoperatorevaluationinPFlowistopbottom.
Motionblurforparticles
ParticlesimportedusingtheRealFlowFileBirthoperatorsupportmotionblurwhentheyarerendered.
RealFlowFileBirthoperatorandMAXScript
ThefollowingattributesareexportedtoMAXScript:
Format
Path
Prefix
Padding
InheritEmitterTM
EmitStart
EmitStop
Offset
Alsoallabovementionedparametersareanimatable.(Figure14)
MAXScriptIdsfortheFormatparameterare:
Name#.ext:0
Name.ext.#:1
Name#.ext:2
Name_#.ext:3
RealFlowFileUpdateoperatorandMAXScript
ThefollowingattributesareexportedtoMAXScript:
Channels
Theparameterisanimatable.(Figure14)
MAXScriptIdsfortheChannelsparameterare:
Force:1
Vorticity:2
Normals:4
UVW:8
IsolationTime:16
Viscosity:32
Density:64
Pressure:128
Mass:256
Temperature:512
Neighborsnumber:1024
IdsforChannelsparametercanbecombinedwithbitwiseORfromMAXScript.

Figure14:RealFlowFileBirthandRealFlowFileUpdateoperatorhaveanimatableparameters.
ExportingParticleFlowsystemsto.BINparticlefiles
ParticleFlowsystemscanbeexportedto.BINparticlefilesbysimplypressingthe toolbarbutton.If
its the first attempt to export PFlow emitters from the current scene, the following dialog will open
askingfortheappropriatesettings.

Figure15:RealFlowFileBirthandRealFlowFileUpdateoperatorhaveanimatableparameters.
Afterthesceneisexported,thespecifiedsettingswillbesavedinthecurrentscenefile.Thatmeansthat
ifyouexportagainusingthe toolbarbutton,thepluginwillautomaticallyperformtheexportusing
thesettingsalreadysavedinthescene.
Ifyouneedtoexportusingothersettings,youcanopenthesettingsdialogbypressingthe toolbar
buttonorbyusingtheRealFlow>ExportPFlowparticleSettingsmenu.Afteryoumakethechanges,you
canexportwiththenewsettingsbypressingtheExportbutton.
Performance
The main drawback of the 3D Studio Max PFlow system is that it cant be used in a non history
dependent manner. That means every frame depends on the last one. When you move back in time
using the slider, PFlow will automatically evaluate the operators for ALL the frames between frame 1
and the current frame. This is not needed for RealFlow, but it cannot be disabled and therefore
searchingbackwardsusingthetimesliderisslow.
ToworkaroundthisproblemusethesettingsintheQuantityMultipliersectionoftheinterface.These
values control the percentage of the particles which are read from the BIN files. A lower setting will
resultinpoorervisualqualitybutbetterperformancebecausethesystemhastoloadanddisplayfewer
particles.Thereareseparatesettingsforviewportdisplayandrendering.
Oldparticleimporter
TheNLParticles2emitter,namednowParticleLoader,isstillavailableintheUI.Wehavekeptthis
alternative method available because its performance is better than the PFlow approach (due to the
reasonsexplainedabove).
LoadingparticleswithParticleLoader
ThissectioncoversthepartofthepluginwhichhandlessequencesofparticleBINfilesusingtheParticle
Loaderobject.
TheParticleLoaderobjectcanbefoundintheGeometrysubtaboftheCreatetabunderRealFlow
comboselection.

Figure16:ParticleLoaderobject.
ThefollowingaretheParticleLoaderproperties:

Figure17:ParticleLoaderobjectproperties.

ThesettingsfortheParticleLoaderobjectare:
IconSize:Iconsizeinviewport
EmitterHidden:Show/Hidetheparticleemitterintheviewport
DisplayEvery:WilldisplayeveryXparticlesintheviewport
RenderEvery:WillrendereveryXparticlesintheviewport
SelectFileSequence:WillopenaFileOpendialogfortheusertoselecta.BINfilesequence
Path:Willshowthepathtothecurrentloaded.BINsequence
Prefix:Willshowthenameoftheloaded.BINfile
Locklastframe:Locksthelastframeofloadedsequence
Invertsequence:The.BINsequenceisreadinaninverseorder
Offset:Indicatestheframefromwhichtheanimationwillstart
RealFlowMeshesin3DStudioMax
ThissectioncoversthepartofthepluginwhichhandlessequencesofRealFlowBINmeshfiles.
LoadingRealFlowmeshesusingMeshLoaderobject
SequencesofBINmeshfilescanbeloadedusingtheMeshLoaderobject.TheMeshLoaderobjectcanbe
createdusingthe toolbarbutton,File>Importmenu,RealFlow>CreateBinMeshobjectmenuor
fromthe3dsMaxCreatetab.
WhencreatingtheMeshLoaderfromtheRealFlowtoolbar/menu,aFileOpendialogwillopenaskingfor
the.BINmeshfilesequence.Afterthefilesequenceisselected,aMeshLoaderobjectwillbecreatedand
placedatthecenterofthescene(0,0,0).
The default viewport representation for the MeshLoader object is a cube. Whenever there is an error
loadingthe.BINfilesequence,orthereisnosequenceloaded,thisdefaultrepresentationwillbeused.
MeshLoaderobjectproperties
ThefollowingaretheMeshLoaderproperties.

Figure18:MeshLoaderobjectproperties.

ThesettingsfortheMeshLoaderobjectare:
BINMeshsequence:willopenadialogboxallowingtheusertoselectafilefromasequenceof
.BINmeshfiles.Afterthefilehasbeenselected,theprefixfortheemitteriscalculatedbasedon
theformatandpaddingsizespecifiedbytheuserintheFilenameoptionsgroup.
Format:has4predefinedfileformatsthatmatchRealFlowsFilenameOptions.

Figure19:Fileformatoptions.
PaddingSize:thenumberofdigitsusedtorepresenttheframe.Theframenumberwillreplace
#fromtheselectedfilenameformatwhenthefinalfilenameiscalculated.
Prefix:replacesthenamepartinthenameformatspecification.
Start: specifies the initial frame in which the MeshLoader object should start loading the mesh
sequence.
Offset:specifiesthefirstframeofthe.BINfilesequencewhichwillbeusedbytheMeshLoader
object.
Strength:ThisvalueisusedwhenMotionBluristurnedONandactsasamultiplierforthemesh
velocitychannelfoundinthefile.
File Frame Information: Will display per frame information for the mesh, like the number of
fluids found, if they have UVW data and if the velocity channel (speed) is present. Note: The
velocitychannelisusedforMotionBlur.
Motionblursupport
RealFlow meshes usually have unstable topology: vertices are created or removed at each frame. This
causes problems with motion blur in most renderers, since this effect needs the same number of
verticesineverysubsteptofunctioncorrectly.Theplugintriestoworkaroundthisbyusingthesame
BINfileforallsubframeswhenitdetectsthatmotionblurisenabled.Thevertexpositionsaredisplaced
using the velocity channel (speed) stored in the BIN file, to obtain the correct data for motion blur
(figure21,22).
Setting the exposure of the render too high (longer than one frame) to lengthen the blur can still
causetheplugintoevaluatetwodifferentBINfiles,resultinginvisualartifacts.Itisbettertocontrolthe
blurlengthusingthemotionblurstrengthsettingthanbyincreasingtheexposuretime.

Figure20:MeshLoaderobjectwithoutMotionBlur.

Figure21:MeshLoaderobjectwithMotionBlur.
MAXScriptsupportforMeshLoaderobjects
MeshLoaderobjectsarefullyincorporatedintoMAXScript.ThecreationprocessandallMeshLoader
objectparametersareavailablethroughMAXScript.
ThepropertiesofaMeshLoaderobjectcanbeseenbyapplyingtheshowPr oper t i es MAXScript
commandonaMeshLoaderobject.(E.g.showPr oper t i es $MeshLoader 01)
ThefollowingcommandcanbeusedtocreateaMeshLoaderobjectfromMAXScript.
rfImportBinMesh <file:bin_filename> [<prefix:prefix> <format:value>
<paddingSize:value> <start:value> <offset:value> <motionBlurStrength:value>]
Theonlyrequiredparameteris<file>.Alltheotherparameterswillusethedefaultvaluesiftheyarenot
specifiedintheimportcommand.
RealFlowMeltMaterialin3DStudioMax
ThissectioncoversthepartofthepluginwhichhandlestheMeltMaterialin3DStudioMax.
The RealFlow MeltMaterial can be used to combine several materials based on the fluid weights
contained in a RealFlow mesh file. This version of MeltMaterial has support for the default 3dsMax
ScanlineRendererandmentalrayrenderer.
The RealFlow MeltMaterial can be created in the same way that all the other 3dsMax materials are
created.Pleasenotethatduetoa3dsMaxlimitation,whenrenderingwithmentalrayrenderer,the
MeltMaterial cannot be used on more than one MeshLoader object. If you break this rule, you may
getunexpectedresultsandevencrashes.
RealFlowMeltMaterialproperties
ThefollowingaretheRealFlowMeltMaterialproperties:

Figure22:RealFlowMeltMaterial.
ThesettingsfortheRealFlowMeltMaterialare:
Melt Index: This gives the user some control over the appearance of the parts of the mesh
where several fluids meet. A value of 0 will blend the material colors using the fluid weights
exactly as they are stored in the BIN file. Increasing the value towards 1 will exaggerate the
weights,brighteningtheblend.Negativevalueswillscaledowntheweightssotheresultwillbe
darker.(Figures2325)

Figure23:RenderedwithmentalrayusingMeltIndexparametersetto1.0.

Figure24:RenderedwithmentalrayusingMeltIndexparametersetto0.0.

Figure25:RenderedwithmentalrayusingMeltIndexparametersetto1.0.
RealFlow3DStudioMaxpluginAutoUpdate

Thepluginhasabuiltinupdatemechanismwhich canbeused tomanuallyorautomaticallycheckfor


pluginupdates.Bydefault,thepluginautomaticallychecksforupdatesonevery3dsMaxstartupandif
itfindsanupdate,theuserwillbenotifiedwithadialogbox.

Figure26:NotificationforanewPluginversion.
AutomaticcheckscanbeturnedoffintheCustomize>Preferences>RealFlowpanel.

Figure27:GeneralRealFlowsettingspanel.
TutorialExportingascenetoaSDfile
ThistutorialcoversatypicalworkflowwhentryingtoexporttoaRealFlowSDfile.Wellshowyouhow
to make a simple Rigid Body animation by placing some barrels in front of the octopus when it attacks
thepirate.
1. Open 3dsMax and load ..\scenes\pirateroom.max. Note: Since this scene was created in
3dsMax9,thistutorialonlyappliesto3dsMaxversions9andabove.

Figure28:Pirateroom.maxfileloadedin3dsMax.
2. Thereare500animatedframesinthisfileandwewanttoexportthemalltoanSDfile.We
pressthetoolbar button,andifthisisthefirsttimewearetryingtoexportthisscene,a
dialogwillopenlettinguschoosetherightsettingsfortheSDfilewewanttoexport.

Figure29:Pirateroom.maxfileloadedin3dsMax.
Set deformation to No, since we dont want to export soft bodies or skinned meshes, and
leavealltheothersettingsattheirdefaultvalues.SettheexportfilepathandhitExport.
These settings will be saved in the scene, so another export will automatically use the settings
wevealreadyspecified.Ifwewanttochangethesettingsforafutureexport,wecanopenthe
SDFileExportSettingsbypressingthe toolbarbutton.
3. OpenRealFlowandcreateanewprojectnamedPirateroom.flwandthenloadtheexported
pirateroom.sd.

Figure30:Pirateroom.sdfileloadedinRealFlow.
Note:Ifthesceneistoobig,youcanuseadifferentscaleforit,like0.01.
4. Addagravitydaemontothescene.

5. Select the barrels from the right (barril, barril01, barril02, barril03), and in order to be able to
movethem,clickontheSD<>CurvebuttonundertheNodeparamsrollup.Movethemtothe
leftandplacethembetweenthepirateandtheoctopus,sowhentheoctopustriestograbthe
pirate,itwillhitthem.

Figure31:Barrelsplacedbetweenthepirateandtheoctopus.
6. Keepingthecurrentbarrelsselected,selectthebarril04objecttoo.OntheNodeParamsset
DynamicstoRigidBodyandontheRigidBodyrollupandsetDynmotiontoYes.

7. Next,weset the pirateandtheoctopustoactascolliders,butunaffectedby gravity.Selectall


Bip* objects for the pirate and Sphere04,Sphere06,Sphere08,Sphere09,Sphere10 for
the octopus. On the Node params rollup, set Dynamics to Rigid Body and set Dyn
motiontoNo.

8. The room objects need to be set up as static colliders. Select Plane02, Line07, Line07,
Object01andObject02,setDynamicstoRigidBodyandDynmotiontoNo.
9. Simulatefromframe0andexportallobjectsfromthescene.Youcanverifythatbycheckingthe
exportsettingfromtheExport>ExportCentral...(F12)menu.

Figure32:ExportCentraldialogforPirateroom.flwscene.
10. Nowitstimetoimportthesimulatedscenein3dsMax.Therearetwoimportoptionsavailable:
We can import the animation.sd file in a new 3dsMax scene or we can import it over our
existing pirateroom.max scene. The second option is more advantageous, since it will only
modifytheanimationfortheobjects,keepingthecurrentobjectmodifiersapplied.Byusingthe
firstoption,thepluginwillcreateallobjectsatimporttimeasEditableMeshobjects.
The import is simply done by pressing the toolbar button. A File Open dialog will open,
lettinguschoosethepathtotheanimation.sdfile.

Figure33:Animatedpirateroom.sdfileimportedbackin3dsMax.

TutorialImportingasoftbodyobjectinto3DStudioMax
This tutorial covers a typical workflow when trying to import a soft body object in 3dsMax. We will
importasimplesoftspherehittingtheground.
1. OpenRealFlowandcreateaplaneandasphere.Addagravitydaemon.

Figure34:Realwaveobjectimportedin3dsMax.
2. IntheNodeparamsfortheSphere,setDynamicstoSoftBody.
3. MakesureyouhavealltheobjectsselectedinExport>ExportCentral(F12)andstart
simulating100frames.
4. Open3dsMaxandimporttheanimationfilebypressingthe toolbarbuttonandbrowsingfor
theanimation.sdfile.
5. Youshouldendupwith100animationframesin3dsMax.

Figure35:Softbodysphereimportedin3dsMax.

TutorialRealwaveobjectsin3DStudioMax
InthistutorialwewillbeimportingaRealwaveobjectintoMax.
1. StartRealFlowandcreateaRealwaveobjectandanewcubeobject. Movethecubeabovethe
Realwaveobject.Addagravitydaemon.

Figure36:Realwaveobject.
2. SelectthecubeobjectandontheNoderollupsetDynamicstoRigidBody.
3. Simulate100frames.
4. Start3dsMaxandimporttherealwave01.sdbypressingthe toolbarbutton.Theobjectwill
beblackwhenseenfromabove:

Figure37:Realwaveobject.

5. TheRealwaveobjectisblackbecauseitsnormalsarepointingthewrongway.Selecttheobject
andgototheModifytab.EnabletheInvertNormalscheckbox.

Figure38:Realwaveobjectproperties.
6. Theobjectshouldrendercorrectlynow.

Figure39:Realwaveobjectimportedin3dsMax.
TutorialRealFlowparticlesinParticleFlow
This tutorial covers a typical workflow when importing RealFlow particles in 3dsMax using a Particle
Flowsystem.Wewillimport4emitterssimulatedinRealFlow.
1. OpenRealFlowandcreate4emitters,aplane,aKill_volumedaemonandaGravitydaemon.

Figure40:Scenewith4emitterscreatedinRealFlow.
2. Simulate100frames.

Figure41:SimulatedsceneinRealFlow.

3. Open3dsMaxandcreate4PFlowemitters.

Figure42:4PFlowemittersin3dsMax(topview).
4. OpentheParticleViewerandremovethefollowingdefaultoperatorsfromall4containers:
Birth,PositionIcon,SpeedandRotation.
5. PlaceaRealFlowBirthoperatorinall4containers.

Figure43:RealFlowBirthoperatorsaddedtoall4containers.
6. Select the BIN file sequence for each birth operator and set the emission range to start at
frame0andendat100.

Figure44:ThesettingsfortheRealFlowBirthoperator.

7. Add a RealFlowFileUpdate and a RealFlowDeathTest operator to all 4 containers. Please


note that we need the RealFlowDeathTest operator, because we have simulated the scene
usingtheKill_VolumedaemoninRealFlow.

Figure45:Containershavingall3RealFlowoperatorsadded.
8. Wedontneedthedeadparticles,sowerouteallofthemtoasinglecontaineranddelete
them.

Figure46:Alldeadparticlesareroutedtoasinglecontaineranddeleted.

9. ClosetheParticleViewer.Intheviewportyouwillseethatallparticlesarecreatedrelative
to their PFlow Source emitter. To get the same positions as in RealFlow, uncheck Inherit
emitterTMoneveryRealFlowBirthoperator.Thefinalimageshouldlooklikethis:

Figure47:Alldeadparticlesareroutedtoasinglecontaineranddeleted.
10. You can add various PFlow operators if you wish to alter the particles in any way (motion,
coloretc.).Forexampleyoucanroutesomeparticlesbasedontheirageandincreasetheir
speed. Dont forget to add RealFlow update and death operators to all the containers
(exceptthosewithonlyadeleteoperatorinthem).

Figure48:PFlowSpeedoperatorappliedtosomeroutedparticles.
TutorialARealFlowmeshrenderedusingtheMeltMaterial
ThistutorialshowsthebasicsofusingtheRealFlowMeltMaterialwithmentalray.
1. StartRealFlowandcreate4emitters,aplaneandaMeshobject.

Figure49:4emitterscreatedinRealFlow.
2. RightclickontheMeshobjectandchooseInsertallfluids.
3. Simulate100frames.

Figure50:4emitterssimulatedasameshobjectinRealFlow.
4. Tobringthesimulatedmeshinto3dsMax,createaMeshLoaderobjectbypressingthe
toolbarbutton.Adialogwillopenlettingyouchosethesimulatedmeshfilesequence.

Figure51:MeshLoaderobjectimportedinto3dsMax
5. Next we apply a MeltMaterial on the MeshLoader object. Open the Material Editor (M) and
presstheStandardbutton.ChooseRealFlowMeltMaterialfromthelist.
6. BylookingattheMeshLoaderobjectproperties,weseethatitcontains4fluids.

Figure52:MeshLoaderobjectpropertiesshowingthatitcontains4fluids.

7. As we have 4 fluids on the MeshLoader object, we need to create 4 sub materials on our
MeltMaterial.

Figure53:MeltMaterialwith4submaterials.
8. AssigntheMeltMaterialtoourMeshLoaderobjectbysimplydraggingthematerialontoit.
9. ChangetherenderertomentalrayrendererandpresstheRenderbutton.

Figure54:MeltMaterialappliedonaMeshLoaderobjectandrendererwithmentalrayrenderer.

You might also like