¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á UE4 ¹× ºí·çÇÁ¸°Æ® ÆíÁý±â¿Í Àß ÅëÇյǴ C++ Ŭ·¡½º ¹× ±¸Á¶Ã¼ »ý¼º
¡á ¾ð¸®¾ó ¿£Áø¿¡ Æ÷ÇÔµÈ ´Ù¾çÇÑ API·Î ÀÛ¾÷ÇÏ´Â ¹æ¹ý
¡á UE4 ÇÁ·ÎÁ§Æ®¿¡¼ À̺¥Æ®, µ¨¸®°ÔÀÌÆ®, ÀÎÅÍÆäÀ̽º¿Í °°Àº °í±Þ °³³ä Ȱ¿ë
¡á C++¸¦ ±â¹ÝÀ¸·Î ĵ¹ö½º(Canvas)¿Í UMG¸¦ »ç¿ëÇØ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º ±¸ÃàÇϱâ
¡á Ä¿½ºÅÒ À©µµ¿ì¿Í ÆíÁý±â¸¦ ¸¸µé¾î ¾ð¸®¾ó ÆíÁý±â ±â´É È®ÀåÇϱâ
¡á C++, ºí·¢º¸µå(Blackboard), Çൿ Æ®¸®(Behavior Tree)¸¦ »ç¿ëÇÑ AI ÀÛ¾÷ ¹× ¼ºñ½º ±¸Çö
¡á ³×Æ®...
´õº¸±â
¡Ú ÀÌ Ã¥¿¡¼ ´Ù·ç´Â ³»¿ë ¡Ú
¡á UE4 ¹× ºí·çÇÁ¸°Æ® ÆíÁý±â¿Í Àß ÅëÇյǴ C++ Ŭ·¡½º ¹× ±¸Á¶Ã¼ »ý¼º
¡á ¾ð¸®¾ó ¿£Áø¿¡ Æ÷ÇÔµÈ ´Ù¾çÇÑ API·Î ÀÛ¾÷ÇÏ´Â ¹æ¹ý
¡á UE4 ÇÁ·ÎÁ§Æ®¿¡¼ À̺¥Æ®, µ¨¸®°ÔÀÌÆ®, ÀÎÅÍÆäÀ̽º¿Í °°Àº °í±Þ °³³ä Ȱ¿ë
¡á C++¸¦ ±â¹ÝÀ¸·Î ĵ¹ö½º(Canvas)¿Í UMG¸¦ »ç¿ëÇØ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º ±¸ÃàÇϱâ
¡á Ä¿½ºÅÒ À©µµ¿ì¿Í ÆíÁý±â¸¦ ¸¸µé¾î ¾ð¸®¾ó ÆíÁý±â ±â´É È®ÀåÇϱâ
¡á C++, ºí·¢º¸µå(Blackboard), Çൿ Æ®¸®(Behavior Tree)¸¦ »ç¿ëÇÑ AI ÀÛ¾÷ ¹× ¼ºñ½º ±¸Çö
¡á ³×Æ®¿öÅ· Áö¿øÀ» À§ÇÑ C++ ÄÚµå ÀÛ¼º°ú ¼Ó¼º ¹× ÇÔ¼ö º¹Á¦
¡Ú ÀÌ Ã¥ÀÇ ´ë»ó µ¶ÀÚ ¡Ú
°ÔÀÓ µðÀÚÀΰú C++ÀÇ ±âº» »çÇ×À» ÀÌÇØÇϰí ÀÖÀ¸¸é¼ ¾ð¸®¾ó·Î ¸¸µå´Â °ÔÀÓ¿¡ ³×ÀÌÆ¼ºê Äڵ带 ÅëÇÕÇϰíÀÚ ÇÏ´Â °ÔÀÓ °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î ÇÑ´Ù. ƯÈ÷ ¿£ÁøÀ» È®ÀåÇϰųª, µðÀÚÀ̳ʸ¦ À§ÇÑ Á¦¾î°¡ ½±°í À¯¿¬ÇÑ ·¹º§ ±¸¼º ½Ã½ºÅÛÀ» Á¦°øÇÏ·Á´Â ÇÁ·Î±×·¡¸Ó¿¡°Ô ÀûÇÕÇÏ´Ù.
¡Ú ÀÌ Ã¥ÀÇ ±¸¼º ¡Ú
1Àå. ¡®UE4 °³¹ß µµ±¸¡¯¿¡¼´Â UE4 °ÔÀÓ °³¹ßÀ» ½ÃÀÛÇÏ´Â µ¥ ÇÊ¿äÇÑ ±âº» ·¹½ÃÇÇ¿Í °ÔÀÓ Äڵ带 ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëÇÏ´Â ±âº» µµ±¸¸¦ ¼³¸íÇÑ´Ù.
2Àå. ¡®Å¬·¡½º »ý¼º¡¯¿¡¼´Â UE4 ºí·çÇÁ¸°Æ® ÆíÁý±â¿Í Àß ÅëÇյǴ C++ Ŭ·¡½º ¹× ±¸Á¶Ã¼ »ý¼º ¹æ¹ýÀ» ´Ù·é´Ù. ÀÌ·¯ÇÑ Å¬·¡½º´Â UCLASS¶ó°í ÇÏ´Â ÀÏ¹Ý C++ Ŭ·¡½ºÀÇ ºí·çÇÁ¸°Æ®¿ë ¹öÀüÀÌ´Ù.
3Àå. ¡®¸Þ¸ð¸® °ü¸®, ½º¸¶Æ® Æ÷ÀÎÅÍ, µð¹ö±ë¡¯¿¡¼´Â ¼¼ °¡Áö À¯ÇüÀÇ Æ÷ÀÎÅ͸¦ ¸ðµÎ »ç¿ëÇÏ´Â µ¶ÀÚ¸¦ ´ë»óÀ¸·Î Çϸç, ÀÚµ¿ °¡Áöºñ Ä÷º¼Ç(automatic garbage collection)°ú °ü·ÃÇÑ ¸î °¡Áö ÀϹÝÀûÀÎ ÇÔÁ¤À» ´Ù·é´Ù. ¶ÇÇÑ Å©·¡½Ã(crash)¸¦ ºÐ¼®Çϰųª ±â´ÉÀÌ Á¦´ë·Î ±¸ÇöµÆ´ÂÁö È®ÀÎÇϰíÀÚ ºñÁÖ¾ó ½ºÆ©µð¿À ¶Ç´Â XCode¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº»´Ù.
4Àå. ¡®¾×ÅÍ¿Í ÄÄÆ÷³ÍÆ®¡¯¿¡¼´Â Ä¿½ºÅÒ ¾×ÅÍ¿Í ÄÄÆ÷³ÍÆ®°¡ ÇÏ´Â ¿ªÇÒ, »óÈ£ÀÛ¿ë ¹æ½Ä ¹× »ý¼º ¹æ¹ýÀ» ´Ù·é´Ù.
5Àå. ¡®À̺¥Æ®¿Í µ¨¸®°ÔÀÌÆ® 󸮡¯¿¡¼´Â µ¨¸®°ÔÀÌÆ®(delegate), À̺¥Æ®(event), À̺¥Æ® 󸮸¦ ´Ù·ç¸ç, ÀڽŸ¸ÀÇ ±¸ÇöÀ» »ý¼ºÇÏ´Â ¹æ¹ýµµ ¼³¸íÇÑ´Ù.
6Àå. ¡®ÀԷ°ú Ãæµ¹¡¯¿¡¼´Â UE4¿¡¼ »ç¿ëÀÚ ÀԷ°ú C++ ÇÔ¼ö¸¦ ¿¬°áÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇϸç C++·Î Ãæµ¹À» ó¸®ÇÏ´Â ¹æ¹ýµµ ´Ù·é´Ù. ¶ÇÇÑ »ç¿ëÀÚ ÀԷ°ú Ãæµ¹ °°Àº °ÔÀÓ À̺¥Æ®¸¦ ´Ù·ç´Â ±âº» 󸮵µ Á¦°øÇÔÀ¸·Î½á µðÀÚÀ̳ʰ¡ Çʿ信 µû¶ó ºí·çÇÁ¸°Æ®¸¦ »ç¿ëÇØ ÀçÁ¤ÀÇÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
7Àå. ¡®Å¬·¡½º¿Í ÀÎÅÍÆäÀ̽º °£ÀÇ Åë½Å: ÆÄÆ® 1¡¯¿¡¼´Â ÀڽŸ¸ÀÇ UInterface¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇϸç, C++¸¦ »ç¿ëÇØ Ä¿ÇøµÀ» ÃÖ¼ÒÈÇϰí Äڵ带 °£°áÇÏ°Ô À¯ÁöÇÏ´Â ¹æ¹ýµµ ¾Ë·ÁÁØ´Ù.
8Àå. ¡®Å¬·¡½º¿Í ÀÎÅÍÆäÀ̽º °£ÀÇ Åë½Å: ÆÄÆ® 2¡¯¿¡¼´Â 7Àå¿¡¼ ´Ù·é ³»¿ëÀÇ ¿¬Àå¼±À¸·Î, ºí·çÇÁ¸°Æ®¸¦ Ȱ¿ëÇØ UInterface°¡ ÀÛµ¿Çϵµ·Ï ¸¸µå´Â ¹æ¹ýÀ» ÀÚ¼¼È÷ ´Ù·é´Ù.
9Àå. ¡®C++¿Í ¾ð¸®¾ó ÆíÁý±â ¿¬µ¿: ÆÄÆ® 1¡¯¿¡¼´Â Ä¿½ºÅÒ ºí·çÇÁ¸°Æ®¿Í ¾Ö´Ï¸ÞÀÌ¼Ç ³ëµå¸¦ »ý¼ºÇØ ÆíÁý±â¸¦ Ä¿½ºÅ͸¶ÀÌÁîÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
10Àå. ¡®C++¿Í ¾ð¸®¾ó ÆíÁý±â ¿¬µ¿: ÆÄÆ® 2¡¯¿¡¼´Â »ç¿ëÀÚ°¡ »ý¼ºÇÑ Å¸ÀÔÀ» °Ë»çÇϱâ À§ÇØ Ä¿½ºÅÒ ÆíÁý±â â°ú Ä¿½ºÅÒ µðÅ×ÀÏ ÆÐ³ÎÀ» ±¸ÇöÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù.
11Àå. ¡®UE4 API »ç¿ëÇϱ⡯¿¡¼´Â ÇÁ·Î±×·¡¸Ó°¡ ¿£Áø¿¡°Ô ¹«¾ùÀ» ÇØ¾ß ÇÒÁö Áö½ÃÇÏ´Â ¹æ¹ýÀÎ API¸¦ ¼³¸íÇÑ´Ù. °¢ ¸ðµâÀº API¸¦ Á¦°øÇϸç, API¸¦ »ç¿ëÇÏ·Á¸é ºôµå¿¡¼ »ç¿ëÇÒ ¸ðµç API¸¦ ProjectName.Build.cs ÆÄÀÏ¿¡ ³ª¿ÇØ¾ß ÇÑ´Ù.
12Àå. ¡®UE4¿¡¼ÀÇ ¸ÖƼÇ÷¹ÀÌ¾î ³×Æ®¿öÅ·¡¯¿¡¼´Â ³×Æ®¿öÅ©¸¦ ÅëÇØ ¼Ó¼º°ú ±â´ÉÀ» º¹Á¦ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÑ´Ù. ¶ÇÇÑ ¼¹ö¿Í Ŭ¶óÀÌ¾ðÆ®¸¦ µ¿½Ã¿¡ Å×½ºÆ®ÇÏ´Â ¹æ¹ýµµ ´Ù·é´Ù.
13Àå. ¡®NPC Á¦¾î¸¦ À§ÇÑ AI¡¯¿¡¼´Â °£´ÜÇÑ ÀΰøÁö´É(AI)À» º¸À¯ÇÑ NPC ij¸¯Å͸¦ Á¦¾îÇÏ´Â ¹æ¹ýÀ» ´Ù·é´Ù.
14Àå. ¡®»ç¿ëÀÚ ÀÎÅÍÆäÀ̽º - UI¿Í UMG¡¯¿¡¼´Â Ç÷¹À̾°Ô Çǵå¹éÀ» Ç¥½ÃÇÏ´Â °ÍÀº °ÔÀÓ µðÀÚÀο¡¼ °¡Àå Áß¿äÇÑ ¿ä¼Ò Áß ÇϳªÀ̸ç, ÀϹÝÀûÀ¸·Î °ÔÀÓ ³»¿¡¼ ÀÏÁ¾ÀÇ HUD ¶Ç´Â ¸Þ´º¸¦ Á¦°øÇÑ´Ù.
´Ý±â