Jump to content
Sign in to follow this  
HyFrmn

Challenge 1 - House Of Cards (master): Hyfrmn - Pirates

Recommended Posts

post-1107-1205705581_thumb.jpg

post-1107-1205705608_thumb.jpg

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

Share this post


Link to post
Share on other sites

post-1107-1205982490_thumb.jpg

post-1107-1205982501_thumb.jpg

post-1107-1205982525_thumb.jpg

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

Share this post


Link to post
Share on other sites

Your pirate ship is looking good! Can't wait to see the render. :)

Good luck in the challenge!

Cheers!

steven

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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,

Share this post


Link to post
Share on other sites
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,

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. :blink:

thank you!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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! :D

EDIT:

ops, it dones't works the same, :P 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 :blush:

pirate_ship_Menoz.hipnc

Edited by MENOZ

Share this post


Link to post
Share on other sites

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.

post-1107-1206828562_thumb.jpg

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×