asnowcappedromance Posted December 4, 2009 Share Posted December 4, 2009 hi guys! i am working on a nice simulation of many arrows flying through the sky and hitting the ground. Some arrows hit the ground and stick there (i already got that part) and some arrows shall collide with the ground instead of getting stuck. I copied my arrow with a copy SOP to particles which describe the flight path. Then i created a new group based on the rule: if($LIFE >.5 && $TY < 1, 1, 0) This is the group for the arrows that should be simulated by the DOP Network. After that, i isolated this group by deleting all other arrows that aren't meant for the DOP simulation and created a new group for each arrow by using the connectivity SOP and the partition SOP. Now the arrows are ready for the DOP simulation. Inside the DOP Network i put down a RBDfracturedobject and loaded my DOP_OUT geometry in. here the problems begin: As each group is created at a different time, how do i tell the RBDfracturedobject when to create each arrow? Would be nice to get some tips, i'm new to DOPs, so i'm sure this won't be my last question to this ) all the best, Manuel Quote Link to comment Share on other sites More sharing options...
Ratman Posted December 4, 2009 Share Posted December 4, 2009 Uh what are you trying to do exactly in DOPs with the arrows? Quote Link to comment Share on other sites More sharing options...
asnowcappedromance Posted December 4, 2009 Author Share Posted December 4, 2009 of course let them collide with the ground later on i want to add behaviours for different surfaces, say wood and stone, of course the arrows would not run through stone so they should bounce off. still got no idea how to feed groups into the RBDfracturedobject that are created at different times! Quote Link to comment Share on other sites More sharing options...
asnowcappedromance Posted December 5, 2009 Author Share Posted December 5, 2009 ok. Made some progress, but not with the RBDs unfortunately -.- I started working on a feature i want to implement into my arrow setup, which is the idea that some arrows snap off as they collide with the ground. I do the breaking with a foreach SOP and then calculate an attribute "lowest point" of each broken piece. My initial idea was to use this attribute later on as the constrained location of a RBD Pin Contraint, so as the arrows break off, the pieces swing off with the breakpoint as their new pivot. BUT again i have to solve the problem that the pieces have to enter the RBD simulation each at a different time. So i need an expression for the creation frame of the RBDFractured Object, right? It can't be that difficult, in the past i did a similar thing with 3ds Max' thinking particles where it was quite easy to activate dynamics for objects only when they enter a certain group. I attach a hip file, please have a look at it, it would be really great if somebody could give me a helping hand! (note the hipfile is not the whole arrow simulation, only the part that i'm currently trying to solve!) regards, Manu tubes_break_off.hipnc Quote Link to comment Share on other sites More sharing options...
Peter Quint Posted December 6, 2009 Share Posted December 6, 2009 I've not been able to look at your hip file in detail, so apologies if this isn't what you are aiming for. I'd approach this by doing your animation in dops, using e.g the point position node and a copydata solver to animate your arrows. You can then create a group in dops, using a dops expression to switch to an rbd solver for arrows that you want to crash into the ground. Fractured objects are a bit harder because I guess you are going to need to tie both bits of the fractured object to a single animated point. As it happens I'm working on a tutorial that's going to use that technique (for replicating a Cinema 4d mograph effect rather than for arrows hitting the ground) but I think the same technique might work here. Quote Link to comment Share on other sites More sharing options...
asnowcappedromance Posted December 6, 2009 Author Share Posted December 6, 2009 I've not been able to look at your hip file in detail, so apologies if this isn't what you are aiming for. I'd approach this by doing your animation in dops, using e.g the point position node and a copydata solver to animate your arrows. You can then create a group in dops, using a dops expression to switch to an rbd solver for arrows that you want to crash into the ground. Fractured objects are a bit harder because I guess you are going to need to tie both bits of the fractured object to a single animated point. As it happens I'm working on a tutorial that's going to use that technique (for replicating a Cinema 4d mograph effect rather than for arrows hitting the ground) but I think the same technique might work here. hi Peter, thank you so much for your effort to help me out, right now i'm a little short in time, but tonight i'm going to see if this is taking me any further, although i'm not sure about animating this whole thing only in DOPs because i worked out tons of expressions for the setup and was really happy that things are running so smooth until now regards, Manuel Quote Link to comment Share on other sites More sharing options...
asnowcappedromance Posted December 7, 2009 Author Share Posted December 7, 2009 hi everyone! I'm making some progress here so i don't want to withheld the scene from you, feel free to have a look at it. Still there are a lot of things i couldn't resolve yet In the meantime i could bring the arrows into my DOP simulation by following a tip that Graham gave me once: Setting the Creation Frame of the RBDFracturedObject to $F and deleting each object group the next frame once it entered the group that's fed into the DOP simulation. biggest question at the moment: How can i inherit the arrows motion once they got into DOP simulation??? Making "use deforming geometry" won't work this time because it can't fetch the SOP geometry's animation data which is deleted one frame after entering the group. It'd be really great if you could give me some hints and tips, of course i don't want you to do my work but i'd be glad if you could push me into the right direction!! If you got questions to the setup i will do my best to answer them guys! all the best, Manuel arrow_scene_edit_03.rar Quote Link to comment Share on other sites More sharing options...
graham Posted December 8, 2009 Share Posted December 8, 2009 If you want to inherit the velocity then you need to transfer the point velocity of your particles along the chain so that DOPs can read it in. I see you've got "Inherit Velocity from Point Velocity" turned on on the RBD object, but the velocity is getting removed when you do your cleanup after your popnet. If you add ^v and add v to the Point attributes copying on the copy_arrows sop you should be able to get the data in and your arrows will assume the arrow velocity. Quote Link to comment Share on other sites More sharing options...
asnowcappedromance Posted December 8, 2009 Author Share Posted December 8, 2009 hm i'm a little bit bummed out right now, working for hours on this thing and the progress is not overwhelming ^^ Yeah at least i got the velocity attribute now copied to the isolated "DOP arrows" and they inherit the motion now - But only for 3 frames, then the velocity stops and they simply drop straight to the ground as if flying against an invisible wall -.- Ok, it's gotten pretty late so i call it a day, latest hipfile is attached! gn8 everyone arrow_scene_edit_04.rar Quote Link to comment Share on other sites More sharing options...
asnowcappedromance Posted December 9, 2009 Author Share Posted December 9, 2009 (edited) Hi @all ! I'm really clueless right now and really could use some help, please please help me debugging my scene!!! There are 2 main things that don't work out. a) there is still this problem that the arrows in the DOP simulation only inherit the motion for 3 frames and then drop straight to the ground. the number of arrows is shortened by -1 when they get sent to the last foreach SOP (which kills the arrows one frame after they entered the DOP group, for the RBDfracturedobject's creation frame is set to $F). This isn't intended, what am i making wrong ????? The latest file is attached. Simultaniously i'm working on a solution to break some of the arrows as they hit the ground, inside of the DOP network there is a node called apply relationships which maybe will help me achieve my goal. I will update you on this one soon. Come on guys i bet for some of you this is really a breeze ) best wishes, Manuel Edit: I made sticky notes inside the SOP and DOP networks so you can easily locate my problems. arrow_scene_edit_05.hipnc Edited December 9, 2009 by asnowcappedromance Quote Link to comment Share on other sites More sharing options...
asnowcappedromance Posted December 12, 2009 Author Share Posted December 12, 2009 ok hey there, another post although it seems i keep writing to myself Didn't solve my problems yet, though I spent some time doing a few RBD dynamic tutorials! There are 3 things I found in my scene that are weird. a) `arg(primgrouplist("../../arrow_groups"), opdigits(stamp("../", "FORVALUE", 200)))` Inside the foreach SOP called "delete_after_onentergrp" there is one delete SOP. I used this expression in the delete SOP's group field. Like I said, the cooked outcome of the foreach SOP is reduced by 1 arrow, so something is wrong there, I don't know what. If I would use the same expression in for example a transform SOP's parameter, everything workes fine *confused* Anyway, the foreach node returns a correct outcome after removing the expression, because the filter expression if( $FF >= $ONENTERGRP + 1, 1, 0) does the job anyway. Now that the amount of arrows is correct, the group names assigned by the "arrow_groups" partition SOP gets mixed up. Instead of 6 primitive groups from arrow_0 to arrow_5 there are 6 primitive groups with the numeric suffixes 0,1,1,1,2,4. (look also at the attached jpg) How is it possible to output the correct groups after the foreach SOP ? c) one thing I noticed is that if I deactivate the gravity force, the arrows continue their trajectory for ever (of course). But it seems that the gravity completely bypasses the arrows velocity after 3 frames, when turned on. There has got to be a way to avoid this ?! still hoping to get some help of you guys, all the best, Manuel Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.