cglandlogo First Page
°í°´¼¾ÅÍ   
gallery media job community contentsmall  
  dbrush Blizzardfest 2014
 
[Æ©Å丮¾ó]±è±Ý¿µÀÇ ¸ÀÀÖ´Â ¿µÈ­CG - 3   2006-05-01
µ¿¸·°ñ ÀüÅõ¾À°ú Ã߶ô¾À¿¡ ¸¹ÀÌ »ç¿ëµÇ¾ú´ø ¿¬±â
¾¾Áö·£µå±âÀÚ cgland@cgland.com
¨Ï µðÁöÅк귯½Ã & cgland.com, ¹«´Ü ÀüÀç ¹× Àç¹èÆ÷ ±ÝÁö
°Ô½Ã±ÛÀ» twitter·Î º¸³»±â °Ô½Ã±ÛÀ» facebookÀ¸·Î º¸³»±â °Ô½Ã±ÛÀ» Me2Day·Î º¸³»±â

¸ÀÀÖ´Â ¿µÈ­ ±×·¡ÇÈ 3 - ¡° À£ÄÄ Åõ µ¿¸·°ñ,  ÀüÅõ¾À ¡±

±Û.±è±Ý¿µ

 

À̹øȸ´Â µ¿¸·°ñ ÀÛ¾÷ °úÁ¤À» ±×·Áº¸´Â ¸¶Áö¸·È¸·Î ÀüÅõ¾À°ú Ã߶ô¾À¿¡ ¸¹ÀÌ »ç¿ëµÇ¾ú´ø ¿¬±â¸¦ ¸¸µé¾îº¸°Ú½À´Ï´Ù.


±×¸²À» Ŭ¸¯ÇÏ½Ã¸é ´õ Å« È­¸éÀ¸·Î º¼ ¼ö ÀÖ½À´Ï´Ù.

½ÇÁ¦ µ¿¸·°ñ ÀÛ¾÷ ¿¹Á¦¸¦ ¼³¸íÇϱâ Àü, ÀüÅõ±â ÃѾ˿¡¼­ ³ª¿À´Â ¿¬±â¸¦ ¸¸µé±â À§ÇØ ÆÄƼŬ Sprite¸¦ °£´ÜÇÑ ¿¹Á¦·Î ¸ÕÀú µÑ·¯º¸°Ú½À´Ï´Ù.

Sprite´Â ÆÄƼŬÀÇ ÀÏÁ¾À¸·Î À̹ÌÁö¸¦ ¸ÅÇÎÇؼ­ ¹«°Å¿î ¾À µ¥ÀÌÅ͸¦ ÁÙ¿©ÁÖ°í ÆÄƼŬ·Î¸¸À¸·Ð Ç¥ÇöÀÌ ºÎÁ·ÇÑ ¿¬±â, ¸ÕÁö µî¿¡ ¸¹ÀÌ »ç¿ëµË´Ï´Ù.

 

1. Sprite Attribute

 

- ÀçÁúÀº ´Ù¸¥ ÆÄƼŬ°ú´Â ´Ù¸£°Ô ÀÏ¹Ý ¿ÀºêÁ§Æ®¿¡ Àû¿ëÇÏ´Â °Íó·³ ½¦ÀÌ´õ¸¦ sprite¿¡ Á÷Á¢ AssignÇÕ´Ï´Ù.

2. ÁøÂ¥ ½¬¿î ¿¬±â¸¦ ¸¸µéÀÚ!

°£´ÜÇÑ ¿¬±â¸¦ ¸¸µé¾î º¸¸ç ÀÛ¾÷ È帧À» ÆľÇÇÏ°í Sprite¿¡ ÇÙ½ÉÀÌ µÇ´Â PP¼Ó¼º¿¡ ´ëÇØ ¾Ë¾Æº¸°Ú½À´Ï´Ù.

2.1 ÆÄƼŬ »ý¼º

emitter¸¦ »ý¼ºÇؼ­ ¾Æ·¡¿Í °°ÀÌ ¿É¼ÇÀ» Á¶ÀýÇÕ´Ï´Ù.

ÆÄƼŬÀÇ ¿É¼ÇÀº ¾Æ·¡¿Í °°ÀÌ Á¶ÀýÇÕ´Ï´Ù.

 

Áö±Ý±îÁö ¹Ù·Î µû¶óÇÏ¼Ì´Ù¸é ¾Æ·¡¿Í °°Àº ¿¬±â¸¦ º¸½Ç °Ì´Ï´Ù.

 

2.2 ¿¬±â ÅؽºÃ³¸¦ AssignÇØ º¸°Ú½À´Ï´Ù.

Lambert¸¦ Çϳª »ý¼ºÇØ color¿Í transparent¿¡ ¿¬±âÀ̹ÌÁö ÆÄÀÏÀ» ¼±ÅÃ

ÅؽºÃ³¸¦ Àû¿ëÇÏ°Ô µÇ¸é ¿¬±â°¡ ¾Æ·¡Ã³·³ »ý¼ºµË´Ï´Ù.

 

2.3 Per Particle ¼Ó¼º

º¸´Ù ÀÚ¿¬½º·± ¿¬±â¸¦ Ç¥ÇöÇϱâ À§ÇØ Çʼö¿ä¼ÒÀÎ Å©±â¿Í ȸÀüÀ» Á¶ÀýÇÕ´Ï´Ù.

General ¹öÆ°À» ´­·¯ spriteÀÇ ¼Ó¼ºÀ» Ãß°¡ ÇÕ´Ï´Ù.

2.3.1 Sprite Å©±â Á¶Àý

 

spriteScale XPP/YPP ¼Ó¼ºÀ» Ãß°¡ÇØ Ãß°¡µÈ spriteScale ¼Ó¼º¿¡ ¿À¸¥ÂÊ ¸¶¿ì½º¸¦ Ŭ¸¯ÇØ Creation Express âÀ» ¿­¾î ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

particleShape1.spriteScaleXPP=rand(1,2);
particleShape1.spriteScaleYPP=rand(1,2);

ÀÌ·¸°Ô ÀÔ·ÂÇÏ¸é ¿¬±â°¡ »ý±æ ¶§ Å©±â°¡ 1~2 »çÀÌÀÇ °ªÀ¸·Î ·£´ýÇÏ°Ô ¹æÃâµË´Ï´Ù.

¿©±â¿¡ ´Ù½Ã ¿¬±â°¡ ½Ã°£ÀÌ Áö³¯¼ö·Ï Á¡Á¡ ´õ Ä¿Áöµµ·Ï ÇÏ·Á¸é Runtime Expression¿¡ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

particleShape1.spriteScaleXPP+=0.02;
particleShape1.spriteScaleYPP+=0.02;

ÀÌ ExpressionÀ» ÀÔ·ÂÇÔÀ¸·Î½á ¿¬±â´Â ¸Å ÇÁ·¹ÀÓ´ç 0.02¾¿ Å©±â°¡ Áõ°¡ÇÏ°Ô µË´Ï´Ù. ¿©±â¼­ Á» ´õ ³ª¾Æ°¡¼­ °¢ ÆÄƼŬ ÀÔÀÚµéÀÌ °¢°¢ ´Ù¸¥ Å©±â·Î Ä¿Áö°Ô ÇÏ·Á¸é ¶Ç ´Ù½Ã ¾Æ·¡¿Í °°Àº°úÁ¤À» °ÅÄ¡°Ô µÇ´Âµ¥¿ä, À§¿¡ Çß´ø °úÁ¤°ú °ÅÀÇ °°Àº ¹æ¹ýÀÌ´Ï ºÎ´ã¾øÀÌ ÈÈ¾î º¼±î¿ä??

custom_scale ¼Ó¼ºÀ» Ãß°¡ÇØ Ãß°¡µÈ ¼Ó¼º¶õÀÇ creation expression âÀ» ¿­¾î ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÏ°í EditÇÕ´Ï´Ù.

particleShape1.custom_scale=rand(0.01,0.03);

runtime expression¿¡´Â ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÏ°í EditÇÕ´Ï´Ù.

particleShape1.spriteScaleXPP+=particleShape1.custom_scale;
particleShape1.spriteScaleYPP+=particleShape1.custom_scale;

2.3.2  Rotation Á¶Àý

°¢°¢ÀÇ Sprite´Â °¢°¢ ´Ù¸¥ °¢µµ·Î ¹æÃâµÇ°í ½Ã°£ÀÌ Áö³ª¸é¼­ ´Ù¸¥ ȸÀü°ªÀ¸·Î Áõ°¡µÇ¾î¾ß ÇÕ´Ï´Ù. ¸ÕÀú Sprite°¡ ´Ù¸¥ °¢µµ·Î »ý±â´Â ÀÛ¾÷ºÎÅÍ ÇÏ°Ú½À´Ï´Ù

¿ª½Ã ¾Õ¼­ ¼³¸íÇÑ Å©±â¸¦ Á¶ÀýÇÏ´Â °úÁ¤°ú ºñ½ÁÇÕ´Ï´Ù.

 

¼Ó¼ºÃ¢ÀÇ spriteTwistPP¸¦ Ãß°¡ÇØ Creation Expression â¿¡ ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

 

particleShape1.spriteTwistPP=rand(0,360);

ÀÌ °ªÀº 0~360µµ »çÀÌ¿¡¼­ °¢°¢ÀÇ sprite°¡ ¹æÃâµÇµµ·Ï ÇÕ´Ï´Ù. ¿©±â¼­ ´Ù½Ã ¿¬±â°¡ »ý±â´Â µ¿¾È ½Ã°£ÀÌ Áö³²¿¡ µû¶ó °¢°¢ ´Ù¸¥ °ªÀ¸·Î ȸÀüÇϵµ·Ï ¸¸µé¾î º¾½Ã´Ù. ¿ª½Ã ¾Õ¼­ Å©±â Á¶Àý°úÁ¤°ú À¯»çÇÕ´Ï´Ù.

 

Ãß°¡µÈ ¼Ó¼ºÃ¢ÀÇ creation Expression â¿¡ ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

particleShape1.custom_rotate=rand(-0.3,0.3);

 

Ãß°¡µÈ ¼Ó¼ºÃ¢ÀÇ Runtime Expression â¿¡ ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

particleShape1.spriteTwistPP+=custom_rotate;

2.3.3 Åõ¸íµµ Á¶Àý

¿¬±â°¡ ¼­¼­È÷ ³ªÅ¸³ª°í ¼­¼­È÷ »ç¶óÁö´Â Ç¥ÇöÀº ¼Ó¼ºÃ¢ÀÇ Opacity ¸¦ Ãß°¡ÇØ ¸¸µì´Ï´Ù.

¿À¸¥ÂÊ ¸¶¿ì½º¸¦ Ŭ¸¯,Create Ramp¸¦ Ãß°¡ÇØ ¾Æ·¡¿Í °°ÀÌ Ramp¸¦ ¼öÁ¤ÇÕ´Ï´Ù.

 

¾îµÎ¿ï¼ö·Ï º¸ÀÌÁö ¾Ê´Â ºÎºÐÀÌ°í ¹àÀ»¼ö·Ï Åõ¸íµµ°¡ ³·Àº, Áï ¼±¸íÇÏ°Ô º¸ÀÌ´Â ¿¬±â¸¦ ¸¸µì´Ï´Ù. À§ÀÇ Rampó·³ ¸¸µé¸é ¼­¼­È÷ »ý°å´Ù ¼­¼­È÷ »ç¶óÁö´Â ¿¬±â¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

3. µ¿¸·°ñ ÀüÅõ±â ¿¬±â¸¦ ¸¸µéÀÚ!

 ÃѾËÀÌ ½Ç°¨³ª°Ô ¹ÚÈ÷´Â Àå¸é¿¡¼­ ¿¬±â´Â »ì¶³¸®´Â ¼Óµµ°¨À» ¸¸µå´Âµ¥ ¾ø¾î¼­´Â ¾ÈµÇ´Â ¿ä¼Ò ÀÔ´Ï´Ù. º¸´Ù »ç½ÇÀûÀÎ ¿¬±â Ç¥ÇöÀ» À§ÇØ ¾Õ¿¡¼­ ¼³¸íµå¸° ±âº» ±â´É À§¿¡ Á» ´õ ´Ù¾çÇÏ°í º¹Àâ ´Ù³­ÇÑ ExpressionÀÌ »ç¿ëµÇ¾ú½À´Ï´Ù. Çϳª¾¿ Â÷±ÙÂ÷±Ù º¸°Ú½À´Ï´Ù.

3.1 emitter¸¦ ¸¸µé¾î emitter¿Í particleÀÇ ¼Ó¼ºÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÕ´Ï´Ù.

3.2 ¿©±â¼­ºÎÅÍ ÀüÅõ±â Æ÷źÀÇ ¿¬±â¸¦ ¸¸µé±â À§ÇÑ ÇÙ½ÉÀÌ µÇ´Â spriteÀÇ ¼Ó¼º Ãß°¡ ÀÛ¾÷ÀÔ´Ï´Ù.

¾Õ¼­ º» °£´ÜÇÑ ¿¹Á¦¿Í °°Àº ÀÛ¾÷ °úÁ¤À̸ç, ¾à°£ ´õ º¹ÀâÇÑ expressionÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù.

-  color¹öÆ°À» ´­·¯ rgbPP¼Ó¼ºÀ» Ãß°¡ÇÕ´Ï´Ù.

-  opacity¹öÆ°À» ´­·¯ opacityPP¼Ó¼ºÀ» Ãß°¡ÇÕ´Ï´Ù.

-  general¹öÆ°À» ´­·¯ spriteScaleXPP/YPP, spriteTwistPP¼Ó¼ºÀ» Ãß°¡ÇÕ´Ï´Ù.

-»õ·Î »ý¼ºµÈ ¼Ó¼º¶õ¿¡ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ°À» Ŭ¸¯ÇØ creation expression¼±ÅÃÇÑ ÈÄ, ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

vector $vel = unit(smkBShape.velocity);
vector $lite = unit(<<1,1,0>>);

smkBShape.mass = rand(1,2);

float $color = dot($vel,$lite);
float $col2 = (($color + 1.5)/2);
float $clamp = clamp(0.52,1,$col2);

smkBShape.rgbPP = $clamp;
smkBShape.spriteTwistPP = rand(360);

¾Õ µÎÁÙ, vector ÀÖ´Â ºÎºÐÀº spriteÀÇ ¹æÇâ°ú Å©±â¸¦ Á¶Àý,

mass´Â ÆÄƼŬ °¢°¢ÀÇ ¹«°Ô°ªÀ¸·Î ÆÄƼŬÀº 1~2 »çÀÌÀÇ °ªÀ» ·£´ýÇÏ°Ô °®°Ô µÇ¾î ¹«°Å¿ï¼ö·Ï(2¿¡ °¡±î¿ï¼ö·Ï) fieldÀÇ ¿µÇâÀ» ´ú ¹Þ°í, °¡º­¿ï¼ö·Ï (1¿¡ °¡±î¿ï¼ö·Ï)  fieldÀÇ ¿µÇâÀ» ´õ ¹Þ°Ô µË´Ï´Ù.

´ÙÀ½ float°ú rgbºÎºÐÀº ¿¬±âÀÇ »ö±òÀ» °áÁ¤ÇÏ°í, spriteTwistPP´Â ¾Õ¼­¿¡¼­µµ ¼³¸íµå¸° °Í ó·³ 360µµ ȸÀü°¢µµ ³»¿¡¼­ °¢ spriteµéÀÌ ·£´ýÇÑ °¢µµ¸¦ °¡Áö°Ô ÇÕ´Ï´Ù.

-runtime expressionâ¿¡ ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇÕ´Ï´Ù.

vector $pos = smkBShape.position;
float $posY = $pos.y;

smkBShape.lifespanPP = $posY+3;

smkBShape.rgbPP += 0.003;

 

 lifespanPP¿¡ °üÇÑ expressionÀ¸·Î ÆÄƼŬÀÇ ¼ö¸íÀÌ position Y °ªÀÇ ¿µÇâÀ» ¹Þ¾Æ ÆÄƼŬÀÌ Áö¸é¿¡ ´ê±â Àü »ç¶óÁö°Ô ÇÕ´Ï´Ù.

±×¸®°í ¸¶Áö¸· ÇÑÁÙ, rgbPP +=0.003Àº ½Ã°£ÀÌ Áö³¯¼ö·Ï »öÀÌ Á¡Á¡ ¿¶¾îÁö°Ô Çϴµ¥,

rgb¸¦ ¼öÄ¡·Î º¸¸é

<<0,0,0>> : Red °ªÀÌ 0, Green°ªÀÌ 0, Blue°ªÀÌ 0À¸·Î ÇÕÇϸé Black

<<0.5,0.5,0.5>> :  Red °ªÀÌ 0.5, Green°ªÀÌ 0.5, Blue°ªÀÌ 0.5À¸·Î ÇÕÇϸé Gray

<<1,1,1>> :  Red °ªÀÌ 1, Green°ªÀÌ 1, Blue°ªÀÌ 1À¸·Î ÇÕÇϸé White

¸¦ ÀǹÌÇÕ´Ï´Ù.

-opacityPP ¼Ó¼ºÀº ramp¸¦ createÇؼ­ ¾Æ·¡¿Í °°ÀÌ ¹Ù²ß´Ï´Ù.

-spriteScaleXPP/YPP ¼Ó¼ºÀº ramp¸¦ createÇؼ­ ¾Æ·¡¿Í °°ÀÌ ¹Ù²ß´Ï´Ù.

3.3 ±¸¸§ À̹ÌÁö¸¦ ÀÔÈ÷ÀÚ!!

-Lambert¸¦ Çϳª ¸¸µé¾î ¾Æ·¡¿Í °°ÀÌ ¼Ó¼ºÀ» ¹Ù²Ù°í color¿Í transparent ¸Ê¿¡ ±¸¸§À̹ÌÁö¸¦ Àû¿ëÇÕ´Ï´Ù.

3.4 º¸´Ù ´õ ÀÚ¿¬½º·± ¿¬±âÀÇ ¿òÁ÷ÀÓÀ» À§ÇÑ Field Àû¿ë

sprite¸¦ ¼±ÅÃÇÑ ÈÄ fieldÀÇ turbulence, gravity, air¸¦ ¾Æ·¡¿Í °°Àº ¼Ó¼ºÀ¸·Î ¹Ù²ß´Ï´Ù.

3.4.1   turbulence

3.4.2   gravity

3.4.3   airField

3.5 emitter animation

emitter¸¦ ¿øÇÏ´Â ¹æÇâÀ¸·Î X,Y,Z °ªÀ» ¿òÁ÷¿© ¾Ö´Ï¸ÞÀÌ¼Ç ÇÑ ÈÄ PlayÇÏ¸é ¾Æ·¡¿Í °°Àº °á°ú°¡ ³ª¿É´Ï´Ù.

 

ÃÖÁ¾ÀûÀ¸·Î ÇÕ¼ºµÈ ÀüÅõ¾À


¿Ï¼º µ¿¿µ»ó ´Ù¿î¹Þ±â

¿©±â±îÁö³×¿ä.. ºÎÁ·ÇÏÁö¸¸ µ¿¸·°ñÀº À̹øȸ·Î ¸·À» ³»¸®°í ´ÙÀ½È¸ ºÎÅÍ´Â »õ·ÎÀÌ ½ÃÀ۵Ǵ ¿µÈ­¸¦ °¡Áö°í ã¾Æ ºË°Ú½À´Ï´Ù. ´Ê¾úÁö¸¸, »õÇØ º¹ ¸¹ÀÌ ¹ÞÀ¸¼¼¿ä~~

 

 ±è±Ý¿µ(3D¾ÆƼ½ºÆ®)

- SK Global ±×·¡ÇÈ µðÀÚÀ̳Ê

- Åä·ÐÅä ¾Ö´Ï¸ÞÀÌ¼Ç ½ºÆ©µð¿À ¡°¾ßÈÄÀÚ ¾Ö´Ï¸ÞÀ̼ǡ± Å×Å©´ÏÄà µð·ºÅÍ¡±

- ÀεðÆæ´ø½º ±Ù¹«, ¿µÈ­ ¡°À£ÄÄÅõ µ¿¸·°ñ¡± , ¡° °£Å«°¡Á·¡±

- À±µðÀÚÀÎ Á¤±Û »çÀÌÆ® ¾Ö´Ï¸ÞÀÌ¼Ç Ä÷³ ±âÀç

Âü°í ÀÚ·á :

http://mils.pe.kr/

¸¶¾ß ¹ÚÁø±â Àú

½¦¸®´Ü ÅؽºÆ®ºÏ

 
½ºÆ©µð¿À ¿¬°á²÷±â