HyFrmn Posted March 16, 2008 Share Posted March 16, 2008 I've decided I would like to build a pirate ship, not the adobe one specifically. I have done a few tests with assembling the cards into various shapes, using CHOPs. If I have time I would also like to take a shot at building the textures procedurally in COPs. I hope the HIP files isn't too hard to follow, I will mark it up with some comments later today, I just wanted to post it before I took off. ~Marshall Scene File: pirate_ship_c.hipnc Quote Link to comment Share on other sites More sharing options...
LEO-oo- Posted March 17, 2008 Share Posted March 17, 2008 Good - start! More updates please! Quote Link to comment Share on other sites More sharing options...
HyFrmn Posted March 20, 2008 Author Share Posted March 20, 2008 So I have spent some more time modeling the pirate ship. I created the sides of aft section, and the hull from a set curves extracted from a NURBS surface. I also used the these surfaces to orient the normals for instancing. The decks were created from grids, and a Group Paint SOP. I created the mast from a group of cards bent to form a small cylinder, and then copied them vertically. I plan to animate these groups to build the masts. I still have a number of things to tackle, most notably cannons, sails, and trim. I think I'm going to have cannons on the deck, instead of outside the hull. I also plan the to extend the pairs of card on the front all the way along the bottom of the boat. Originally my plan was to add the ocean, but I'm worried I will run out of time so instead I'm going to add a rudder and some detail to the keel. pirate_ship_i.mov I started animating the cards assembling the hull. The bulk of the hull is animated using CHOPs. They are basically animated to go between a rest position and a final position, with a little secondary motion. I used some point attributes, along with a few expressions and channel numbers to offset when the animation started forming the wave effect. I animated the pairs of cards on the bow as a local group driven from a spare attribute. I stamped the spare channel with an expression, to create the animation. I want to rearrange the timing of the animation, so that the the hull starts at the front on both sides and the back starts to build after the sides. I hope to get some more work done tonight, and set up a render. pirate_ship_i.hipnc Quote Link to comment Share on other sites More sharing options...
stevenong Posted March 20, 2008 Share Posted March 20, 2008 Your pirate ship is looking good! Can't wait to see the render. Good luck in the challenge! Cheers! steven Quote Link to comment Share on other sites More sharing options...
HyFrmn Posted March 22, 2008 Author Share Posted March 22, 2008 pirate_ship_h.avi Here's an update with a render (I hope this works for everyone, first experience with mencoder in Ubunutu). I'm still having interpenetration problems. To animate the hull and the back deck I'm using CHOPs to blend between two positions on a per point basis. What I would like to do is blend between multiple shapes on a per point basis. I looked through the help and found an example using a Composite CHOP that claims to do what I want, but I can't get the Example File to load. Any ideas on how tackle any of these problem would be useful. I'm not dead set on using CHOPs, but the Blendshapes SOP would only blend the entire mesh at once. pirate_ship_k.hipnc I've attached my most recent HIP file. If it seems to freeze on load, it's because it takes a second to cook the expression CHOPs, but once cooked everything runs smoothly. I would also appreciate any help to get these networks to cooking faster. Thanks for the Help. ~Marshall Quote Link to comment Share on other sites More sharing options...
HyFrmn Posted March 23, 2008 Author Share Posted March 23, 2008 pirate_ship_l.mov After playing around with CHOPs some more I finally got a working solution. I have rearranged the animation, so that the boat builds from the bottom, I also reworked the animation of the cards on the bow so that each set of cards grow from the previous set. I changed the timing on the animation so there is more overlap. pirate_ship_m.mov I also took some time to rough in the animation of the deck. I think the movements of the deck are too linear. I will take some time to go back and add some easing to the card falling as well as the slide across the deck. I'm also going to add the sails, and cannons before I get too much further, Quote Link to comment Share on other sites More sharing options...
MENOZ Posted March 25, 2008 Share Posted March 25, 2008 pirate_ship_l.movAfter playing around with CHOPs some more I finally got a working solution. I have rearranged the animation, so that the boat builds from the bottom, I also reworked the animation of the cards on the bow so that each set of cards grow from the previous set. I changed the timing on the animation so there is more overlap. pirate_ship_m.mov I also took some time to rough in the animation of the deck. I think the movements of the deck are too linear. I will take some time to go back and add some easing to the card falling as well as the slide across the deck. I'm also going to add the sails, and cannons before I get too much further, hello! i'm learning from your hip file, thanks for sharing! but there is something i don't understand. can you explain the expressions you used inthe CHOP network? for example, i don't understand how you use the constant chop. thank you! Quote Link to comment Share on other sites More sharing options...
MENOZ Posted March 27, 2008 Share Posted March 27, 2008 in the constant chop, you put this string t[xyz][0-`chopn("../input_geo")-chopn("../tx_tz")-1`] how does it works? it's like fetching channles? i was thinking thet this filed was only to give the name to the new channel. Quote Link to comment Share on other sites More sharing options...
HyFrmn Posted March 27, 2008 Author Share Posted March 27, 2008 MENOZ- Sorry it's taken so long to reply, this week was the start of a new Term. The expression is actually creating channel names, with the same naming conventions as the Geometry CHOP. I got the technique from the CHOPs tutorials from the Old School Blog. The first part of the expression (t[xyz]) creates three channels: tx ty tz. The last portion in brackets [0-`chopn("../input_geo")-chopn("../tx_tz")-1`] is used to add the point number to the channel, and create the same number of channels as the input_geo CHOP. chopn("../input_geo"), returns the number of channels in the input geometry, this is 3 times the number of points in the actually geometry. chopn("../tx_tz") returns the number of channels when all of the ty channels are removed or 2/3rds of the input geometry. When put all together the expression would evaluate to something like [0-99] if the there were 100 points in the Input Geometry. So if the entire expression would then generate channels tx0 tx1 .. tx99 ty0 ty1 .. ty99 tz0 tz1 ... tz99. I hope this helps. ~Marshall Quote Link to comment Share on other sites More sharing options...
MENOZ Posted March 28, 2008 Share Posted March 28, 2008 (edited) there is something that i think i still don't understand. you say The last portion in brackets [0-`chopn("../input_geo")-chopn("../tx_tz")-1`] is used to add the point number to the channel, and create the same number of channels as the input_geo CHOP but if i see in the constant chop the numbers of channles are 3078. i think the second part of your expression chopn("../tx_tz") is incorrect because chopn() need a operator path. and tx_tz is not a name of an operator. can you explain me better this sintax please? if i use this expression t[xyz][0-341] it seems to works the same way, i have 1026 chennles in the constant node. NEXT.. in the expression CHOP. i see you created some channels, and use these as local variables to store level and inprm attributes. i'm wrong? you use this expression point("../../to_chops", $C%($NC/3), "level", 0) * 6 i'm not smart in math, but from what i've understand studying your expression i think it works so: $C is the current channel, $NC is total number of channels, so it's 1026. i'm confused bacause it seems that $C go from 0 to $NC/3, than repeat himself. for three times. so it seems to me that it repeat the "level" attribute for 3 times, overwriting the same channel index.... i mean, in the end you are putting the same level attribute 3 times over the same first $NC/3 attributes so i don't think you need 1026 channels, i think you need 1026/3=342 channels, so there is no need to use the $C%($NC/3). anyway it's useful to take the number of channels of another operator and divide it by three with an expression. i found this way t[y][0-`chopn("../input_geo")/3-1`] so can you please explain me better the chopn("../tx_tz") ? i attach a hip with my changes. now it's quicker to evaluate the expression, and it seems to work the same. i'm waiting for your answer! EDIT: ops, it dones't works the same, mmmmm ok, i changed again the expression to t[xyz][0-`chopn("../input_geo")/3-1`], now it works. but really i don't understand that $C%($NC/3) and why chopn("../tx_tz") should works sorry for the long post pirate_ship_Menoz.hipnc Edited March 28, 2008 by MENOZ Quote Link to comment Share on other sites More sharing options...
HyFrmn Posted March 29, 2008 Author Share Posted March 29, 2008 A little late but here is the final. I set it to render last night before I went to bed, but didn't have a chance to post until this afternoon. pirate_ship_o.mov pirate_ship_o.hipnc I didn't get as far as I would have liked. I built a cannon, but never animated it, so I didn't include them in the final animation. I would have liked to add details to the card texture, but I think the idea gets across. Let me know what you think. ~Marshalll 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.