Série de trick in and out of the software sur des tricks pratique que j’ai appris dans l’industrie
Format vidéo courtes, sur :
REEL INSTAGRAM
SHORT YOUTUBE
TWITTER
qui pointent vers mon site sur lequel seront stockés les petits bouts de code wrangle
In this video series, I’ll talk about things I learned on the job.
I’ll touch on tips in and out of the software, technical ways of doing specific things to solve problems or speed up your workflow but also some more general topics related to the studio environment . What software you might ask ? Houdini. Hi my name is Mael and welcome to Industricks.
It is heavily inspired by John Kunz’s Wiki VEX Snippets page : https://www.johnkunz.com/vex
I’ll be listing things as an available everywhere and at all time nodepad because some of the things are just too complex to recall on the top of my head.
Without further due let’s get into it.
1 : don’t neglect any canal to find work
i found my first gig by just looking for nearby studios and introducing myself, turns out they needed someone 6 month later
I found my first industry job through a community discord server dedicated to Houdini via a #job channel and being one of the firsts to respond
2 : work with associations
cons : ye not getting paid
pros : you meet new, dynamic people
you are involved in something bigger than you
somewhat similar than work conditions, you get some kind of a brief and you execute on it
it gets eyes on your work
3 : Go for an early version as soon as possible
Better have a running prototype 1 day in than a completely disfunctionnal but beautiful setup on day 3
4 : trail smoke to advect your smoke (or particles)
5 : Don’t hesitate to de-construct
If something does not work, and it’s not about this parameter being 0.8 instead of 1.2
Disable half of the stuff, it the problem is still there then you know for sure it’s in the remaining half
6 : Position de la seconde entrée
@opinput1_P
point(numEntree, ‘P’, numPoint); – point(1, ‘P’, 0);
7 : Unstep
if (rand(@id+6725)>0.5)
{@P = @P + @v*rand(@id)*ch(« scale »);}
else
{@P = @P – @v*rand(@id)*ch(« scale »);}
8 : Rotate and accelerate SOP
($F-ch(« ../CONTROL/startF »))*ch(« ../CONTROL/globalScale »)*ch(« ../CONTROL/rotSpeed ») + ($F-ch(« ../CONTROL/maxF »))*ch(« ../CONTROL/rotSpeed »)
StartF : start of the movement
MaxF : frame at maximum rotation
GlobalScale : fader 0 to 1 between startF and maxF
RotSpeed : multiplier of global speed rotation
9 : Check if there is NaN (primWrangle) :
string ats[] = detailintrinsic(0, »pointattributes »);
for(int i = 0; i < len(ats); i++){
string s = ats[i];
if(isnan(point(0,s,@ptnum))==1){
i@group_toClean = 1;
warning(« Detected nans on the geo ! »);
}
}
10 : Convert velocité en orient quaternion :
@orient = dihedral(set(0,1,0),@v);
11 : find camera position/normal
string camera = chs(« camera_path »);
@P = ptransform(camera, « space:current », {0,0,0});
@N = ntransform(camera, « space:current », {0,0,-1});
12 : faire des sim en 0
source anim > pack > cancel le mouvement sur un axe > unpackfaire la sim > ajouter le mvt de la source anim
13 : utiliser lerp via chramp sur curveu un noise pour faire un éclair
@P = noise(@P);
lerp(@P, @op_input1_P, chramp(« scale »,@curveu);
14 : control node
15 : voronoi fracture your collider
when you have a concave complex shape you need to use as a RBD collider, voronoi fracture it
16 : don’t have spaces in your windows session username
17 : noise flow along curve with uv
18 : slow motion shot ? build an internal clock
avec un solver qui fait + comme un dédé, pas oublier de le cache
19 : utiliser le nom de ta node comme id
i@id = atoi(re_replace(« curveu_is_u », » »,chs(« str »)));
20 : use a parameter from the parent node
ch(« ../ » +opinput(« . », 0)+ « /offset »)
to use parameter of previous node
(parameter, not vex)
21 : get rid of one sided geometry
ch(opcreator(« . »)+ »/startframe »)
22. Make a video about how to make a slow motion scene
23. Show custom camera pour vertigo effect travelling compensé