Exploded view

not sure if this script or a script that can do this exists but i'm thinking of making an exploded view animation

basically i have thousands of objects in my scene in a small area of a product, i want the whole product to explode (not in a chaotic way)

so every object moves away from the centre of the object as if it is completely disassembled into it's components and i want to animate it

i can't think of a way to do it without key framing every single part and there's way too many

anyone got any suggestions?

Cheers

Comments

Comment viewing options

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

@Nimaril please when you post

@Nimaril
please when you post update for the script...
could you advice me by email?
thanks

[email protected]

jinj's picture

cool and awesome!! hope to

cool and awesome!!
hope to download update quick!!!
;)))
Do you will post the update here,
or on it's own page?

Nimaril's picture

Cool, happy it works Jinj. I

Cool, happy it works Jinj.

I plan to continue to develop the script, as I said before this is my first script and it is a good exercise for me anyway so why not make something useful at the same time.

Here are some feature I plan to add on short and long term.
(not by order of priority)

1. Feedback on the distance in the viewport. (So you don't have to guess or go back and forth between push/pull)
2. Animating/keyframming via the interface.
3. Move only on the axis X, Y or Z or any combination of those. (<- Top priority) And move along an axis defined by the user.
4. Button to link/unlink the objects with the bomb (parent/child).
5. Button to "freez"/"unfreez" the objects.
6. Button to get the objects back into the selection (so you don't have to chase after them)
7. Button to select the bomb.
8. Back to "initial state". (like a super undo) (<- Top priority)
9. Undo - redo support.

10. Fixing the bugs :).

If there are some features you'd like feel free to ask. If I can implement them I'll try.

jinj's picture

cool and awesome!! hope to

cool and awesome!!
hope to download update quick!!!
;)))
Do you will post the update here,
or on it's own page?

Nimaril's picture

Both I guess, I'll update

Both I guess,

I'll update here and when the script is reasonably advanced/debugged I'll create its own page.

jinj's picture

@Nimaril oh yes I do all

@Nimaril
oh yes I do all step,
you can't do nothing wrong ;)
I re-try and now selecting more than one obj at the same time work...
undo and redo is not supported but if you select "push" and you are not satisfied from result than just select "pull" or viceversa and it work like undo ;)
this script is a little start.....
the interface is to small.... it would be nice to have an interface with more "ADD SELECTION" button with dedicated offset x,y,z direction.
but any way, the idea of exploded view is to offset obj on x,y,z,xyz
by bringing single/grouped objs on same plane and distance... so to render all component.
well.. any way I appreciate your script...;)) a nice implementation of this one is just to ad the possibility to select only one from x,y,z, axes for offset.
It would be nice if you continue with developing this script.;)))
thank you man

Nimaril's picture

Jinj, glad you found the

Jinj, glad you found the script useful. I'll try to help you out with your problem.

--------------------------------------------

Are you sure you followed these steps:

1. Select the objects you want to repulse or attract.
2. Press the "ADD SELECTION" button.

3. select the object that will act like the "bomb".
4. Press the "ADD BOMB" button. 5. Chose the wanted distance.

6. Press either "Push" or "Pull".

--------------------------------------------

The script should work fine. There are some known issues (like weird behaviour with groups etc) but as I already said it is an alpha version.

IF you still got trouble you can send me the MAX file so I can take a look why it bugs. Needless to say that I will not spread the file.

jinj's picture

hi Nimaril I try the

hi
Nimaril I try the script!!
It's simple and useful but only for one obj at time
I try to explode more than one component at time but no action!!
I try to explode a watch in all it's component but this is an
never ending job :=
I stay tuned for the official release!
thanks

Nimaril's picture

Hi Lareon, here is a little

Hi Lareon,

here is a little script that should do the trick for you.
It's an alpha version and still has lots of bugs, but it works.
It's also my first script so the code may not be pretty.

Here is how it works:

1. You select the objects that you want to explode. (Click "Add selection")
2. Select the object that will act as "bomb". (Click "Add bomb")

The rest is self explanatory (distance - push - pull).

  1. -- Exploder ver 0.01
  2. -- Ilies Sarrab, march 2010
  3.  
  4. -- Arrays
  5. -- Array of the objects who will explode
  6. myObjects = #()
  7.  
  8. -- Array of the ground zero object, should contain only one object
  9. myBomb = #()
  10.  
  11. rollout myExploder "My Exploder"
  12. (
  13. group "Selection" (
  14. --myObjects _ MO
  15.  
  16. button _EmptyMO "Empty" align:#left across: 2
  17. on _EmptyMO pressed do
  18. (
  19. myObjects = #()
  20. myBomb = #()
  21. -- test -- print myObjects
  22. )
  23.  
  24. button _AddMO "Add selection" align:#right
  25. on _AddMO pressed do
  26. (
  27. join myObjects (selection as array)
  28. initialMyObjects = myObjects
  29. )
  30.  
  31. -- myBomb _ MB
  32.  
  33. button _AddMB "Add bomb" align:#right
  34. on _AddMB pressed do
  35. (
  36. if selection.count == 1 then (
  37. (myBomb = selection as array)
  38. (print myBomb)
  39. )
  40. else messagebox "Please select one object as bomb."
  41. )
  42. )
  43.  
  44. group "Forces" (
  45. spinner _Distance "Distance" range:[1,1000,10]
  46. -- Execution
  47.  
  48. button _Push "Push" align:#left across: 2
  49. on _Push pressed do
  50. (
  51. for i in myObjects do
  52. (
  53. myVector = normalize(i.pos - myBomb[1].pos)
  54. i.pos = (i.pos + (myVector * _Distance.value))
  55. --test -- print i.pos
  56. )
  57. )
  58.  
  59. button _Pull "Pull" align:#right
  60. on _Pull pressed do
  61. (
  62. for i in myObjects do
  63. (
  64. if i.pos == myBomb[1].pos then
  65. (
  66. messagebox "One or more objects have the same positions as the bomb."
  67. )
  68. else
  69. (
  70. myVector = normalize(i.pos - myBomb[1].pos) -- /2
  71. if (distance i.pos myBomb[1].pos) > _Distance.value then
  72. (
  73. i.pos = (i.pos - (myVector * _Distance.value))
  74. )
  75. else i.pos = (myBomb[1].pos + myVector)
  76. )
  77. -- test -- print i.pos
  78. )
  79. )
  80. )
  81.  
  82.  
  83. -- Various
  84. button _Help "Help"
  85. on _Help pressed do
  86. (
  87. messagebox "Autor: Iliès Sarrab\nmarch 2010\nver 0.01"
  88. )
  89.  
  90. )
  91.  
  92. createdialog MyExploder width:200
AttachmentSize
explodedview.mcr 1.97 KB
heidy_james's picture

Through allotment of your

Through allotment of your opinions, you could dig up that awareness which you can’t catch from books. I like this way of sharing knowledge.

Comment viewing options

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