蚌æãããããã©ãŒãã³ã¹ãã¯ããã¯ã§ã²ãŒã æé©åããã¹ã¿ãŒããŸãããããã¬ãŒã ã¬ãŒããåäžãããã©ã°ãæžãããäžçäžã®å€æ§ãªãã©ãããã©ãŒã ãšããã€ã¹ã§ãã¬ã€ã€ãŒäœéšãåäžãããŸãããã
ã²ãŒã æé©åïŒã°ããŒãã«ãªæåã®ããã®ããã©ãŒãã³ã¹ãã¯ããã¯
ç«¶äºã®æ¿ããã²ãŒã éçºã®äžçã§ã¯ãããã©ãŒãã³ã¹ãæåªå äºé ã§ããèžè¡æ§ã驿°çãªã²ãŒã ãã¬ã€ã«ããããããæé©åãäžååãªã²ãŒã ã¯ãã©ã°ãäœããã¬ãŒã ã¬ãŒããéå°ãªãªãœãŒã¹æ¶è²»ã«ããããã¬ã€ã€ãŒãé ããããªã¹ã¯ããããŸããããã¯ããã€ãšã³ãã®ã²ãŒãã³ã°PCããæé ãªäŸ¡æ Œã®æºåž¯é»è©±ãŸã§ã倿§ãªããã€ã¹ã§ãã¬ã€ã€ãŒãã²ãŒã ã«ã¢ã¯ã»ã¹ããã°ããŒãã«åžå Žã§ã¯ç¹ã«éèŠã§ãããã®å æ¬çãªã¬ã€ãã§ã¯ãããŸããŸãªãã©ãããã©ãŒã ã«é©çšå¯èœãªäžå¯æ¬ ãªã²ãŒã æé©åãã¯ããã¯ãæ¢ããäžçäžã®ãã¬ã€ã€ãŒã«ã¹ã ãŒãºã§æ¥œããäœéšãæäŸããããšãç®æããŸãã
ããã©ãŒãã³ã¹ã®ããã«ããã¯ãçè§£ãã
å ·äœçãªæé©åãã¯ããã¯ã«å ¥ãåã«ãã²ãŒã ã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããããã«ããã¯ãç¹å®ããããšãäžå¯æ¬ ã§ããäžè¬çãªåå ã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
- CPUïŒäžå€®åŠçè£ çœ®ïŒïŒã²ãŒã ããžãã¯ãAIãç©çæŒç®ããã®ä»ã®ã³ã¢èšç®ãåŠçããŸãã
- GPUïŒã°ã©ãã£ãã¯ã¹åŠçè£ çœ®ïŒïŒãã¯ã¹ãã£ãã·ã§ãŒããŒãããžã¥ã¢ã«ãšãã§ã¯ããå«ãã°ã©ãã£ãã¯ã¹ã®ã¬ã³ããªã³ã°ãæ åœããŸãã
- ã¡ã¢ãªïŒRAMïŒïŒã²ãŒã ã¢ã»ãããããŒã¿ãããã°ã©ã åœä»€ãä¿åããè¿ éãªã¢ã¯ã»ã¹ãå¯èœã«ããŸãã
- ãã£ã¹ã¯I/OïŒããŒãæéãšã¢ã»ããã®ã¹ããªãŒãã³ã°ã«åœ±é¿ããŸãã
- ãããã¯ãŒã¯ïŒã¬ã€ãã³ã·ãšåž¯åå¹ ã®å¶éã«ããããªã³ã©ã€ã³ãã«ããã¬ã€ã€ãŒã²ãŒã ã«åœ±é¿ããŸãã
äž»ãªããã«ããã¯ãç¹å®ããããšãã广çãªæé©åãžã®æåã®ã¹ãããã§ããããã«ã¯ãCPUãšGPUã®äœ¿çšçãã¡ã¢ãªå²ãåœãŠããããã¯ãŒã¯ãã©ãã£ãã¯ãåæããããã«ãããã¡ã€ãªã³ã°ããŒã«ã䜿çšããããšããããããŸãã
ãããã¡ã€ãªã³ã°ããŒã«ïŒããªãã®æé©åã®æŠåšåº«
ãããã¡ã€ãªã³ã°ããŒã«ã¯ãã²ãŒã ã®ããã©ãŒãã³ã¹ã«é¢ãã貎éãªæŽå¯ãæäŸããŸããäžè¬çãªãªãã·ã§ã³ã«ã¯ä»¥äžã®ãããªãã®ããããŸãã
- Unity ProfilerïŒUnityãããžã§ã¯ãåãã®çµã¿èŸŒã¿ãããã¡ã€ã©ãŒã§ãCPUãGPUãã¡ã¢ãªãã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã«é¢ãã詳现æ å ±ãæäŸããŸãã
- Unreal Engine ProfilerïŒUnityã®ãããã¡ã€ã©ãŒãšåæ§ã«ãUnreal Engineã²ãŒã åãã®å æ¬çãªããã©ãŒãã³ã¹åæãæäŸããŸãã
- RenderDocïŒåã ã®ãããŒã³ãŒã«ãšã·ã§ãŒããŒã®å®è¡ãæ€æ»ã§ãã匷åãªãªãŒãã³ãœãŒã¹ã°ã©ãã£ãã¯ã¹ãããã¬ãŒã§ãã
- PerfettoïŒAndroidãLinuxãChromeåãã®ãããã¯ã·ã§ã³ã°ã¬ãŒãã®ããã©ãŒãã³ã¹ãã¬ãŒã·ã³ã°ããã³åæã¹ã€ãŒãã§ãã
- Xcode Instruments (iOS)ïŒCPUãµã³ãã©ãŒãã¡ã¢ãªå²ãåœãŠãOpenGL ESã¢ãã©ã€ã¶ãŒãå«ãiOSéçºåãã®ãããã¡ã€ãªã³ã°ããŒã«ã®ã³ã¬ã¯ã·ã§ã³ã§ãã
- Android Studio Profiler (Android)ïŒAndroidã¢ããªã±ãŒã·ã§ã³åãã®CPUãã¡ã¢ãªããããã¯ãŒã¯ããšãã«ã®ãŒãããã¡ã€ãªã³ã°ãæäŸããŸãã
ãããã®ããŒã«ãç¿åŸããããšã§ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããæé©åã®åãçµã¿ãå°ãããšãã§ããŸãã
CPUæé©åãã¯ããã¯
CPUããã©ãŒãã³ã¹ã®æé©åã¯ãç¹ã«è€éãªAIãç©çæŒç®ãã·ãã¥ã¬ãŒã·ã§ã³ãåããã²ãŒã ã§ãã¹ã ãŒãºãªã²ãŒã ãã¬ã€ã確ä¿ããããã«äžå¯æ¬ ã§ãã
ã³ãŒãæé©å
å¹ççãªã³ãŒããæžãããšã¯ãCPUããã©ãŒãã³ã¹ã®åºæ¬ã§ãã以äžãæ€èšããŠãã ããã
- ã¢ã«ãŽãªãºã æé©åïŒç¹å®ã®ã¿ã¹ã¯ã«æãå¹ççãªã¢ã«ãŽãªãºã ãéžæããŸããããšãã°ãã«ãã¯ã¢ããã«ç·åœ¢æ€çŽ¢ã®ä»£ããã«ããã·ã¥ããŒãã«ã䜿çšãããšãããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãã
- ããŒã¿æ§é ïŒã¡ã¢ãªäœ¿çšéãšã¢ã¯ã»ã¹æéãæå°éã«æããããã«é©åãªããŒã¿æ§é ãéžæããŸãã
- ãã£ãã·ã³ã°ïŒé »ç¹ã«ã¢ã¯ã»ã¹ãããããŒã¿ãããŒã«ã«å€æ°ã«æ ŒçŽããŠãã¡ã¢ãªã¢ã¯ã»ã¹ã®ãªãŒããŒããããåæžããŸãã
- äžèŠãªå²ãåœãŠã®åé¿ïŒãªããžã§ã¯ãã®äœæãšç Žæ£ãæå°éã«æããŸããã¡ã¢ãªå²ãåœãŠã¯ã³ã¹ãã®ãããæäœã«ãªãå¯èœæ§ãããããã§ããæ°ãããªããžã§ã¯ããäœæãã代ããã«ããªããžã§ã¯ãããŒã«ã䜿çšããŠæ¢åã®ãªããžã§ã¯ããåå©çšããŸãã
- æååé£çµïŒã«ãŒãå ã§ã®æååé£çµã®ç¹°ãè¿ããé¿ããŸãã倿°ã®äžæçãªæååãªããžã§ã¯ããäœæãããå¯èœæ§ãããããã§ããå¹ççãªæååæäœã«ã¯ãStringBuilder (C#) ãåæ§ã®ãã¯ããã¯ã䜿çšããŸãã
- æ¡ä»¶ããžãã¯ïŒæãå¯èœæ§ã®é«ãæ¡ä»¶ãæåã«é 眮ããããšã§ãæ¡ä»¶ã¹ããŒãã¡ã³ããæé©åããŸãã
- ä»®æ³é¢æ°åŒã³åºãã®æå°åïŒä»®æ³é¢æ°åŒã³åºãã¯ãåçãã£ã¹ãããã«ãããªãŒããŒããããå°å ¥ããŸããããã©ãŒãã³ã¹ãéèŠãªã³ãŒãã»ã¯ã·ã§ã³ã§ã¯ãå¯èœãªéã䜿çšãæžãããŸãã
äŸïŒC# - UnityïŒïŒæ°å€ã®å¹³æ¹æ ¹ãç¹°ãè¿ãèšç®ãã代ããã«ãçµæããã£ãã·ã¥ããŸãã
float CachedSqrt(float number)
{
static Dictionary sqrtCache = new Dictionary();
if (sqrtCache.ContainsKey(number))
{
return sqrtCache[number];
}
else
{
float result = Mathf.Sqrt(number);
sqrtCache[number] = result;
return result;
}
}
ãã«ãã¹ã¬ããã£ã³ã°
ã¿ã¹ã¯ãç°ãªãã¹ã¬ããã«åæ£ãããããšã§ãè€æ°ã®CPUã³ã¢ã掻çšããŸããããã«ãããç¹ã«ç©çã·ãã¥ã¬ãŒã·ã§ã³ãAIèšç®ã®ãããªèšç®è² è·ã®é«ãã¿ã¹ã¯ã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããå¯èœæ§ããããŸãã
- ã¿ã¹ã¯ããŒã¹ã®äžŠååŠçïŒå€§èŠæš¡ãªã¿ã¹ã¯ãã䞊åã§å®è¡ã§ããå°ããç¬ç«ããã¿ã¹ã¯ã«åå²ããŸãã
- ããŒã¿äžŠååŠçïŒè€æ°ã®ã¹ã¬ããã䜿çšããŠãåãæäœãè€æ°ã®ããŒã¿èŠçŽ ã«åæã«é©çšããŸãã
- åæïŒç«¶åç¶æ ãããŒã¿ç Žæãåé¿ããããã«ãã¹ã¬ããéã§é©åãªåæã確ä¿ããŸããå ±æãªãœãŒã¹ãä¿è·ããããã«ãããã¯ããã¥ãŒããã¯ã¹ããŸãã¯ãã®ä»ã®åæããªããã£ãã䜿çšããŸãã
äŸïŒC++ïŒïŒstd::threadã䜿çšããŠãå¥ã®ã¹ã¬ããã§ã¿ã¹ã¯ãå®è¡ããŸãã
#include <iostream>
#include <thread>
void task(int id)
{
std::cout << "Thread " << id << " is running.\n";
}
int main()
{
std::thread t1(task, 1);
std::thread t2(task, 2);
t1.join(); // t1ãçµäºãããŸã§åŸ
æ©
t2.join(); // t2ãçµäºãããŸã§åŸ
æ©
std::cout << "All threads finished.\n";
return 0;
}
ãªããžã§ã¯ãããŒãªã³ã°
ãªããžã§ã¯ãããŒãªã³ã°ã¯ãæ°ãããªããžã§ã¯ããäœæãã代ããã«æ¢åã®ãªããžã§ã¯ããåå©çšãããã¯ããã¯ã§ããããã«ãããã¡ã¢ãªå²ãåœãŠãšã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã«é¢é£ãããªãŒããŒããããå€§å¹ ã«åæžãããŸãã
- ãªããžã§ã¯ãã®äºåå²ãåœãŠïŒã²ãŒã ãŸãã¯ã¬ãã«ã®éå§æã«ãªããžã§ã¯ãã®ããŒã«ãäœæããŸãã
- ãªããžã§ã¯ãã®åå©çšïŒãªããžã§ã¯ããå¿ èŠã«ãªã£ãããæ°ãããªããžã§ã¯ããäœæããã®ã§ã¯ãªããããŒã«ããååŸããŸãã
- ãªããžã§ã¯ããããŒã«ã«æ»ãïŒãªããžã§ã¯ããäžèŠã«ãªã£ãããåŸã§åå©çšã§ããããã«ããŒã«ã«æ»ããŸãã
ããã¯ã匟䞞ãããŒãã£ã¯ã«ãæµãªã©ãé »ç¹ã«äœæããã³ç Žæ£ããããªããžã§ã¯ãã«ç¹ã«å¹æçã§ãã
ç©çæŒç®ã®æé©å
ç©çã·ãã¥ã¬ãŒã·ã§ã³ã¯èšç®è² è·ãé«ãå¯èœæ§ããããŸããCPUè² è·ã軜æžããããã«ç©çæŒç®èšå®ãæé©åããŸãã
- è¡çªæ€åºïŒè€éãªã¡ãã·ã¥ã®ä»£ããã«ãåçŽåãããè¡çªåœ¢ç¶ïŒäŸïŒããŠã³ãã£ã³ã°ããã¯ã¹ãçïŒã䜿çšããŠè¡çªæ€åºãè¡ããŸãã
- ç©çæŒç®ã®ååŸ©åæ°ïŒãã¬ãŒã ãããã®ç©çæŒç®ã®ååŸ©åæ°ãæžãããŸããããã«ããããã©ãŒãã³ã¹ãåäžããå¯èœæ§ããããŸãããã·ãã¥ã¬ãŒã·ã§ã³ã®ç²ŸåºŠãäœäžããå¯èœæ§ããããŸãã
- ã¹ãªãŒããããå€ïŒéæ¢ããŠãããªããžã§ã¯ãã®ã·ãã¥ã¬ãŒã·ã§ã³ã忢ããããã«ããªãžããããã£ã«ã¹ãªãŒããããå€ãèšå®ããŸãã
- ã³ã©ã€ããŒã®ç¡å¹åïŒç°å¢ãšçžäºäœçšããŠããªããªããžã§ã¯ãã®ã³ã©ã€ããŒãç¡å¹ã«ããŸãã
GPUæé©åãã¯ããã¯
GPUããã©ãŒãã³ã¹ã®æé©åã¯ãé«ãã¬ãŒã ã¬ãŒããšèŠèŠçã«é åçãªã°ã©ãã£ãã¯ã¹ãå®çŸããããã«äžå¯æ¬ ã§ããGPUã¯ãã¯ã¹ãã£ãã·ã§ãŒããŒããã¹ãããã»ãã·ã³ã°ãšãã§ã¯ãã®ã¬ã³ããªã³ã°ãåŠçãããããæé©åã®äž»èŠãªã¿ãŒã²ãããšãªããŸãã
詳现床ïŒLODïŒ
詳现床ïŒLODïŒã¯ãã«ã¡ã©ããã®è·é¢ã«åºã¥ããŠã¢ãã«ã®è€éããæžãããã¯ããã¯ã§ããããã«ãããã¬ã³ããªã³ã°ããå¿ èŠã®ããããªãŽã³ã®æ°ãæžããGPUããã©ãŒãã³ã¹ãåäžããŸãã
- è€æ°ã®LODã®äœæïŒè©³çްã¬ãã«ãç°ãªãã¢ãã«ã®ããŸããŸãªããŒãžã§ã³ãçæããŸãã
- è·é¢ã«åºã¥ãLODã®åãæ¿ãïŒã«ã¡ã©ããã®è·é¢ãå¢å ããã«ã€ããŠãäœè©³çŽ°åºŠã®ã¢ãã«ã«åãæ¿ããŸãã
- èªåLODçæïŒããŒã«ãŸãã¯ã¹ã¯ãªããã䜿çšããŠãé«è§£å床ã¢ãã«ããLODãèªåçæããŸãã
äŸïŒããªãŒã¢ãã«ã«ã¯ãã¯ããŒãºã¢ãããã¥ãŒçšã®æ°åããªãŽã³ã®é«è©³çްããŒãžã§ã³ãšãé æ¯çšã®æ°çŸããªãŽã³ã®äœè©³çްããŒãžã§ã³ãããå ŽåããããŸãã
ãªã¯ã«ãŒãžã§ã³ã«ãªã³ã°
ãªã¯ã«ãŒãžã§ã³ã«ãªã³ã°ã¯ãä»ã®ãªããžã§ã¯ãã®åŸãã«é ããŠãããªããžã§ã¯ãã®ã¬ã³ããªã³ã°ãé²ããã¯ããã¯ã§ããããã«ããããããŒã³ãŒã«ã®æ°ãå€§å¹ ã«åæžãããGPUããã©ãŒãã³ã¹ãåäžããŸãã
- ãªã¯ã«ãŒãžã§ã³ããªã¥ãŒã ã®äœ¿çšïŒä»ã®ãªããžã§ã¯ãããªã¯ã«ãŒãã§ããé åãæå®ããããã«ãªã¯ã«ãŒãžã§ã³ããªã¥ãŒã ãå®çŸ©ããŸãã
- åçãªã¯ã«ãŒãžã§ã³ã«ãªã³ã°ïŒç§»åãããªããžã§ã¯ããšã«ã¡ã©äœçœ®ãåŠçããããã«ãåçãªã¯ã«ãŒãžã§ã³ã«ãªã³ã°ãå®è£ ããŸãã
- ãã€ã¯æžã¿ãªã¯ã«ãŒãžã§ã³ã«ãªã³ã°ïŒããã©ãŒãã³ã¹ãããã«æé©åããããã«ãã¬ãã«ãã¶ã€ã³äžã«ãªã¯ã«ãŒãžã§ã³ããŒã¿ãäºåèšç®ããŸãã
ã·ã§ãŒããŒæé©å
ã·ã§ãŒããŒã¯ããªããžã§ã¯ããã©ã®ããã«ã¬ã³ããªã³ã°ãããããæ±ºå®ããããã«GPUã§å®è¡ãããããã°ã©ã ã§ããã·ã§ãŒããŒãæé©åããããšã§ãGPUããã©ãŒãã³ã¹ãå€§å¹ ã«åäžããŸãã
- ã·ã§ãŒããŒã®è€éãã®åæžïŒäžèŠãªèšç®ãåœä»€ãåé€ããŠãã·ã§ãŒããŒã³ãŒããç°¡çŽ åããŸãã
- äœç²ŸåºŠããŒã¿åã®äœ¿çšïŒå¯èœãªå Žåã¯ãäœç²ŸåºŠããŒã¿åïŒäŸïŒå粟床浮åå°æ°ç¹æ°ïŒã䜿çšããŠãã¡ã¢ãªåž¯åå¹ ã®äœ¿çšéãåæžããŸãã
- ãã¯ã¹ãã£ãµã³ããªã³ã°ã®æé©åïŒãã¯ã¹ãã£ãµã³ããªã³ã°ã®åæ°ãæå°éã«æããããããããã³ã°ã䜿çšããŠãšã€ãªã¢ã·ã³ã°ãåæžããŸãã
- ãããŒã³ãŒã«ã®ãããåŠçïŒè€æ°ã®ãããŒã³ãŒã«ã1ã€ã®ãããŒã³ãŒã«ã«çµåããŠãCPUãªãŒããŒããããåæžããŸãã
- éæãªããžã§ã¯ãã®åé¿ïŒãªãŒããŒãããŒã®ãããéæåºŠã¯ã¬ã³ããªã³ã°ã«ã³ã¹ãããããå ŽåããããŸããéæãªããžã§ã¯ãã®äœ¿çšãæå°éã«æãããããã£ã¶ãŒãéæåºŠã®ãããªä»£æ¿ãã¯ããã¯ã䜿çšããŸãã
ãã¯ã¹ãã£æé©å
ãã¯ã¹ãã£ã¯ã3Dã¢ãã«ã«è©³çްã远å ããããã«äœ¿çšãããç»åã§ãããã¯ã¹ãã£ãæé©åããããšã§ãã¡ã¢ãªäœ¿çšéãåæžããGPUããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
- ãã¯ã¹ãã£ã®å§çž®ïŒå§çž®ãã¯ã¹ãã£åœ¢åŒïŒäŸïŒDXTãETCãASTCïŒã䜿çšããŠãã¡ã¢ãªäœ¿çšéãåæžããŸãã
- ããããããã³ã°ïŒããããããã³ã°ã䜿çšããŠãé ãã®ãªããžã§ã¯ãçšã®äœè§£å床ãã¯ã¹ãã£ããŒãžã§ã³ãäœæããŸãã
- ãã¯ã¹ãã£ã¢ãã©ã¹ïŒè€æ°ã®å°ããªãã¯ã¹ãã£ã1ã€ã®å€§ããªãã¯ã¹ãã£ã¢ãã©ã¹ã«çµåããŠããã¯ã¹ãã£åãæ¿ãã®åæ°ãåæžããŸãã
- ãã¯ã¹ãã£ãµã€ãºïŒèŠèŠçã«èš±å®¹ã§ããæå°ã®ãã¯ã¹ãã£ãµã€ãºã䜿çšããŸããäžå¿ èŠã«å€§ããªãã¯ã¹ãã£ã®äœ¿çšã¯é¿ããŠãã ããã
ãããŒã³ãŒã«ã®åæž
ã·ãŒã³ã§ã¬ã³ããªã³ã°ãããåãªããžã§ã¯ãã«ã¯ããããŒã³ãŒã«ããå¿ èŠã§ãããããŒã³ãŒã«ã®æ°ãæžããããšã¯ãäž»èŠãªæé©åãã¯ããã¯ã§ãã
- éçãããåŠçïŒåããããªã¢ã«ãæã€éçãªããžã§ã¯ãã1ã€ã®ã¡ãã·ã¥ã«çµåããŸãã
- åçãããåŠçïŒåããããªã¢ã«ãæã€åçãªããžã§ã¯ãããç¹å®ã®è¿æ¥å¶éå ã§çµåããŸããïŒå€ãã®å Žåãã²ãŒã ãšã³ãžã³ã«ãã£ãŠèªåçã«åŠçãããŸãïŒ
- GPUã€ã³ã¹ã¿ã³ã·ã³ã°ïŒ1ã€ã®ãããŒã³ãŒã«ã§ãç°ãªã倿ãæã€åãã¡ãã·ã¥ã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãã¬ã³ããªã³ã°ããŸãã
ãã¹ãããã»ãã·ã³ã°ãšãã§ã¯ã
ãã¹ãããã»ãã·ã³ã°ãšãã§ã¯ãïŒäŸïŒãã«ãŒã ãã¢ã³ããšã³ããªã¯ã«ãŒãžã§ã³ãã«ã©ãŒã°ã¬ãŒãã£ã³ã°ïŒã¯ãã²ãŒã ã®èŠèŠçãªå質ãå€§å¹ ã«åäžãããããšãã§ããŸãããèšç®è² è·ãé«ãå ŽåããããŸãããã¹ãããã»ãã·ã³ã°ãšãã§ã¯ãã¯æ§ããã«äœ¿çšããèšå®ãæé©åããŠãã ããã
- ãšãã§ã¯ãå質ã®äœäžïŒãã¹ãããã»ãã·ã³ã°ãšãã§ã¯ãã®å質èšå®ãäžããŠãããã©ãŒãã³ã¹ãåäžãããŸãã
- æé©åãããã·ã§ãŒããŒã®äœ¿çšïŒãã¹ãããã»ãã·ã³ã°ãšãã§ã¯ãã«æé©åãããã·ã§ãŒããŒã䜿çšããŠãGPUè² è·ãåæžããŸãã
- äžèŠãªãšãã§ã¯ãã®ç¡å¹åïŒäœã¹ããã¯ããã€ã¹ã§ãã¹ãããã»ãã·ã³ã°ãšãã§ã¯ããç¡å¹ã«ããŸãã
ã¡ã¢ãªæé©åãã¯ããã¯
ã¡ã¢ãªã广çã«ç®¡çããããšã¯ãã¯ã©ãã·ã¥ãé²ããã¹ã ãŒãºãªããã©ãŒãã³ã¹ã確ä¿ããããã«äžå¯æ¬ ã§ããç¹ã«ã¡ã¢ãªãªãœãŒã¹ãéãããŠããã¢ãã€ã«ããã€ã¹ã§ã¯éèŠã§ãã
ã¢ã»ãã管ç
é©åãªã¢ã»ãã管çã¯ãã¡ã¢ãªäœ¿çšéãæå°éã«æããããã«äžå¯æ¬ ã§ãã
- æªäœ¿çšã®ã¢ã»ããã®ã¢ã³ããŒãïŒäžèŠã«ãªã£ãã¢ã»ãããã¢ã³ããŒãããŠãã¡ã¢ãªãè§£æŸããŸãã
- Addressable Asset System (Unity)ïŒAddressable Asset Systemãå©çšããŠããªã³ããã³ãã§ã¢ã»ãããããŒãããã³ã¢ã³ããŒãããã¡ã¢ãªç®¡çãæ¹åããŸãã
- ã¢ã»ããã®ã¹ããªãŒãã³ã°ïŒå€§ããªã¢ã»ããïŒäŸïŒãã¯ã¹ãã£ããªãŒãã£ãªïŒãã¡ã¢ãªå šäœã«ããŒãããã®ã§ã¯ãªãããã£ã¹ã¯ããã¹ããªãŒãã³ã°ããŸãã
ããŒã¿æ§é ã®æé©å
ã¡ã¢ãªäœ¿çšéãæå°éã«æããããã«é©åãªããŒã¿æ§é ãéžæããŸãã
- ããªããã£ãããŒã¿åã®äœ¿çšïŒå¯èœãªå Žåã¯ããªããžã§ã¯ãåã§ã¯ãªãããªããã£ãããŒã¿åïŒäŸïŒintãfloatïŒã䜿çšããŸãã
- äžèŠãªã³ããŒã®åé¿ïŒããŒã¿ã®äžèŠãªã³ããŒäœæãåé¿ããŸãã代ããã«ãåç §ãŸãã¯ãã€ã³ã¿ã䜿çšããŸãã
- ããŒã¿å§çž®ã®äœ¿çšïŒããŒã¿ãå§çž®ããŠãã¡ã¢ãªãããããªã³ããåæžããŸãã
ã¡ã¢ãªãããã¡ã€ãªã³ã°
ã¡ã¢ãªãããã¡ã€ãªã³ã°ããŒã«ã䜿çšããŠãã¡ã¢ãªãªãŒã¯ãéå°ãªã¡ã¢ãªäœ¿çšéãç¹å®ããŸãã
- ã¡ã¢ãªãªãŒã¯ã®ç¹å®ïŒã¡ã¢ãªãªãŒã¯ãæ€åºãä¿®æ£ããŠãã¡ã¢ãªæ¯æžãé²ããŸãã
- ã¡ã¢ãªäœ¿çšéã®åæïŒã¡ã¢ãªäœ¿çšéã®ãã¿ãŒã³ãåæããŠãã¡ã¢ãªãæé©åã§ããé åãç¹å®ããŸãã
ãã©ãããã©ãŒã åºæã®æé©å
ããŒããŠã§ã¢ã®éããAPIã®ããªãšãŒã·ã§ã³ã«ãããæé©åæŠç¥ã¯å€ãã®å Žåãç¹å®ã®ãã©ãããã©ãŒã ã«åãããŠèª¿æŽããå¿ èŠããããŸãã
ã¢ãã€ã«æé©å
ã¢ãã€ã«ããã€ã¹ã¯ãPCãã³ã³ãœãŒã«ãšæ¯èŒããŠåŠçèœåãšã¡ã¢ãªãéãããŠããŸããã¢ãã€ã«ã²ãŒã ã®æ¬¡ã®æé©åãã¯ããã¯ã«çŠç¹ãåœãŠãŠãã ããã
- ããªãŽã³æ°ã®åæžïŒäœããªãŽã³ã¢ãã«ã䜿çšããã¡ãã·ã¥ãæé©åããŸãã
- ãã¯ã¹ãã£ã®æé©åïŒå§çž®ãã¯ã¹ãã£ãšããããããã³ã°ã䜿çšããŸãã
- ã·ã£ããŠã®ç¡å¹åïŒã·ã£ããŠãç¡å¹ã«ããããåçŽåãããã·ã£ããŠãã¯ããã¯ã䜿çšããŸãã
- ããŒãã£ã¯ã«ãšãã§ã¯ãã®åæžïŒããŒãã£ã¯ã«ã®æ°ãå¶éããããŒãã£ã¯ã«ã·ã§ãŒããŒãæé©åããŸãã
- ãããŒã³ãŒã«ã®ãããåŠçïŒãããŒã³ãŒã«ã®æ°ãæå°éã«æããŸãã
- é»å管çïŒããããªãŒæ¶è²»ãæå°éã«æããããã«ã²ãŒã ãæé©åããŸãã
ã³ã³ãœãŒã«æé©å
ã³ã³ãœãŒã«ã¯ããã管çãããããŒããŠã§ã¢ç°å¢ãæäŸããŸãããäžè²«ãããã¬ãŒã ã¬ãŒããéæããèŠèŠçãªå質ãæå€§åããããã«ã¯ãæé©åã¯äŸç¶ãšããŠéèŠã§ãã
- ãã©ãããã©ãŒã åºæAPIã®æŽ»çšïŒã¬ã³ããªã³ã°ãã¡ã¢ãªç®¡çããã«ãã¹ã¬ããã£ã³ã°ã®ããã«ãã©ãããã©ãŒã åºæAPIãæŽ»çšããŸãã
- ã¿ãŒã²ããè§£å床ã§ã®æé©åïŒã³ã³ãœãŒã«ã®ã¿ãŒã²ããè§£å床ïŒäŸïŒ1080pã4KïŒã«åãããŠã²ãŒã ãæé©åããŸãã
- ã¡ã¢ãªç®¡çïŒã¡ã¢ãªäžè¶³ã«ãªããªãããã«ãã¡ã¢ãªãæ éã«ç®¡çããŸãã
Webæé©å
Webã²ãŒã ã¯ãé«éãªããŒãæéãšWebãã©ãŠã¶ã§ã®ã¹ã ãŒãºãªããã©ãŒãã³ã¹ã®ããã«æé©åããå¿ èŠããããŸãã
- ã¢ã»ãããµã€ãºã®æé©åïŒã¢ã»ããïŒäŸïŒãã¯ã¹ãã£ããªãŒãã£ãªãã¢ãã«ïŒã®ãµã€ãºãåæžããŠãããŠã³ããŒãæéãæå°éã«æããŸãã
- å§çž®ã®äœ¿çšïŒå§çž®ãã¯ããã¯ïŒäŸïŒgzipãBrotliïŒã䜿çšããŠãã²ãŒã ãã¡ã€ã«ãå§çž®ããŸãã
- ã³ãŒãæé©åïŒé«éãªå®è¡ã®ããã«JavaScriptã³ãŒããæé©åããŸãã
- ãã£ãã·ã³ã°ïŒãã©ãŠã¶ãã£ãã·ã³ã°ã掻çšããŠãé »ç¹ã«ã¢ã¯ã»ã¹ãããã¢ã»ããã®ããŒãæéãççž®ããŸãã
ã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ãªãªãŒãã£ãšã³ã¹åãã«ã²ãŒã ãéçºããéã¯ã次ã®èŠå ãèæ ®ããŠãã ããã
- ããã€ã¹ã®å€æ§æ§ïŒãã€ãšã³ãPCããæé ãªäŸ¡æ Œã®æºåž¯é»è©±ãŸã§ãå¹ åºãããã€ã¹ã«åãããŠã²ãŒã ãæé©åããŸãã
- ãããã¯ãŒã¯æ¡ä»¶ïŒããŸããŸãªãããã¯ãŒã¯æ¡ä»¶ã«å¯ŸããŠå埩åã®ããã²ãŒã ãèšèšããŸãã
- ããŒã«ã©ã€ãºïŒã²ãŒã ã®ããã¹ãããªãŒãã£ãªãã°ã©ãã£ãã¯ã¹ãããŸããŸãªèšèªãæåã«åãããŠããŒã«ã©ã€ãºããŸãã
- ã¢ã¯ã»ã·ããªãã£ïŒé害ãæã€ãã¬ã€ã€ãŒãã²ãŒã ã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã
çµè«
ã²ãŒã æé©åã¯ãæ éãªèšç»ãåæãå®éšãå¿ èŠãšããç¶ç¶çãªããã»ã¹ã§ããã²ãŒã ã®ããã©ãŒãã³ã¹ã®ããã«ããã¯ãçè§£ãããã®ã¬ã€ãã«æŠèª¬ãããŠãããã¯ããã¯ãé©çšããããšã§ããã¬ã€ã€ãŒã«ãšã£ãŠã¹ã ãŒãºã§ã楜ãããã¢ã¯ã»ã¹ããããäœéšãäœæã§ããŸããã²ãŒã ã宿çã«ãããã¡ã€ãªã³ã°ããæé©åæŠç¥ãç¹°ãè¿ããããŒããŠã§ã¢ãšãœãããŠã§ã¢ã®çµ¶ããé²åããç¶æ³ã«é©å¿ããããšãå¿ããªãã§ãã ãããããã©ãŒãã³ã¹ãåªå ããããšã§ãã²ãŒã ããã®å¯èœæ§ãæå€§éã«åŒãåºããäžçäžã®ãã¬ã€ã€ãŒãé äºããããšãä¿èšŒã§ããŸãã
ç«¶äºã®æ¿ããã²ãŒã æ¥çã§æåããã«ã¯ãç¶ç¶çãªåŠç¿ãšææ°ã®æé©åãã¯ããã¯ã«è¿œéããããšãéµãšãªããŸããææŠãåãå ¥ããããŸããŸãªã¢ãããŒãã詊ãããã¬ã€ã€ãŒã«å¯èœãªéãæé«ã®ã²ãŒã äœéšãæäŸããããšãç®æããŠãã ããã