Download

Mesh Tiles Maxscript :: For Artists and UE4 Use

Finished version 1.0

You may download it here :: http://www.jeremybaldwin3d.com/#!maxscript/c1mn9

I’ve been looking for something like this. Will you release this one for use by the community as well?
Thanks!

Yes, all the scripts I am making will be free. Once finished, it will be added to the list of downloadable scripts on my website :slight_smile:

That’s kinda useful :wink:
Keep up your work!

Great! Would love to not have to do tiling by hand. Thanks for sharing all this with everyone.

awesome scripts man!you make the unreal engine 4 more artist friendly than it already is!

I thought I would write and share this.
It is a simple script that makes 3 rows of 3 spheres. This is a terrible way to write it, but I did it like this to try and show the steps in a more open format. This can be condensed down dramatically and functions made out of most parameters so that this same result could be achieved in less than 10 lines of code (with a LOT more control). Hopefully seeing it like this will help those looking for a “step by step” breakdown a bit easier.

A function like this is required for a step in creating tileable meshes



(
	fn sphereLoc p =
		(
			$demoSphere.pos = [p,p,p]
		)
	dSphere = sphere()
	dSphere.name = "demoSphere"
	k = $demoSphere
	arrayNumbers1 = #()
	arrayNumbers2 = #()
	arrayNumbers3 = #()
	(
		meshNumA = #()
		append arrayNumbers1 meshNumA
		
		unitA = for i = 1 to 3 do
			(
				rData = #()
				p=80
				sphereLoc p
				meshNumA* = maxOps.cloneNodes $demoSphere cloneType:#copy newNodes:&nnl select nnl
					$.name = uniqueName "TestSphere"
					convertTo $ Editable_Poly
					tG = $
				moveDataX = for u in $ collect (u.pos.x)
				tG.pos = (moveDataX[1]*i),0,0]
			)
	)
	(
		meshNumB = #()
		append arrayNumbers2 meshNumB
		
		unitB = for i = 1 to 3 do
			(
				rData = #()
				p=80
				sphereLoc p
				meshNumA* = maxOps.cloneNodes $demoSphere cloneType:#copy newNodes:&nnl select nnl
					$.name = uniqueName "TestSphere"
					convertTo $ Editable_Poly
					tG = $
				moveDataX = for u in $ collect (u.pos.x)
				tG.pos = (moveDataX[1]*i),80,0]
			)
	)
	(
		meshNumC = #()
		append arrayNumbers3 meshNumC
		
		unitC = for i = 1 to 3 do
			(
				rData = #()
				p=80
				sphereLoc p
				meshNumA* = maxOps.cloneNodes $demoSphere cloneType:#copy newNodes:&nnl select nnl
					$.name = uniqueName "TestSphere"
					convertTo $ Editable_Poly
					tG = $
				moveDataX = for u in $ collect (u.pos.x)
				tG.pos = (moveDataX[1]*i),160,0]
			)
	)
			delete k
				NM = $TestSphere009
				select $TestSPhere*
				actionMan.executeAction 0 "197"
		max select none
		geoArray = #()
		j = for o in geometry collect (o.name)
		select NM
		NM.name = "FinishedMesh"
		z = $FinishedMesh
		for o in geometry do
			(
				z.EditablePoly.attach o z
			)
		z.pivot = z.center
		z.pos = [0,0,0]
		max select none
				actionMan.executeAction 0 "261"
	)



Finished version 1.0

You may download it here :: http://www.jeremybaldwin3d.com/#!maxscript/c1mn9

That is just brilliant, exactly what I needed for my cliffs. Thanks again Jeremy!

No problem :slight_smile:

I have hated this process (Making it tileable - setting up camera - setting up renderer) every single time. So I made sure all of those things were automatic now.
I probably should have done this a while ago… better later than never I guess :slight_smile:

Let me know if you find any bugs in it. I wrote this in about 8 hours total over the course of 2 days. So there is bound to be at least something odd :stuck_out_tongue:

I have also begun adding random snippets of script to the bottom of my script page. Hope people find them useful :slight_smile:

That’s a crazy handy script! Thanks a lot Jeremy. :slight_smile:

No problem :slight_smile: Let me know how it works. I can always clean it up if you stumble on something that is acting up.

Thank you Jeremy, Nice handy script.