ãã®è¬çŸ©ã§ã¯ãSGEã³ã¢æè¡æ¬éšã®ã°ã©ãã£ãã¯ã¹ããŒã ãæ¥ã ã®éçºã§å®éã«åãå ¥ããŠãããAIé§åéçºããšããé²ãæ¹ããäŒãããŠãããŸãã
ã¯ãŒã¯ã·ã§ããæ¬ç·šïŒ4ç« ïŒãå§ããåã«ã以äžã®ã»ããã¢ãããæžãŸããŠãããŠãã ããã åãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããããã®ã³ãã³ãã¯ãWindowsã¯PowerShellãMacã¯Terminalãå©çšããŠãã ããã
Windows
Git for Windows ããã€ã³ã¹ããŒã©ãŒãããŠã³ããŒãããŠå®è¡ããŠãã ããã
Mac
ã¿ãŒããã«ã§ä»¥äžã®ãããããå®è¡ããŠãã ããã
xcode-select --install # Xcode Command Line Toolsã«å梱ã®Gitã䜿ãå Žå
# ãããã¯
brew install git # Homebrewã§ææ°çã䜿ãå ŽåãŸã GitHubã¢ã«ãŠã³ããæã£ãŠããªãå Žåã¯ãGitHub ã«ã¢ã¯ã»ã¹ããŠã¢ã«ãŠã³ããäœæããŠãã ããã
Claude Codeã»uloop CLI ã®ã€ã³ã¹ããŒã«ã«å¿ èŠã§ããLTSçã䜿çšããŠãã ããã
Windows
PowerShellã管çè ãšããŠå®è¡ããŠæ¬¡ã®ã³ãã³ããå®è¡ããŠãã ããã
winget install OpenJS.NodeJS.LTSã€ã³ã¹ããŒã«å®äºåŸã«PCãåèµ·åããŠãã ããã
Mac
brew install nodeWindows/Macå ±éã®æé ã§ãïŒ3.ã®Build Supportã¢ãžã¥ãŒã«ã®éžæã®ã¿ç°ãªããŸãïŒã
- Unity Hub ãã€ã³ã¹ããŒã«ããŸãã
- Unity Hub ãã Unity 6000.3.19f1 ãã€ã³ã¹ããŒã«ããŸãïŒäžèЧã«ç¡ãå Žåã¯ãUnityå ¬åŒã®ã¢ãŒã«ã€ãããåããŒãžã§ã³ãæ€çŽ¢ããŠãã ããïŒã
- ã€ã³ã¹ããŒã«æã®ã¢ãžã¥ãŒã«éžæã§ã以äžã远å ã§ãã§ãã¯ããŠãã ããã
- Windows: Android Build Support
- Mac: iOS Build Support
ãã®ãããžã§ã¯ãã®ããžã¥ã¢ã«ãªã°ã¬ãã·ã§ã³ãã¹ãã¯ã
Tools > Sirius > Dev Support > Validate Mobile Targetã«ãã£ãŠãWindowsç°å¢ã§ã¯ãã«ãã¿ãŒã²ããã匷å¶çã« Android ã«ãmacOSç°å¢ã§ã¯ iOS ã«åãæ¿ããããŸãã察å¿ãã Build Support ãç¡ããšã¯ãŒã¯â¡ã»â¢ã®ãã¹ããå®è¡ã§ããŸããã
ã¯ãŒã¯ã·ã§ããçšã®ãªããžããªãCloneããŠãã ããã
git clone https://github.com/CyberAgentGameEntertainment/GraphicsAcademyLight.git
cd GraphicsAcademyLightArm Developer ãããMali Offline Compilerãå«ã Arm Performance Studio ãããŠã³ããŒãã»ã€ã³ã¹ããŒã«ããŸãã
Claude Code ãã Unity Editor ãçŽæ¥æäœã§ããããã«ããããã®ã»ããã¢ããã§ããWindows/Macå ±éã®æé ã§ãã
以äžã®1ã2ã¯äºåæºåãšããŠé²ããŠãããŠãã ããã3ã4ã¯0.5ã§ãªããžããªãã¯ããŒã³ããåŸïŒè¬çŸ©åœæ¥ïŒã«è¡ããŸãã
- ã¿ãŒããã« or PowerShellã§
npm install -g uloop-cli@2.1.10ãå®è¡ ~/.claude/settings.jsonïŒWindowsã§ã¯C:\Users\<ãŠãŒã¶ãŒå>\.claude\settings.jsonïŒã®permissions.allowã«"Bash(uloop *)"ã远å- 0.5ã§ã¯ããŒã³ãããããžã§ã¯ããUnity Editorã§éããŸããã¡ãã¥ãŒã« Window > Unity CLI Loop ã衚瀺ãããŠããã°å°å ¥ã¯å®äºã§ãã
- Unity Editor ã§ Window > Unity CLI Loop > Settings ãéãã以äžãæå¹åããŸãã
- Allow Tests Execution
- execute-dynamic-code ã® Security Level ã Level 2 (FullAccess) ã«èšå®
ãµã€ããŒãšãŒãžã§ã³ãã§ã¯ã2028幎ãŸã§ã«ããã¹ãŠã®ãããã¯ãéçºããŒã ããèŠä»¶ã決ãããšããããæ¬çªãªãªãŒã¹ãŸã§ãAIãšäžç·ã«èªåã§é²ããããç¶æ ãã«ãªãããšãç®æããŠããŸããããã§ãšã³ãžãã¢ã«æ±ããããŠããã®ã¯ãAIããã ã®äŸ¿å©ãªéå ·ãšããŠäœ¿ãããšã§ã¯ãããŸããããAIãšãŒãžã§ã³ããšäžç·ã«æãåãããŠãäºæ¥ã®ææãçã¿åºãããšãã§ããå®éã«ãä»ãŸã§æ°æ¥ããã£ãŠããäœæ¥ãçæéã§çµãã£ãããAIã§æžãããåã®æéãã»ãã®ä»äºã«åããããšãææãå°ããã€åºã¯ãããŠããŸãã
- æ°æ¥ããã£ãŠããäœæ¥ããæ°åã§çµããããŒã ããããŸãã
- ãã³ãã¬ãŒããæŽããã ãã§ãAIã®åºãçãã®å質ããã£ãšå®å®ããããŒã ããããŸãã
- ä»ãŸã§ã®ã¹ã¯ã©ã ïŒéçºã®é²ãæ¹ïŒãå£ããã«ãAIãšã®ååãããŸãçµã¿èŸŒãã ããŒã ããããŸãã
çŽè¿ã®ç§ã®äœæ¥ã§ããšãã¡ãã·ã¥ãã«ãŒã«ãå®çŸããAir StickerãšããOSSã®Job System + Burståãè¡ã£ãããŒãžã§ã³2.0.0ããªãªãŒã¹ããŸããã
https://blog.sge-coretech.com/entry/2026/08/06/144416

ãã®å¯Ÿå¿ã«ãããŠãç§ã¯äžåã³ãŒããæžããŠããŸããã
JobSystem + Burståãè¡ãããã«ã¯ãããŒã¿æ§é ã倧ãã倿Žããå¿ èŠãããããã以åãŸã§ã§ããã°ã10æ¥ä»¥äžã®å·¥æ°ããããèŠèŸŒã¿ã§ãããããããAIãšãŒãžã§ã³ããå©çšããããšã§ããã¹ããŸã§å«ããŠæ°æéçšåºŠã§å®äºããŠããŸãã
ãã¡ããå®è£ ã ãã§ã¯ãªãããã¹ãã³ãŒãäœæããã¹ãã«ãã¬ããžã®è©äŸ¡ãããããAIãäœæ/è©äŸ¡ããŠããŸãã
Cursor ã Claude Code ãšãã£ãAIã³ãŒãã£ã³ã°ããŒã«ããã¿ãªãããæ®æ®µãã䜿ã£ãŠããã®ã§ã¯ãªãã§ãããããå人ã®çç£æ§ã¯ã確ãã«äžãã£ãŠããŸããã§ãããããªå Žé¢ã«å¿åœããã¯ãããŸãããïŒ
- èªåãèŠã€ããAIã®äœ¿ãæ¹ãããã³ããã®ã³ãããããŒã ã®ã¿ããªã«åºãã£ãŠããªã
- åãããŒã ãªã®ã«ã人ã«ãã£ãŠAIã®äœ¿ãããªãå ·åããã©ãã©
- AIãæžããã³ãŒãã®ãè¯ãã»æªãã®åºæºãã人ã«ãã£ãŠéããã誰ãã¬ãã¥ãŒããããã§å質ãå€ãã£ãŠããŸã
- AIã®ãããã§éãäœããããã«ãªã£ãã®ã«ãã¬ãã¥ãŒãæ¿èªã远ãã€ããªã
ããã¯ãå人ã§AIã䜿ãããšããšãããŒã ã»çµç¹ã§AIã䜿ãããšãã®éã«ãããããéïŒã®ã£ããïŒã§ããAIããŒã«ã®äœ¿ãæ¹ã¯ãäžäººã§ãåŠã¹ãŸããã§ããããŒã ãšããŠãã©ãAIãšååãããããšããããæ¹ã¯ããŸã ã»ãšãã©ã®ããŒã ãæã£ãŠããŸããã
æãç§ãã¡ãã¢ãžã£ã€ã«ãã¹ã¯ã©ã ãåŠãã ãšãããã¹ããªã³ãããããã¯ãã°ããã¬ããã¹ãã¯ãã£ãããšãã£ãå ±éã®èšèãæã«å ¥ããŸãããå ±éã®èšèããããšãããŒã éã§ããŠããŠãå ±æããããæ°ããå ¥ã£ã人ãããã«æŠåã«ããããçµç¹å šäœã®éçºã®ããæ¹ãåºäžããããã§ããŸãã
AIé§åéçºã¯ãããã°ãAIæä»£ã®éçºã®å ±éèšèªãã§ãã 仿¥ã話ãããã®ã¯ãææ¥ãããã¹ãŠãå€ããã«ãŒã«ã§ã¯ãããŸããããAIãšã©ãååããŠé²ãããããèããããã®ããã®ã®èŠæ¹ã§ãããããç¥ã£ãŠããã ãã§ãããŒã ã§AIã䜿ããšãã®è©±ãåããã¹ã ãŒãºã«ãªããã»ãã®ããŒã ã®è¯ãäºäŸãèªåã®ãããžã§ã¯ãã«åãå ¥ãããããªããŸãã
ãã®ããã«ããµã€ããŒãšãŒãžã§ã³ãã§ã¯ãå人ã§AIã䜿ããã®ã¯ããåœããåã«ãªããããŸã¯ãããŒã ã§AIã䜿ãããæ¹ããåºããŠããæ®µéã«é²ãã§ããŸããæ¡çšã§æ±ããããã¹ãã«ããåäººã®æŽ»çšããäžæ©é²ãã§ããããŒã ã§å質ãå®ãããã®ä»çµã¿ã¥ããããè©äŸ¡ãããããã«ãªã£ãŠããŸããã
äžæ¹ã§ãåŠæ ¡ãªã©æè²ã®å Žã§ã®AI掻çšã«ã¯ãããéããšãã倧ããªå£ããããŸãã äžäººã§ãéãæã£ãŠAIã䜿ãã®ã¯ããŸã ããŒãã«ã¯äœãã§ãããããããããããŒã å šäœã§AIã䜿ããšãªããšã話ã¯å€ãã£ãŠããŸãã ããã©ãã仿¥ã話ãããAIé§åéçºã¯ãäžäººããã§ãå§ããããŸãããããŠãããšãããŒã å šäœã§AIã䜿ãã®ãããããããŠããAIã³ãŒãã£ã³ã°ã®ããã«æŽããä»çµã¿ã¯ãAIã䜿ã£ãŠããªãã¡ã³ããŒã«ãã¡ãããšåœ¹ã«ç«ã¡ãŸãã
ãã®ã¯ãŒã¯ã·ã§ããã§ã¯ãã³ã¢ãã¯ã°ã©ãã£ãã¯ã¹ããŒã ãéçºããŠããã¬ã³ããªã³ã°åºç€ãSIRIUSããå©çšããŠè¡ããŸãã
SIRIUSã¯ã²ãŒã ãšã³ãžã³ã§ã¯UnityãããŒã¹ãšããªãããååäŒç€Ÿã«åæ£ããŠããã·ã§ãŒããŒãã¬ã³ããªã³ã°ãã€ãã©ã€ã³ãçµ±åããããã®æç»åºç€ãšããŠéçºãé²ããããŠãããçŸåšã¯ãåãªãéçºå¹çåã«çãŸãããæ°å¹Žå ã«æ±ããããã°ã©ãã£ãã¯å質ãèŠæ®ããR&Dã®åœ¹å²ã匷ããŠããŸãã
ä»åã®ã¯ãŒã¯ã§ã¯SIRIUSã§å®è·µãããŠããAIå©çšãç䌌çã«äœéšããŠããã ããŸãã
AIé§åéçºãšã¯ãAIãéçºã®äžå¿ã«çœ®ããæ°ãããœãããŠã§ã¢éçºã®é²ãæ¹ã§ãïŒAWSããAI-Driven Development Life CycleïŒAI-DLCïŒããšããŠæå±ããŠãããã®ã§ãïŒããã®ç« ã§ã¯ãAIé§åéçºã®å šäœåãã話ãããŠãããŸãã
2025幎ãAIã³ãŒãã£ã³ã°ããŒã«ã¯äžæ°ã«åºãŸããŸãããCursorãClaude CodeãGitHub Copilot ãªã©ãå€ãã®ãšã³ãžãã¢ãæ¯æ¥ã®ããã«AIã䜿ã£ãŠããŸãããããããå人ã§AIã䜿ãããšããšãããŒã ã»çµç¹ã§AIã䜿ãããšãã®éã«ã¯ã倧ããªéãããããŸãã
| 段é | ã©ããªç¶æ ã | èª²é¡ |
|---|---|---|
| å人ã§ã®AIæŽ»çš | åèªãCodexãClaude Codeã䜿ã | ç¥èãå人ã«éããŠããŸããå質ããã©ã€ã |
| ããŒã ã§ã®AIæŽ»çš | ããŒã ã§ããã³ãããèšå®ãå ±æãã | é²ãæ¹ãã®ãã®ã¯æã®ãŸãŸãäžéšã ãã®æ¹åã«ãšã©ãŸã |
| AIé§åéçº | AIãéçºã®äžå¿çãªããŒãããŒã«ãªã | â ãããç®æããŸã |
AIé§åéçºã¯ããAIã«ã³ãŒããæžããŠãããããšãã§ã¯ãããŸãããAIãéçºå šäœã®é²è¡åœ¹ã«ãªããèªåããåæããŠææ¡ããããããŠäººéãããã倿ããããã®é¢ä¿ããäžã€ã®ããæ¹ãšããŠãŸãšãããã®ã§ãã
ãAIã«ã³ãŒããæžããŠããããã®ãšãAIãšäžç·ã«éçºãããã®ã¯ããã£ãŠããããšãããªãéããŸããAIé§åéçºã¯åŸè ã®èãæ¹ã§ãAIãè£å©ããŒã«ã§ã¯ãªããéçºã®äžå¿ã«ããååè ãšããŠæ±ããŸãã
äžã®å³ã¯ãAIã䜿ã£ãéçºã®3ã€ã®ããæ¹ãããAIã«ã©ãã ãä»»ãããïŒèªåŸåºŠïŒããšãå質ã»ã¬ããã³ã¹ïŒå®å šã«ç®¡çã§ããŠãããïŒããšãã2ã€ã®è»žã§äžŠã¹ããã®ã§ããAIé§åéçºã¯ãAIæ¯æŽåã®å®å šããšãAIèªåŸåã®éãããé«ãã¬ãã«ã§äž¡ç«ãããããšãç®æãããæ¹ã§ãã
| ããæ¹ | 説æ | ç¹åŸŽ |
|---|---|---|
| AIæ¯æŽåéçº | 人éãäžå¿ã§éçºãé²ããAIã¯ã³ãŒãè£å®ãã¬ãã¥ãŒã®æäŒããšããŠäœ¿ã | å®å šãéèŠãAIã«ä»»ãã床åãã¯äœã |
| AIèªåŸåéçº | AIã«ã»ãšãã©ä»»ããŠã人ã®é¢ãããæå°éã«ããïŒVibe Codingãªã©ïŒ | éãããã©ãå質ã»å®å šããäžãããªã¹ã¯ããã |
| AIé§åéçº | AIãèšç»ã»å®è£ ãææ¡ãã人éãæ¿èªã»ãã§ãã¯ããååã¹ã¿ã€ã« | éããšå®å šãã®äž¡æ¹ãå®çŸãããçæ³ã®äœçœ®ãç®æã |
AIé§åéçºãçè§£ããããã§ããã¡ã°ã倧äºãªã®ããã®ãã³ã¢ã¡ã³ã¿ã«ã¢ãã«ãã§ããèŠä»¶å®çŸ©ã»èšèšã»ã³ãŒãã£ã³ã°ã»ãã¹ãã»éçšãšãã£ãéçºã®ãããããªäœæ¥ãããã®4ã¹ãããã®é«éãµã€ã¯ã«ã«ãŸãšãŸããŸãã
人éãããããšã¯ãæåã®ãããããããšããAIã«æž¡ãããšã ãã§ãïŒãã®ãããããããšãã Intent ãšåŒã³ãŸããIntent ã¯ãDescriptionïŒäœãããContextïŒãªãã»ã©ããªå¶çŽãããCompletion CriteriaïŒã©ããªã£ãã宿ããã®3ã€ã§ã§ããŠããŸãïŒãããããå ã¯ãAIãé²è¡åœ¹ã«ãªããŸããAIãèšç»ãç«ãŠãåãããªãç¹ãæŽçããŠè³ªåããããã€ãã®éžæè¢ãåºãã人éã®æ¿èªãããã£ãŠããå®è£ ããããã®æµãããAIèªèº«ãåããŠãããŸãã
AIé§åéçºã§ã¯ããAIãèªåããææ¡ãã人éã倿ããããšãã圢ã倧åã«ãªããŸãã
- AIã¯åã身ã§åŸ
ã€ã®ã§ã¯ãªããèªåããææ¡ãã
- 人éã¯ãã¹ãŠãæç€ºããã®ã§ã¯ãªããAIã®ææ¡ã«å¯ŸããŠãããã§ããïŒããã¯éãããšå€æãã
- ãã®ããåãããèŠä»¶ã§ãèšèšã§ãå®è£ ã§ããåãããã«ç¹°ãè¿ã
- 人éã¯ãã¹ãŠãæç€ºããã®ã§ã¯ãªããAIã®ææ¡ã«å¯ŸããŠãããã§ããïŒããã¯éãããšå€æãã
æãªããã®éçºã§ã¯ãèŠä»¶âèšèšâå®è£ âã¬ãã¥ãŒãšé²ããã³ã«ãããªãããæ±ºããã®ãããšããèæ¯ïŒã³ã³ããã¹ãïŒããã ãã ã倱ãããã¡ã§ããã
è€éãªæ©èœãäœããšããäžã€ã®äŒè©±ïŒã»ãã·ã§ã³ïŒãé·ãç¶ãããããšãAIãèŠããŠããæ å ±ã§ãã£ã±ãã«ãªããã ãã ãæ§èœãèœã¡ãŠããããšãç¥ãããŠããŸãããããããšãã¯ãäŒè©±ã®èšæ¶ãæŽçããïŒClear ã Compaction ãããïŒã®ãè¯ããšãããŠããŸãããã ãäœãèããã«èšæ¶ãæ¶ããŠããŸããšããããŸã§ã®å€§äºãªããåããŸã§äžç·ã«æ¶ããŠããŸããŸãããããšãAIã¯ãŸãã³ãŒããã€ããã調ã¹çŽããŠãèæ¯ãçµã¿ç«ãŠçŽãããšã«ãªããŸãããã®èª¿ã¹çŽãã®ããã«ããŒã¯ã³ïŒAIã®åŠçéã®åäœïŒãç¡é§ã«äœ¿ããããã®åã ãAIå©çšã®ã³ã¹ãããµãããã§ãããŸãã
ããã§ãèšæ¶ãæ¶ãããæŽçãããããåã«ããããŸã§ã®æ å ±ãããŒã¯ããŠã³ã®ææžã«ãŸãšããŠããæ¬¡ã®äŒè©±ãžåŒãç¶ãããããå®çªã®ããæ¹ïŒãã¹ããã©ã¯ãã£ã¹ïŒã®äžã€ã§ãã
ã³ã¢ãã¯ã®ã°ã©ãã£ãã¯ã¹ããŒã ã§å®è·µããŠããAIé§åéçºã§ã¯ã4ã€ã®ãã§ãŒãºã®éã§ããã®èæ¯æ å ±ããã¡ããšåœ¢ã«ããŠæ¬¡ãžæž¡ãããã«ããŠããŸããããããããšã§ãããã»ã©ã®ãèšæ¶ãæ¶ããŠããŸã調ã¹çŽãããšããåé¡ã軜ãã§ããŸãã
| ãã§ãŒãº | äž»ã«ããããš |
|---|---|
| Phase 1 Intent 起祚ïŒäœãïŒãªãïŒ | intent.md ãäœã |
| Phase 2 InceptionïŒã©ãäœãïŒ | plan.md ãäœã |
| Phase 3 ConstructionïŒå®è£ ïŒ | ã³ãŒãã£ã³ã°ïŒPR |
| Phase 4 Review | ãã£ããã§ã®ã¬ãã¥ãŒäŸé ŒïŒGitHubäžã§ã®AIã©ããã®ã¯ãã¹ã¬ãã¥ãŒ |
AIé§åéçºã§ã¯ãããããã®ãã§ãŒãºã®äžã«ãããã«çްããã¹ããŒãžããããŸãããã ãããã¹ãŠã®ãã§ãŒãºã»ã¹ããŒãžãå¿ ãéãããã§ã¯ãããŸããããããžã§ã¯ããããããããšã«åãããŠãAIããä»åã¯ãã®çµã¿åããã§ãããŸãããããšææ¡ããŠãããŸãã
ãã§ãŒãºãããã§ãŒãºãžã®åŒãç¶ãã¯ããã¹ãŠããŒã¯ããŠã³ã®ææžã§è¡ããŸãïŒãã®ææžã ããèªãã°åãããèªå·±å®çµãã圢ã«ããŸãïŒãã ããããã§ãŒãºãäžã€çµããããšã« /clearïŒäŒè©±ã®èšæ¶ããªã»ããïŒããŠã倧äžå€«ã§ãã
ãŸãããã®ããŒã¯ããŠã³ãã¡ã€ã«ã¯ãã®ãŸãŸããã¥ã¡ã³ããšããŠæ®ããããå°æ¥ã®ä»æ§å€æŽãªã©ãèµ·ããéã«ããAIã¯0ããèšå€§ãªãããžã§ã¯ãã調æ»ããå¿ èŠããªããªãã倱ãããŠããå®è£ ãããçç±/èæ¯ãªã©ãåŒãç¶ãã§äœæ¥ãéå§ããããšãã§ããŸãã
ããŒãã¹ïŒharnessïŒ ãšã¯ãAIãšãŒãžã§ã³ãã®ãŸããã«çµããè¶³å Žãã®ããšã§ããããšããšã¯éŠ¬å ·ããå®å šåž¯ïŒç»å±±ãé«ãæã§ã®äœæ¥ã§ãèœã¡ãªãããã«äœãæ¯ãããã«ãïŒãæãèšèã§ããœãããŠã§ã¢ã®äžçã§ã¯ããã¹ããèªåã§åããä»çµã¿ïŒãã¹ãããŒãã¹ïŒãšããŠäœ¿ãããŠããŸãããAIé§åéçºã§ã¯ãããã ãAIã«èªåã§èµ°ã£ãŠããããªãããèœã¡ãªãããã«æ¯ããè¶³å Žã ãšããæå³ã«åºããŠäœ¿ããŸãã
ãªãè¶³å ŽãèŠãã®ã§ãããããããšã® 1-2 / 1-3 ç¯ã§ãèŠãããã«ãAIã¯ããªããšãªãããã£ãœããã³ãŒãã確ççã«æžãã®ã§ãã³ã³ãã€ã«ã¯éãããåããŠãããã®ã«ããã£ããééã£ãŠããã³ãŒããäœã£ãŠããŸãããšããããŸããããã§è¶³å ŽãçµãŸãã«ãAIã«ã©ãã©ãä»»ãããã ãã«ãããšãéãããã©å質ãä¿èšŒãããªãéçºïŒVibe CodingïŒã«åŸããŠããŸããŸãïŒâ 2.2 ç¯ïŒãããŒãã¹ã¯ããã®ãä»»ãã床åããã ãå®å šã«ä»»ãããã床åãããžå€ããããã®ä»çµã¿ã§ãã
è¯ãããŒãã¹ã¯ãAIã«æ¬¡ã®3ã€ãäžããŸãã
| åœ¹å² | äžãããã® | å ·äœäŸ |
|---|---|---|
| æ | ç°å¢ã«åããããææ®µ | ãã«ãã»ãã¹ãå®è¡ã»ãšãã£ã¿æäœããAIããå©ããCLIïŒã¹ãã« |
| ç® | çµæã確ããããã£ãŒããã㯠| ãã¹ãçµæã»ã¹ã¯ãªãŒã³ã·ã§ããã»éçè§£æã»ã¬ãã¥ãŒ |
| æµ | è¶ããŠã¯ãããªãå¢ç | è§Šã£ãŠã¯ãããªããã¡ã€ã«ãæ¿èªãèŠãæäœãã³ãŒãã£ã³ã°ã®ã«ãŒã« |
ããã«ããã§ãŒãºããŸããã§ãèæ¯ã倱ãããªãããã« èæ¯ã圢ã«ããŠæ¬¡ãžæž¡ãä»çµã¿ïŒâ 2.4 ç¯ïŒããåºãæå³ã§ã®ããŒãã¹ã«å«ãŸããŸãã
倧äºãªã®ã¯ãããŒãã¹ã¯äžåºŠäœã£ãŠçµããã§ã¯ãªããå°ããã€è²ãŠãŠããããšã³ãžãã¢ãªã³ã°ã®å¯Ÿè±¡ãã ãšããããšã§ããããã³ããã®ã³ããå人ã§ãããããã®ã§ã¯ãªããè¶³å ŽãšããŠãªããžããªã«çµã¿èŸŒããããããããšã§ãAIã®åºåå質ãããŒã ã§ããè¿ãåçŸã§ããããã«ãªããã誰ãã¬ãã¥ãŒããããã«å·Šå³ãããªãåè³ªåºæºãã§ãããããŸãïŒâ 1.2 ç¯ïŒããã®è¶³å Žãäœã£ãŠè²ãŠãŠããæŽ»åããããŒãã¹ãšã³ãžãã¢ãªã³ã° ãšåŒã³ãŸããæ¬¡ã®ç¯ã§ã¯ãSIRIUS ã§å®éã«æŽããŠããããŒãã¹ãèŠãŠãããŸãããã
SIRIUS ã®ããŒãã¹ã¯ããAIã«ä»»ããç¯å²ããšã人éãæ¿èªããå¢çãããã¯ã£ããæ±ºããŠããããã®ä»çµã¿ã®å šäœã§ãããããã»ã¹ããUnityæäœã®èªååããå質ãã§ãã¯ããã¬ãã¥ãŒé£æºããã«ãŒã«ããšãã5ã€ã®å±€ã§ã§ããŠããŠããããããã¿åãããšã§ãAIãèªåããéçºãåãã€ã€ãå質ã¯äººéãå®ã ãšãã AI-DLC ã®çæ³ãå®çŸããŠããŸãã
éçºããèŠä»¶ããå®è£
ã»ã¬ãã¥ãŒãŸã§ã4ãã§ãŒãºã®é«éãµã€ã¯ã«ã«ãŸãšããŸãïŒ/ct-ai-dlc ã¹ãã«ãå
¥å£ã§ãïŒã
| Phase | ããããš | ææç© |
|---|---|---|
| 1 Intent | äœãïŒãªãïŒDescriptionã»Contextã»Completion CriteriaïŒ | intent.md |
| 2 Inception | ã©ãäœãïŒèšèšãåºããŠéžã¶ãUoWåè§£ãã³ãããå æ±ºå®ïŒ | plan.md |
| 3 Construction | å®è£ ïŒã³ã³ãã€ã«ïŒå質ãã§ãã¯ïŒPR | ã³ãŒãïŒPR |
| 4 Review | ãã£ããã§ã®ã¬ãã¥ãŒäŸé ŒïŒGitHubäžã§ã®AIã©ããã®ã¯ãã¹ã¬ãã¥ãŒ | â |
- ãã§ãŒãºéã®åŒãç¶ãã¯ããã¹ãŠããŒã¯ããŠã³ã§è¡ããŸãïŒ
docs/ai-dlc/<date>-<topic-slug>/ã«ããŸã£ãŠãããŸãïŒãåãã§ãŒãºããã®ææžã ãã§å®çµããã®ã§ãçµããããšã«/clearããŠãèæ¯ãçµã¿ç«ãŠçŽããŠãããŒã¯ã³ã®ç¡é§ã¥ãããé²ããŸãïŒâ 2.4 ç¯ïŒã - Intent / Plan / PR ã®ãã³ãã¬ãŒããçšæããŠãããAIã®åºãçãã®å質ãå®å®ãããŸãã
AIãUnity EditorãçŽæ¥åããããã®CLIããClaude Code ã®ã¹ãã«ãšããŠæŽãããã®ã§ãããããããèµ·åããŠæž©ãŸã£ãç¶æ ïŒãŠã©ãŒã ïŒã®Editorã«ã€ãªãã§åããŸãã
| çš®å¥ | äž»ãªã¹ãã« | çšé |
|---|---|---|
| ã³ã³ãã€ã«ïŒãã¹ã | uloop-compile / uloop-run-tests |
ãšã©ãŒç¢ºèªãEditMode / PlayMode ã®ãã¹ãå®è¡ |
| å®è¡æã®ç¢ºèª | uloop-control-play-mode / uloop-screenshot / uloop-simulate-keyboard / uloop-simulate-mouse-* / uloop-recordã»replay-input |
Play Mode ã®æäœã»ç»é¢ãã£ããã£ã»å ¥åã®åçŸ |
| ç¶æ ããã¹ | uloop-get-logs / uloop-get-hierarchy / uloop-find-game-objects / uloop-execute-dynamic-code |
ãã°ã»éå±€ã»GameObjectã®èª¿æ»ãScene / Prefab / AssetDatabase ã®æäœ |
AIã®ãã°ã¯ ã¯ã©ãã·ã¥ããªãã®ã§ãäžèŠãããšæ°ã¥ããŸãããã ãããèŠã€ããããç¯å²ãéã3ã€ã®ææ®µã䜿ãåããŠãå質ãå®ããŸãïŒâ 1-3 ç¯ïŒã
| é²è¡ç· | èŠã€ãããããã® | äžèº« |
|---|---|---|
| ã³ãŒãã¬ãã¥ãŒïŒç®ã§èŠãïŒ | ã¯ã£ããããããžãã¯ã®ãã¹ã粟床ã®äœ¿ãåã | 人éïŒAIã®ã¯ãã¹ã¬ãã¥ãŒ |
| ããžã¥ã¢ã«ãªã°ã¬ãã·ã§ã³ãã¹ã | ãã¯ã»ã«åäœã®å€åïŒåæã®åŒã®ãºã¬ãªã©ïŒ | AverageTest.csïŒPlayModeïŒïŒEditMode |
| ã¢ãã€ã«GPUã®éçè§£æ | ã¬ãžã¹ã¿æ°ã»ãµã€ã¯ã«æ°ã®å¢å | Mali Offline Compiler |
PRãããŒãžããåã®å¿ é ãã§ãã¯ïŒmacOSïŒiOSåãïŒãš WindowsïŒAndroidåãïŒã®äž¡æ¹ã§ããã¹ãŠã® AverageTest ãæåããŠããããšãèªåã§ãã§ãã¯ããä»çµã¿ïŒCIïŒããŸã ç¡ãã®ã§ãAIãæåã§å šéšå®è¡ããŸãããããå€ããããã§çµæãæºããïŒflaky ãªïŒãã¹ãã¯ãæåã®1åïŒããçŽã2åïŒæå€§3åãŸã§è©Šãã1åã§ãæåããã°OKããšãã3åé£ç¶ã§å€±æãããã®ã¯ãå·®åã®ç»åãä»ããŠäººéã®å€æã«ãã ããŸãã
- ã¬ãã¥ãŒäŸé Œãã¹ãã«åããŠãã â GitHubã®ã¬ãã¥ã¢ãŒèšå®ãšãããŒã ã®ãã£ãããžã®äŸé Œæçš¿ãã²ãšã€ã®æé ã«ãŸãšããŸãïŒããŒã ããšã«é£çµ¡ææ®µãéãã®ã§ããã®ãªããžããªã«ã¯å«ããŠããŸããïŒ
- PRã®äœæãã
SiriusPackages/ã®CLAUDE.md/SKILL.mdããã¥ã¡ã³ãã®èªåæŽæ° - Codexã«ããèªåã¬ãã¥ãŒ â Claudeã«ããèªåå¯Ÿå¿ â 人éã確èªã»æ¿èª ãšãããAIã©ããã®ã¯ãã¹ã¬ãã¥ãŒé£æº
AIãèªåã§èµ°ããšãã«ããããããå ã¯èžãã§ã¯ãããªãããšããç·ãã«ãŒã«ã«ããŠããŸãã
.metaã¯AIãçæã»ç·šéããªãïŒGUIDã®è¡çªãé¿ããããïŒïŒãµãã¢ãžã¥ãŒã«ã®ãã€ã³ã¿ã¯ã³ãããããªã- ã¬ãã¥ãŒã®ææããã®ãŸãŸåãå ¥ãããå¿ ãå®éã®ãœãŒã¹ãã³ãã³ãã§ç¢ºããã
gitæäœïŒcommit / push / PRïŒã¯ããŠãŒã¶ãŒãã¯ã£ããèš±å¯ãããšãã ããèš±å¯ããªããã°ãå®è£ ïŒãã¹ãééãŸã§ã§ãã£ããæ¢ãŸã£ãŠå ±åãã- ã³ãããã¡ãã»ãŒãžã¯æ¥æ¬èªã§æžãã
git addã¯ãã¡ã€ã«åãã¯ã£ããæå®ãã
ããããã¯ãå®éã«æãåããã¯ãŒã¯ã·ã§ããã®èª¬æã§ãã
ãã®ãªããžããªã¯ãAIé§åéçºïŒAI-DLCïŒ ãäœéšããªãããUnityã®ãã¹ããšãã§ã¯ãïŒãã©ãŒç³»ã®ã·ã§ãŒããŒïŒã顿ã«ã°ã©ãã£ãã¯ã¹ããã°ã©ãã³ã°ãåŠã¶ããã®ãåŠçåãè¬çŸ©çšãã©ã³ãã§ãã
ãAIã«ã³ãŒããæžãããŠã人éãã¬ãã¥ãŒã»èšæž¬ã»ãã¹ãã§å質ãå®ãããšããæ°ããéçºã¹ã¿ã€ã«ããå®éã«èªåã®æãåãããŠäœéšããŠãããŸãã
- AIãçæããã³ãŒã㯠ãåããããã©ãæ£ããããšã¯ããããªã ããšããå®éã«äœæãã
- ã³ãŒãã¬ãã¥ãŒïŒããžã¥ã¢ã«ãªã°ã¬ãã·ã§ã³ãã¹ãïŒã¢ãã€ã«GPUã®éçè§£æ ãšãã3ã€ã®é²è¡ç·ãã䜿ãåããããããã«ãªã
- ãã©ãŒç³»ã®ã·ã§ãŒããŒã顿ã«ããã°ã¬ïŒèŠãç®ã®å£åïŒãšããã©ãŒãã³ã¹ã®æªåããèªåã®ç®ãšèšæž¬ã§èŠã€ããŠçŽã åã身ã«ã€ãã
- ãã¯ãŒã¯â ãDirectional Blur ã®å質æ¹å
- ãã¯ãŒã¯â¡ãRadial Blur ã®æé©å
- ãã¯ãŒã¯â¢ãæ°æ©èœã®å®è£ ïŒRotationBlurïŒ
- ãã¯ãŒã¯â£ãéœçïŒHeatDistortionïŒããŒãããå®è£
ã¯ãŒã¯â ãâ¢ãšãã¯ãŒã¯â£ã§ã¯ãé²ãæ¹ãéããŸããã¯ãŒã¯â ãâ¢ã¯ãç䌌çãªãããŒïŒ/workshop-ai-dlcïŒã§ããããšä»èŸŒãã äžå
·åãèŠã€ããŠçŽãç·Žç¿ã§ããã¯ãŒã¯â£ã¯ãç§ãã¡ãæ¥ã
ã®éçºã§äœ¿ã£ãŠãããããŒïŒ/ct-ai-dlcïŒã§ãèŠä»¶ã®èµ·ç¥šããå®è£
ãŸã§ããšãã§ã¯ãã1æ¬ãŸãããšæ°èŠã«äœããŸãããã¡ãã«ã¯ä»èŸŒã¿ã®äžå
·åã¯ãããŸãããAIãæžããã³ãŒããæ£ãããã©ããããããªãèªèº«ã確ãããŠãã ããã
ã¯ãŒã¯â ãâ¢ã¯ãæ¬¡ã®æµãã§é²ã¿ãŸãã
â AIã«å®è£
ïŒæ¹ä¿®ããé¡ãããïŒããã³ãããæããïŒ
â
â¡ AIããæ£ãããã«èŠãããã³ãŒããäœãïŒããã«äžå
·åãä»èŸŒãŸããŠããŸãïŒ
â
⢠ããªããã¬ãã¥ãŒã»å®è¡ã»èšæž¬ããŠããã°ã¬ãããã©ãŒãã³ã¹ã®æªåãèŠã€ãã
â
⣠åå ãã€ããšããŠçŽããçãåããããã
åã¯ãŒã¯ã®ãçããã¯
docs/workshop/answers/ã«ãããŸãããŸãã¯èªåã§æ¢ããŠãããdiffïŒå·®åïŒã§ç¢ºèªããŠãã ããã
Directional BlurïŒæ¹åãã©ãŒïŒ ãšã¯ãæå®ãã1æ¹åã«ã ãç»åãåŒãã®ã°ãããã«ãã¬ã³ããããã©ãŒã®ããšã§ããã¹ããŒãç·ãããã·ã¥ã®è¡šçŸãªã©ã«äœ¿ãããŸãã
ä»ã®å®è£ ã¯ããµã³ããªã³ã°ã3åã ãè¡ããç²ããã©ãŒã§ãããã©ã°ã¡ã³ãã·ã§ãŒããŒã®çãäžã®éšåã ãæãåºããšããããªã£ãŠããŸãã
[SiriusPackages\Sirius.PostProcessing\Runtime\Shaders\DirectionalBlur.shader]
// Blur
half4 blur_color = src_color; // â å
ç»åã1æã¶ããæåã«å
¥ããŠãã
for (int n = 0; n < 3; n++) // ⡠远å ã§3åãµã³ããªã³ã°ããŠè¶³ã蟌ã
{
const half displacement = DIRECTIONAL_BLUR_SAMPLING_OFFSET(n);
blur_color += SAMPLE_TEXTURE2D(_BlitTexture, sampler_LinearClamp,
IN.texcoord + displacement * _DirectionalBlurNormalizedDirection * _DirectionalBlurWidth * mask * fixed_aspect);
}
blur_color *= rcp(1 + 3); // ⢠ãå
ç»å1æ + ãµã³ãã«3åã= åèš4æã§å²ã£ãŠå¹³åãåºããã®ã¯ãŒã¯ã§ããããšã¯ããã®ã3åãã®ãµã³ããªã³ã°ãå¢ãããŠããã£ãšãªãããã§é«å質ãªãã©ãŒã«ããããšã§ãã
ð ã¬ãã¥ãŒã§æ³šç®ããŠã»ãããã€ã³ãïŒããããããšã§åºãŠãããã°ã¬ã»ããã©ãŒãã³ã¹æªåã®ãã³ãã«ãªããŸãïŒ
â¢ã®æ£èŠårcp(1 + 3)ã®3ã¯ãâ¡ã®ã«ãŒãåæ°ãšåãæ° ã§ããè¶³ããææ°ã§å²ããªããšãå¹³åã«ãªããŸãããã«ãŒãåæ°ãå¢ããããšãããã®å²ãæ°ãäžç·ã«å€ãã£ãŠããŸããïŒ- ãµã³ããªã³ã°åæ°ãå¢ããã»ã©ã
SAMPLE_TEXTURE2DïŒãã¯ã¹ãã£ã®èªã¿èŸŒã¿ïŒãå¢ããŸããå質ãäžãããããã«ãGPUã®è² è·ãäžãããŸãã å¢ãããåæ°ã¯ããã®ã³ã¹ãã«èŠåã£ãŠããŸããïŒ
Claude Code ã«ã次ã®ããã³ãããæããŠãAIã«é«å質åããé¡ãããŠãã ããã
/workshop-ai-dlc directional-blurãé«å質å
ãã®ããã³ãããå®è¡ãããšIntent->Plan->Constructionãšé²ãã§ãAIããµã³ããªã³ã°æ°ãå¢ãããæ¹ä¿®ã³ãŒããäœããŸããIntentã®ãã§ãŒãºã§ã¯ããã€ãã®æè¡çãªå€æã質åãããŸãã
å®è£ ãçµãã£ãŠãåäœç¢ºèªãè¡ããšãStrength=1.0, Width=0.5ã§ãã©ãŒã®éšåãæ¥µç«¯ã«æãããªã£ãŠããŸããã°ã¬ãçºçããŠããŸãããã®åå ã調æ»ããŠãã ããã
éããåããã«ããå Žåã¯gitæäœãªã©ã§ã³ãŒããå ã«æ»ããŠãå床4.3.3ã®ããã³ãããå®è¡ããŠç®ã§ç¢ºèªãããŠã¿ãŠãã ããã
確èªã®ãã³ãïŒè©°ãŸã£ããéãïŒ
- çæã³ãŒãã®æ£èŠåïŒ
rcp(...)ã®å²ãæ°ïŒãšã«ãŒãåæ°ãåã£ãŠããã確èªãã
ä»åã®ã¯ãŒã¯ã§ã¯ããã¯ã¹ãã£ãµã³ãã«æ°ãå¢ãããŠãã·ã§ãŒããŒã®å質ãäžããŠãããããã·ã§ãŒããŒã®æ§èœã¯åœç¶æªåããŠããŸãã ãã ãããã®æªåãæ³å®ç¯å²ãã©ããã確èªããããšã¯éèŠã§ããæ³å®å€ã®æªåã«ãã£ãŠãã¬ãžã¹ã¿ã¹ãã«ã®çºçã䞊åå®è¡æ§ã®å€§å¹ ãªäœäžãããŒãã¹ãã¢ã®å€§å¹ ãªå¢å ãªã©ãšãã£ãåé¡ãèµ·ããå¯èœæ§ããããŸãã
ããã§ãä»åã¯Arm瀟ãæäŸããŠããMali Offline Compilerã䜿ã£ãŠãã·ã§ãŒããŒã®éçãªæ§èœãã¹ããè¡ã£ãŠã¿ãŸãã
Unityã®ã¡ãã¥ãŒããŒããToos->Sirius->Dev Support->Shader Performance Analyzerãå®è¡ããŠæ¬¡ã®å³ã®ããŒã«ãèµ·åããŠãã ããã
éãããšãã§ããããè§£æãå®è¡ãã¿ã³ãæŒããŠãæ§èœãã¹ãã宿œããŠãã ããã
ä»åã¯æªåãæ€åºãããã®ã§ã次ã®å³ã®ãããªçµæã«ãªããŸãã
(â»)Mali Offline Compilerãã€ã³ã¹ããŒã«ã§ããŠããªãå Žåã¯ãå ¥æãã¿ã³ããMali OCãããŠã³ããŒãããŠãã ããã
Radial BlurïŒæŸå°ç¶ãã©ãŒïŒ ãšã¯ãèŠãŠããäžå¿ïŒç»é¢ã®çãäžãªã©ïŒãåºç¹ã«ãæŸå°ç¶ã«ç»åãæµããã©ãŒã®ããšã§ããéäžç·ã»ççºã»å éæã®æŒåºã«äœ¿ãããŸãã
ä»ã®å®è£
ã¯ããã¹ãŠã®å€æ°ã floatïŒ32bitïŒ ã§æžãããŠããŸããã©ããªå Žé¢ã§ãå®å
šã§ã¯ãããŸãããã¢ãã€ã«GPUã§ã¯ halfïŒ16bitïŒã«ããã»ãããã¬ãžã¹ã¿ã»ã¡ã¢ãªåž¯åã»é»æ± ã®ãã¡ãããããããŸãããã®ã¯ãŒã¯ã§ããããšã¯ããã® float ã half ã«çœ®ãããããã¢ãã€ã«åãã®æé©å ã§ãã
çãäžã®éšåãæãåºããšããããªã£ãŠããŸãïŒæ³šç®ããŠã»ãã2è¡ã«ã³ã¡ã³ããä»ããŠããŸãïŒã
[SiriusPackages\Sirius.PostProcessing\Runtime\Shaders\RadialBlur.shader]
// ã¢ãã€ã«æé©åå: ãã¹ãŠã®å€æ°ã floatïŒã¯ãŒã¯ã·ã§ããæŒç¿ã®åºçºç¹ïŒ
uniform float _RadialBlurGazePositionX;
uniform float _RadialBlurGazePositionY;
uniform float _RadialBlurStrength;
// ...ïŒäžç¥ïŒ...
float4 frag (const Varyings IN) : SV_Target
{
// ...ïŒè·é¢ã»æ¹åã®èšç®ã6 åãµã³ããªã³ã°ããŠå¹³ååïŒ...
// Composite
const float blur_strength = max(1e-5, _RadialBlurStrength);
const float t = SafePositivePow_float(normalized_distance, 0.5h) * blur_strength; // â
A: pow(x, 0.5)=sqrt ã§ãã©ãŒã«ãªããæã
return lerp(src_color, blur_color, saturate(t)); // â
B: saturate() ã§ t ã [0,1] ã«åãã
}ð ã¬ãã¥ãŒã§æ³šç®ããŠã»ãããã€ã³ãïŒããããããšã§åºãŠãããã°ã¬ã»ããã©ãŒãã³ã¹æªåã®ãã³ãã«ãªããŸãïŒ
- æé©åãšã¯ãèŠãç®ãå€ããã«è»œããããããšã§ãã
float â halfã¯åºæ¬ããã«åœãŠã¯ãŸããŸããããã€ãã§ã«ããã軜ãã§ãããããšåã£ãŠã¯ãããªãå ŽæããããŸãã- â A ã®
SafePositivePow(x, 0.5)ïŒïŒå¹³æ¹æ ¹ïŒ ã¯ãäžå¿ãã端ã«åãããã©ãŒã®å¹ãæ¹ïŒãã©ãŒã«ãªãã«ãŒãïŒã決ããŠããŸãããpowã¯éããããçŽç·ã§è¿äŒŒãããããšãããšãã«ãŒããå€ãã£ãŠèŠãç®ãå€ãããŸãïŒïŒããã¯æé©åã§ã¯ãªããã°ã¬ã§ãïŒãsqrt(0.5) â 0.707ãš0.5ã¯ãã©ããããéãã§ããããïŒ- â B ã®
saturate(t)ã¯ãStrengthã 1.0 ãããããšãã«tã 1.0 ããããŠãlerpã 倿¿ïŒç¯å²ã®å€ãŸã§èšç®ããŠããŸãããšïŒ ããã®ãé²ãã§ããŸãããStrength㯠Volume åŽã§å¶éãããŠãã ã¯ã ã ããèŠããªãããšæã蟌ãã§æ¶ããšãç»é¢ã®ç«¯ã§ãã€ã©ã€ããçœé£ã³ããããæãéšåãå転ãããããŸãã
/workshop-ai-dlc radial-blurãæé©å
AIã half åããæé©åã³ãŒããäœããŸããäœã£ãããšãèŠãç®ããåããšå€ãã£ãŠããªãã ããã³ãããã§ãã¯ããMali Offline Compiler ã§æ¬åœã«è»œããªã£ãã ãèšæž¬ããŠãã ããã
ã§ã¯ã宿œããæé©åã§ãã°ã¬ãèµ·ããŠããªãã確èªãããŠãã ããã
ããžã¥ã¢ã«ãªã°ã¬ãã·ã§ã³ãã¹ãã¯ãUnityã®ã¡ãã¥ãŒããŒããToos->General->Test RunnerãéžæããŠæ¬¡ã®ãŠã£ã³ããŠãéããŠãã ããã
ãŠã£ã³ããŠãéããããPlayModeãéžæåŸãWorkshop_RadialBlurãéžæããŠRun SelectedãæŒããŠãã ããã
ãããšããªã°ã¬ãã·ã§ã³ãã¹ãã«å€±æããŠããã°ã¬ãèµ·ããŠããããšãåãããŸãã
ãã®äžå
·åã®åå ã調æ»ããŠä¿®æ£ããŠãã ããã
æåŸã«ããã©ãŒãã³ã¹ãã¹ãã宿œããŸããæ§èœãè¯åãããã©ããã¯ãã¡ããšèšæž¬ããå¿
èŠããããŸãã
Toos->Sirius->Dev Support->Shader Performance Analyzerããæ§èœãã¹ãã宿œããŠãã ããã
æ§èœãæªåããŠããå Žåã¯ãåé¡ãä¿®æ£ããŠãã ããã
ãã®ã¯ãŒã¯ã§ã¯ããŸã ååšããªã RotationBlurïŒå転ãã©ãŒïŒ ããAIãšäžç·ã«ãŒãããå®è£ ããŸãã察象ã®ã·ã§ãŒããŒã¯ã次ã®ããã«ãèµ€äžè²ãè¿ãã ãã®äžèº«ã空ã®ãã®ïŒã¹ã¿ãïŒãã«ãªã£ãŠããŠãããã«äžèº«ãäœã£ãŠãããŸãã
[SiriusPackages\Sirius.PostProcessing\Runtime\Shaders\RotationBlur.shader]
half4 frag(const Varyings IN) : SV_Target
{
// ã¯ãŒã¯ã·ã§ããæŒç¿ Part 2: RotationBlur
// /workshop-ai-dlc rotation-blurãå®è£
ãå®è¡ããŠãããå®è£
ããŠãã ãã
return half4(1.0h, 0.0h, 0.0h, 1.0h);
}RotationBlurïŒå転ãã©ãŒïŒ ãšã¯ãæå®ããäžå¿ç¹ã軞ã«ããŠãåãã¯ã»ã«ã æ¥ç·æ¹åïŒåã®æ¥ç·ïŒå転ããŠããæ¹åïŒ ãžãã¬ã³ããããã©ãŒã®ããšã§ããã«ã¡ã©ã被åäœãå転ããŠãããããªããããŸãã»ã¹ãã³æã®æŒåºã«äœ¿ããŸãã
Sirius ã®ãã¹ããšãã§ã¯ãã¯ãVolumeïŒãã©ã¡ãŒã¿ïŒïŒ RenderPassïŒæç»ã®å¶åŸ¡ïŒïŒ ShaderïŒç»ååŠçïŒ ã®3ã€ã®å±€ã§äœããŸããRotationBlur ããåãäœãã§å®è£ ããŸãã
ãã©ã¡ãŒã¿ïŒVolumeïŒã¯ã次ã®ãšããã§ãã
| ãã©ã¡ãŒã¿ | æå³ |
|---|---|
| Center X / Y | å転ã®äžå¿ç¹ïŒUVåº§æš 0ã1ïŒ |
| Strength | ãã©ãŒã®åŒ·ãïŒè·é¢ãããšã«ãããã¬ã³ãã®ä¿æ°ïŒ |
| Width | ãã©ãŒã®å¹ ïŒæ¥ç·æ¹åã®ãµã³ããªã³ã°è·é¢ã®ã¹ã±ãŒã«ïŒ |
| Mask | 广ããããç¯å²ïŒRãã£ã³ãã«ïŒ |
ã·ã§ãŒããŒãããã¹ãåŠçã¯ã倧ãŸãã«æ¬¡ã®æµãã§ãã
â äžå¿ç¹ããåãã¯ã»ã«ãžåãããã¯ãã« d ãšããã®è·é¢ dist ãæ±ãã
â¡ d ã«åçŽãªãæ¥ç·æ¹åãã®ãã¯ãã«ãäœã a
⢠æ¥ç·æ¹åã«ãã£ãŠãè€æ°åãµã³ããªã³ã°ããŠå¹³åãåºã
⣠äžå¿ããã®è·é¢ã«å¿ããŠãã¬ã³ããã
ð 仿§ã®ãã€ã³ãïŒããããããšã§åºãŠãããã°ã¬ã»ããã©ãŒãã³ã¹æªåã®ãã³ãã«ãªããŸãïŒ
å€äœã¯ãäžå¿ããã®è·é¢ãã«æ¯äŸãããŸãã å転ã§ã¯ãåãè§é床ã§ã äžå¿ããé ããã¯ã»ã«ã»ã©ãããã匧ãé·ãïŒïŒå€§ããïŒåããŸããèªè»¢è»ã®ãã€ãŒã«ãæãããã¹ãŠãã ãããå€åŽã®ã¹ããŒã¯ã»ã©éãåããŸãããã ãããæ¥ç·æ¹åã®ãµã³ããªã³ã°éã¯ãè·é¢
distã«åãããŠã¹ã±ãŒã«ããå¿ èŠããããŸãã äžå¿ã®è¿ããšç»é¢ã®ç«¯ã§ããã©ãŒã®åŒ·ãããåããã«èŠããããè·é¢ã«ããã¹ã±ãŒã«ãæããŠããŸããæ¥ç·æ¹åã«ã¯ãã¢ã¹ãã¯ãæ¯ã®è£æ£ãå¿ èŠã§ãã UV空éïŒ0ã1ïŒã¯çžŠæšªã§åãã¹ã±ãŒã«ã§ãããå®éã®ãã¯ã»ã«ã§ã¯ã暪é·ã®ç»é¢ã»ã©æšªæ¹åãã®ã³ãŸããè£æ£ããªããšãæ¬æ¥ã¯æ£åã§ããã¯ãã®å転ãã©ãŒããæšªé·ç»é¢ã§æ¥åã«ããã¿ãŸãã
ã¢ãã€ã«åãã«
halfç²ŸåºŠã§æžããŸãã UVã® 0ã1 ã®ç¯å²ã§ã®èšç®ãªã®ã§ãhalfã§ååã§ããfloatã®ãŸãŸã ãšãã¬ãžã¹ã¿ã»åž¯åã»é»æ± ã®ãã¡ã§äžå©ã«ãªããŸãïŒã¯ãŒã¯â¡ãšåãèãæ¹ã§ãïŒããã¬ã³ãã®ä¿æ°ã¯
saturateã§ã¯ã©ã³ãããŸãã 匷ãã倧ãããšãã«lerpã倿¿ããªãããããã¬ã³ãã®ä¿æ°ã[0,1]ã®äžã«ããããŸãïŒã¯ãŒã¯â¡ã® â B ãšåãèãæ¹ã§ãïŒã
/workshop-ai-dlc rotation-blurãå®è£
AIã Volume / RenderPass / Shader ãäœããŸããéäžã§ãäžå¿ç¹ã®ãã€ãããã粟床ãã¢ã¹ãã¯ãæ¯ã®è£æ£ ã«ã€ããŠãããªãã®å€æãæ±ããããŸãã
ãŸããä»åã®ã¯ãŒã¯ã§ã¯ãVolumeãšRenderer Featureã®èšå®ãå¿
èŠãªã®ã§ããããã®èšå®ããæ¬¡ã®ããã³ãããå
¥åããŠãClaudeã«ãããŠã¿ãŸãããã
Workshop_RotationBlurã·ãŒã³ã§RotationBlurã確èªã§ããããã«ãVolumeãRenderer Featureã®èšå®ãè¡ã£ãŠãã ããã
Unityã§RotationBlurã確èªã§ããããã«ãªã£ãããäžã®ã仿§ã®ãã€ã³ããã«ç §ãããŠãèŠãç® ã仿§ã©ãããæ€èšŒããŠãã ããã
ä»åã®å®è£
ã¯æ°èŠå®è£
ãªã®ã§ãæ¬æ¥ã¯æ£è§£ãšãªãç»åããŒã¿ããªããããããžã¥ã¢ã«ãªã°ã¬ãã·ã§ã³ãã¹ãã宿œããããšã¯ã§ããªãã®ã§ãããä»åã¯æ£ããä¿®æ£ãã§ããŠãããã©ããã®ç¢ºèªã®ããã«ãæ£è§£ç»åãçšæããŠããŸãã
察å¿ãã§ãã人ã¯Toos->General->Test RunnerããRotationBlurã®ãã¹ããå®è¡ããŠãã ããããã¹ãã«å€±æããå Žåã¯ãäžå
·åãä¿®æ£ããŠãã ããã
確èªã®ãã³ãïŒè©°ãŸã£ããéãïŒ
- ç»é¢ã®äžå¿ã®è¿ããšãç»é¢ã®ç«¯ïŒäžå¿ããé ãäœçœ®ïŒã§ããã©ãŒã®åŒ·ããå€ãã£ãŠãããïŒåãã«èŠããããè·é¢ã¹ã±ãŒã«ãçãïŒ
- 暪é·ã®ç»é¢ïŒ1920Ã1080ïŒã§ããã©ãŒã®åœ¢ã æ£åã«ãªã£ãŠãããïŒæ¥åãªããã¢ã¹ãã¯ãæ¯ã®è£æ£ãçãïŒ
ããããã®2ã€ã®ã¯ãŒã¯ã¯ãç䌌äœéšãšãªãAI-DLCã§ã¯ãªããã³ã¢ãã¯ã®ã°ã©ãã£ãã¯ã¹ããŒã ã§å®éã«äœ¿ãããŠããAI-DLCã®ã¹ãã«ïŒ/ct-ai-dlcïŒã§ãIntentïŒäœãã»ãªãïŒâ InceptionïŒã©ãäœãïŒâ ConstructionïŒå®è£
ïŒãšé²ãããšãã§ã¯ãã1æ¬ãŸãããšæ°èŠã«äœããŸãã
å®è£
åŸã¯PRã®äœæ -> Codexã«ããèªåã¬ãã¥ãŒ -> Claude Codeã«ããã¬ãã¥ãŒå¯Ÿå¿ã®æ€èšãšãã£ãAIã«ããã¯ãã¹ã¬ãã¥ãŒãŸã§äœéšããŠããããŸãã
éœçïŒHeatDistortionïŒ ã¯ãç±ãããã空æ°ããã«ãé ãã®æ¯è²ããããã§èŠããçŸè±¡ã§ããå€ã®ã¢ã¹ãã¡ã«ãããããç«ã®åããåŽãæãæµ®ãã¹ãŠãã ãããã²ãŒã ã§ã¯ãççºã»çã»ç æŒ ã»ãšã³ãžã³ã®ææ°ãšãã£ãç±ã®è¡šçŸã«äœ¿ããŸãã
äœãã¯ãããŸã§ãšåã3å±€ïŒVolume ïŒ RenderPass ïŒ ShaderïŒã§ãããä»åã¯3Dãã¯ã¹ãã£ãšæ·±åºŠå€ãå©çšããŠãããã¿ãçºçãããŸãã
ãã®ãããªæè¡ç仿§ã¯ãããŸã§ã®ã·ã³ãã«ãªããã³ãã/ct-ai-dlc éœçïŒHeatDistortionïŒãå®è£
ã®ãããªæç€ºã§ã¯æ±ºå®ããããšãé£ãããããããã³ããã§æç¢ºã«æç€ºãåºãããå®è£
ã®èšç»èªäœãAI-DLCãå©çšããŠå£æã¡ããŠäœã£ãŠããå¿
èŠããããŸãã
ä»åã¯ããã³ããã§å
·äœçãªæç€ºãåºããŠãããŸãã
ãã®ã¯ãŒã¯ã§ã¯æçµçã«PRãäœæãããããå§ããåã«ä»¥äžã®è¿œå ã»ããã¢ãããå¿ èŠã§ãã
-
ãªããžããªãFork: GitHubäžã§æ¬ãªããžããªïŒCyberAgentGameEntertainment/GraphicsAcademyLightïŒãéããå³äžã® Fork ãã¿ã³ãããã©ãŒã¯ãäœæããŸãã

-
Forkå ãæ¹ããŠã¯ããŒã³: ã¯ãŒã¯â ãâ¢ã§äœ¿ã£ãŠãããã©ã«ããšã¯å¥ã®å Žæã«ãForkå ãã¯ããŒã³ããŸãïŒ
<your-github-username>ã¯èªåã®GitHubã¢ã«ãŠã³ãåã«çœ®ãæããŠãã ããïŒãgit clone https://github.com/<your-github-username>/GraphicsAcademyLight.git cd GraphicsAcademyLight
-
GitHub CLI ã®ã€ã³ã¹ããŒã«ãšèªèšŒ: PRã®äœæãã¬ãã¥ãŒäŸé Œã
git pushã®èªèšŒã«äœ¿ããŸããã€ã³ã¹ããŒã«æé ã¯Windows/Macã§ç°ãªããŸããWindows
winget install --id GitHub.cliMac
brew install gh
ã€ã³ã¹ããŒã«åŸãèªèšŒãè¡ããŸãïŒWindows/Macå ±éïŒã
gh auth login gh auth setup-git
/ct-ai-dlc éœçïŒHeatDistortionïŒãfeat/heatDistortionãã©ã³ãã«å®è£
ãæªã¿ã¯3Dã®ãã€ãºãã¯ã¹ãã£ãšæ·±åºŠæ
å ±ãå
ã«å®è£
ããŸãããã€ãºãã¯ã¹ãã£ã¯ããªã»ãããšããŠ3DCells64SheetãçšæãããŠããã®ã§ããããå©çšããŠãã ããã
AIãIntentã®èµ·ç¥šããä»ãåããŸããDescriptionã»Contextã»Completion Criteria ãäžç·ã«åããInception ã§ç²ŸåºŠããã¹ã¯ã®èšèšãçžè«ããæ¿èªããŠãã Construction ã§å®è£
ããŸãããã§ãŒãºããšã« /clear ãæãã§ããdocs/ai-dlc/ ã«æ®ãMarkdownããç¶ããåéã§ããŸãã
Phase 3ã®å®è£ ãå®äºãããšæ¬¡ã®ããã«ãåäœã確èªããããã®äººéã®æ®äœæ¥ãAIããæç€ºãããŸãã ãããã®æç€ºã«ã€ããŠãäžæãªç¹ãããã°AIã«è³ªåããŠããããã®ãããã§ãããåç¯ã®ããã«ãã·ãŒã³ã®ã»ããã¢ãããªã©ãå šãŠAIã«è¡ãããã®ãOKã§ãã AIããæç€ºããã確èªäºé ãé²ããŠãã³ããã->PRäœæãŸã§é²ããŠãã ããã
äœæãããPRã«ã¯ã次ã®å³ã®ããã«Codexã«ããã¬ãã¥ãŒãšClaudeã«ããã¬ãã¥ãŒã®è©äŸ¡ã远å ãããŠããŸãã ããã確èªããŠãæçµçã«äººéã«ãã察å¿ã®æ±ºå®ãè¡ã£ãŠãã ããã ïŒâ» ä»åã®PRã¯mainã«ããŒãžã¯ã§ããŸãããïŒ










