{"id":11749,"date":"2025-12-03T00:00:19","date_gmt":"2025-12-02T15:00:19","guid":{"rendered":"https:\/\/www.moonmile.net\/blog\/?p=11749"},"modified":"2025-12-03T09:22:28","modified_gmt":"2025-12-03T00:22:28","slug":"siv3d-%e3%81%a7%e3%82%82%e3%83%90%e3%82%a4%e3%83%96%e3%82%b3%e3%83%bc%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0","status":"publish","type":"post","link":"https:\/\/www.moonmile.net\/blog\/archives\/11749","title":{"rendered":"Siv3D \u3067\u3082\u30d0\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0!!!"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u672c\u8a18\u4e8b\u306f Siv3D &#8211; Qiita Advent Calendar 2025 &#8211; Qiita <a href=\"https:\/\/qiita.com\/advent-calendar\/2025\/siv3d\">https:\/\/qiita.com\/advent-calendar\/2025\/siv3d<\/a> \u306e 3\u65e5\u76ee\u306e\u8a18\u4e8b\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ChatGPT\u304c\u4e00\u822c\u7684\u306b\u4f7f\u308f\u308c\u59cb\u3081\u30662\u5e74\u307b\u3069\u7d4c\u3061\u3001\u4eca\u5ea6\u306f AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3068\u3044\u3046\u306e\u304c\u4eca\u5e74\u306e4\u6708\u9803\u304b\u3089\u6d41\u884c\u308a\u306f\u3058\u3081\u307e\u3057\u305f\u3002ChatGPT \u3092\u4f7f\u3063\u3066\u3001\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u30b3\u30fc\u30c9\u3092\u6559\u3048\u3066\u6559\u3048\u3066\u8cb0\u3046\u306e\u306f\u3044\u3044\u306e\u3067\u3059\u304c\u3001\u3044\u3061\u3044\u3061\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30da\u3057\u306a\u3044\u3068\u30a4\u30b1\u306a\u304b\u3063\u305f\u308a\u3001\u305d\u3082\u305d\u3082\u5927\u91cf\u306e\u30b3\u30fc\u30c9\u3092\u3092 ChatGPT \u306b\u8cbc\u308a\u4ed8\u3051\u306a\u3044\u3068\u6587\u8108\u3092\u3046\u307e\u304f\u8aad\u307f\u53d6\u3063\u3066\u304f\u308c\u306a\u3044\u3068\u3044\u3046\u554f\u984c\u304c\u3042\u308a\u307e\u3057\u305f\u3002\u304c\u3001\u3053\u308c\u3092 Visual Studio Code \u4e0a\u306a\u306e\u3067\u76f4\u63a5\u30d5\u30a1\u30a4\u30eb\u3092\u5f04\u3063\u3066\u304f\u308c\u308b\u306e\u304c AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u5f79\u5272\u3067\u3059\u3002\u3061\u3087\u3063\u3068\u5371\u967a\u306a\u6c17\u3082\u3059\u308b\uff08\u307e\u3042\u3001\u5b9f\u969b\u306e\u3068\u3053\u308d MCP \u3042\u305f\u308a\u304c\u66b4\u8d70\u3059\u308b\u3068\u5371\u967a\u306a\u3093\u3067\u3059\u304c\uff09\u3051\u308c\u3069\u3082\u3001\u3046\u307e\u304f\u4f7f\u3044\u3053\u306a\u305b\u308c\u3070\u3053\u305d\u306e\u300c\u9053\u5177\u300d\u306a\u306e\u3067\u3001\u305d\u306e\u9053\u5177\u3092\u4f7f\u3044\u3053\u306a\u3057\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3001\u3068\u3044\u3046\u306e\u304c\u3053\u306e\u8a18\u4e8b\u306e\u4e3b\u65e8\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30d0\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\uff08vibe coding\uff09\u3068\u306f\uff1f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">ChatGPT \u306b\u3061\u307e\u3061\u307e\u3068\u95a2\u6570\u306e\u30b3\u30fc\u30c9\u3092\u8cbc\u308a\u4ed8\u3051\u3066\u3044\u305f\u306e\u3068\u3068\u306f\u9055\u3063\u3066\u3001\u751f\u6210 AI \u3092\u4f7f\u3063\u3066\u4e00\u6c17\u306b\u30b3\u30fc\u30c9\u3092\u4f5c\u6210\u3057\u3066\u3057\u307e\u304a\u3046\u3068\u3044\u3046\u306e\u304c\u300c\u30d0\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u300d\u306e\u4e3b\u306a\u7279\u5fb4\u3067\u3059\u3002\u3044\u308f\u3086\u308b\u3001AI \u306b\u30b3\u30fc\u30c9\u3092\u66f8\u304b\u305b\u3066\u3057\u307e\u3063\u3066\u3001\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u697d\u3057\u307f\u304c&#8230;\u3068\u3082\u8a00\u3048\u308b\u306e\u3067\u3059\u304c\u3001\u8077\u696d\u30d7\u30ed\u30b0\u30e9\u30de\u3068\u3057\u3066\u306f\u3001<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30c6\u30b9\u30c8\u30c4\u30fc\u30eb\u306a\u3069\u306e\u305f\u3044\u304f\u3064\u306a\u30c4\u30fc\u30eb\u306f AI \u306b\u66f8\u304b\u305b\u305f\u65b9\u304c\u65e9\u3044<\/li>\n\n\n\n<li>\u4f7f\u3044\u6368\u3066\u30c4\u30fc\u30eb\uff1d\u6cbb\u5177\u306a\u3069\u306f\u3001AI \u306b\u66f8\u304b\u305b\u305f\u307b\u3046\u304c\u65e9\u3044<\/li>\n\n\n\n<li>\u6700\u521d\u306e\u3072\u306a\u5f62\u306f\u3001AI \u306b\u3084\u3063\u3066\u3082\u3089\u3063\u3066\u305f\u305f\u304d\u53f0\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u3068\u3044\u3046\u5f62\u3067\u3001\u4f7f\u3044\u6368\u3066\u3067\u3042\u3063\u305f\u308a\u6700\u521d\u306e\u30a2\u30a4\u30c7\u30a2\u3092\u5b9f\u73fe\u3059\u308b\u30c4\u30fc\u30eb\u306b\u30d0\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u4f7f\u3046\u306e\u304c\u4e00\u756a\u52b9\u679c\u7684\u3067\u3059\u3002\u305d\u306e\u5f8c\u3067\u3001\u5b9f\u969b\u306b\u4ed5\u4e8b\u306b\u4f7f\u3046\u5834\u5408\u306b\u306f\u30b3\u30fc\u30c9\u306e\u691c\u8a3c\u3084\u3089\u6b63\u78ba\u6027\u3084\u3089\u304c\u5fc5\u8981\u306b\u306a\u3063\u3066\u304f\u308b\u306e\u3067\u3001AI \u30b3\u30fc\u30c9\u305d\u306e\u307e\u307e\u3092\u4f7f\u3046\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u304c\u3001\u305d\u308c\u3067\u3082\u79c1\u81ea\u8eab\u306e\u5834\u5408\u306f\u3001<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8907\u96d1\u602a\u5947\u306b\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u30b3\u30fc\u30c9\u306e\u89e3\u6790\u3092 AI \u306b\u983c\u3080<\/li>\n\n\n\n<li>\u9577\u3005\u3068\u51fa\u3066\u304f\u308b\u30a8\u30e9\u30fc\u30b3\u30fc\u30c9\u306e\u89e3\u6790\u3092 AI \u306b\u983c\u3080<\/li>\n\n\n\n<li>\u3061\u3087\u3063\u3068\u53e4\u3081\u306e\u30b3\u30fc\u30c9\u3092 AI \u306b\u8aad\u3093\u3067\u8cb0\u3063\u3066\u3001\u4fee\u6b63\u70b9\u306e\u30a2\u30a4\u30c7\u30a2\u3092\u51fa\u3057\u3066\u8cb0\u3046<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u306e\u3088\u3046\u306a\u3053\u3068\u3092\u3084\u308a\u307e\u3059\u3002\u6700\u8fd1\u306f AI \u4efb\u305b\u306b\u3059\u308b\u30c4\u30fc\u30eb\u3084\u624b\u6cd5\u304c\u76db\u3093\u3067\u306f\u3042\u308a\u307e\u3059\u304c\u3001\u305d\u306e\u4e00\u6b69\u624b\u524d\u306e\u300cAI\u30da\u30a2\u30d7\u30ed\u300d\u304c\u304a\u52e7\u3081\u3067\u3059\u3002\u307e\u3042\u3001\u6163\u308c\u3066\u304d\u305f\u3089\u3001\u8a2d\u8a08\u66f8\u3092\u66f8\u304f\u306a\u308a\u3057\u3066\u4e00\u6669\u3050\u308b\u3050\u308b\u56de\u3059\u307b\u3046\u304c\u52b9\u679c\u7684\u3067\u306f\u3042\u308b\u306e\u3067\u3059\u304c\u3001\u6163\u308c\u306a\u3044\u3046\u3061\u306f\u3061\u307e\u3061\u307e\u8a2d\u8a08\u7528\u306e Readme.md \u3084 Agents.md\uff08\u30d5\u30a1\u30a4\u30eb\u540d\u306f\u5b9f\u306f\u4f55\u3067\u3082\u69cb\u3044\u307e\u305b\u3093\uff09\u306b\u66f8\u3044\u3066\u304a\u3044\u3066\u3001AI \u306b\u3061\u3087\u3063\u3068\u4f5c\u3063\u3066\u8cb0\u3046\u3068\u3044\u3046\u306e\u3092\u7e70\u308a\u8fd4\u3059\u306e\u304c\u3088\u3044\u3067\u3057\u3087\u3046\u3002\u81ea\u5206\u306a\u308a\u306e\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb\u3092\u63b4\u3093\u3067\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C++ \u3067\u30d0\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3067\u304d\u308b\u306e\u304b\uff1f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5df7\u306b\u516c\u958b\u3055\u308c\u3066\u3044\u308b\u3082\u306e\u306f React \u306a\u3069\u306e Node.js \u3084 TypeScript \u3092\u4f7f\u3063\u305f Web \u958b\u767a\u306e\u3082\u306e\u304c\u591a\u3044\u3067\u3057\u3087\u3046\u3002\u8a2d\u8a08\u66f8\u30ce\u30a6\u30cf\u30a6\uff08\u300c\u4ed5\u69d8\u66f8\u99c6\u52d5\u300d\u3084\u300csepc\u99c6\u52d5\u300d\u3068\u3044\u3046\u3084\u3064\u3067\u3059\uff09\u3082\u3001\u305d\u306e\u3042\u305f\u308a\u306e\u3082\u306e\u304c\u591a\u3044\u3067\u3059\u3002Web \u958b\u767a\u306e\u5834\u5408\u3001\u30b3\u30fc\u30c9\u3092\u4fee\u6b63\u3057\u305f\u9014\u7aef\u306b UI \u304c\u5909\u66f4\u306b\u306a\u308b\u3068\u304b\u3001npm  \u3092\u4f7f\u3046\u3068\u304b\u3059\u308b\u30d1\u30bf\u30fc\u30f3\u304c\u591a\u3044\u306e\u3067\u3001\u679c\u305f\u3057\u3066 C++ \u306e\u3088\u3046\u306b\u9593\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u304c\u631f\u3080\u5834\u5408\u306f\u3069\u3046\u306a\u308b\u306e\u304b\uff1f\u3000\u3068\u3044\u3046\u4e0d\u5b89\u306f\u3042\u308a\u307e\u3059\u304c\u3001\u5927\u4e08\u592b\u3067\u3059\u3002C++ \u3067\u3082\u5341\u5206\u4f7f\u3048\u307e\u3059\u3002\u3057\u304b\u3082\u3001Siv3D \u306e\u3088\u3046\u306a\u72ec\u81ea\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u3044\u308b\u5834\u5408\u3067\u3082\u3001\u6700\u8fd1\u306e\u751f\u6210 AI \u306f\u3046\u307e\u304f\u6271\u3063\u3066\u304f\u308c\u307e\u3059\u3002\u304a\u305d\u3089\u304f\u3001Siv3D \u306e\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u30b5\u30a4\u30c8 <a href=\"https:\/\/siv3d.github.io\/ja-jp\/\">https:\/\/siv3d.github.io\/ja-jp\/<\/a> \u304c\u3042\u308b\u306e\u304c\u5927\u304d\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u3064\u307e\u308a\u3001Web \u30b5\u30a4\u30c8\u306b\u3042\u308b\u60c5\u5831\u3092\u3046\u307e\u304f\u5b66\u7fd2\u3057\u3066\u3044\u308b\u306e\u304c\u3001\u73fe\u5728\u306e AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u30e2\u30c7\u30eb\u306b\u306a\u3063\u3066\u3044\u308b\u308f\u3051\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305f\u3001AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u3088\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u8a00\u8a9e\u306e\u30b3\u30f3\u30d0\u30fc\u30c8\u306e\u80fd\u529b\u3082\u4e0a\u304c\u3063\u3066\u3044\u307e\u3059\u3002\u30ed\u30b8\u30c3\u30af\u306b\u95a2\u3057\u3066\u306f\u3001\u4e00\u822c\u7684\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u8a00\u8a9e\u306f\u304b\u306a\u308a\u7db2\u7f85\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u5225\u4ef6\u3067\u306f\u3042\u308a\u307e\u3059\u304c\u3001Python \u306e\u30b3\u30fc\u30c9\u3092 VB.NET \u306e\u30b3\u30fc\u30c9\u306b\u5909\u63db\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u3042\u308b\u3044\u306f\u3001Kotlin \u3084 Swift \u306e\u30b3\u30fc\u30c9\u306b\u5909\u63db\u3057\u305f\u308a\u3057\u307e\u3059\u3002\u305d\u308c\u305e\u308c\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306a\u3069\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4f7f\u3044\u65b9\u306f\u7570\u306a\u308b\u306e\u3067\u3059\u304c\u3001\u305d\u308c\u3082\u30d7\u30ed\u30b0\u30e9\u30e0\u8a00\u8a9e\u7279\u6709\u306e\u3082\u306e\u3001\u304b\u3064\u3001\u305d\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u8a00\u8a9e\u3067\u4f7f\u308f\u308c\u3066\u3044\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u3046\u307e\u304f\u4f7f\u3063\u3066\u5909\u63db\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Siv3D\u3067\u30d0\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3057\u3066\u307f\u308b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u3042\u3001\u3053\u3053\u307e\u3067\u9577\u3005\u3068\u66f8\u3044\u3066\u3088\u3046\u3084\u304f Siv3D \u306e\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306b\u8fbf\u308a\u7740\u304f\u308f\u3051\u3067\u3059\u304c\u3001\u3042\u307e\u308a\u3084\u308b\u3053\u3068\u304c\u306a\u3044\u306e\u3067\u3001\u3061\u3087\u3063\u3068\u9577\u3005\u3068\u66f8\u3044\u3066\u3057\u307e\u3063\u3066\u3044\u308b\u3060\u3051\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"678\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-10-1024x678.png\" alt=\"\" class=\"wp-image-11751\" srcset=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-10-1024x678.png 1024w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-10-300x198.png 300w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-10-768x508.png 768w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-10.png 1522w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3067\u306f\u3001Visual Studio Code + Claude Sonnet \u3092\u4f7f\u3063\u3066\u3044\u307e\u3059\u3002GitHub Copilot \u306a\u3089\u3070\u670810\u30c9\u30eb\u3067\u5951\u7d04\u304c\u53ef\u80fd\u3067\u3059\u3002\u5b66\u751f\u306a\u3089\u3070 0 \u5186\u3067\u5229\u7528\u304c\u3067\u304d\u307e\u3059\u3002\u4ed6\u306b\u3082\u7d50\u69cb\u9ad8\u3081\u306a\u3082\u306e\u3082\u3042\u308a\u307e\u3059\u304c\u3001\u591c\u4e2d\u306b\u3050\u308b\u3050\u308b\u56de\u3055\u306a\u3044\u9650\u308a\u3053\u308c\u3067\u5341\u5206\u3067\u3059\u3002Google \u306e Gemini \u306e\u307b\u3046\u306f\u5206\u304b\u3089\u306a\u3044\u306e\u3067\u3059\u304c\u3001\u3069\u306e AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3092\u4f7f\u3063\u3066\u3082\u3060\u3044\u305f\u3044\u4f3c\u305f\u611f\u3058\u3067\u3044\u3051\u307e\u3059\u3002\u597d\u304d\u306a\u3082\u306e\u3092\u4f7f\u3063\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u3088\u3063\u3066\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u81ea\u52d5\u4f5c\u6210\u3059\u308b\u3068\u3053\u308d\u304b\u3089\u3067\u304d\u308b\u30d1\u30bf\u30fc\u30f3\u3082\u591a\u3044\u306e\u3067\u3059\u304c\u3001\u3053\u306e\u3088\u3046\u306b Visual Studio \u3092\u4f7f\u3063\u3066\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u3063\u3066\u3072\u306a\u5f62\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3060\u3051\u4f5c\u3063\u3066\u304a\u304f\u3068\u3088\u3044\u3067\u3059\u3002\u30d3\u30eb\u30c9\u3082\u81ea\u52d5\u5316\u3067\u304d\u308b\u306e\u3067\u3059\u304c\u3001\u7d50\u69cb\u9762\u5012\u306a\u306e\u3067\u3001AI \u30da\u30a2\u30d7\u30ed\u3068\u3057\u3066\u30d3\u30eb\u30c9\u306f\u4eba\u9593\u306e\u307b\u3046\u306e\u62c5\u5f53\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-11.png\"><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"610\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-11.png\" alt=\"\" class=\"wp-image-11753\" srcset=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-11.png 606w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-11-298x300.png 298w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-11-150x150.png 150w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-11-144x144.png 144w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ed5\u4e8b\u3068\u3057\u3066\u306f\u30d5\u30a1\u30a4\u30eb\u3092\u5206\u3051\u305f\u307b\u3046\u304c\u3044\u3044\u306e\u3067\u3059\u304c\u3001\u4eca\u56de\u306f\u9762\u5012\u306a\u306e\u3067 Main.cpp \u306b\u5168\u3066\u3092\u7a81\u3063\u8fbc\u307f\u307e\u3059\u3002\u3053\u306e\u521d\u671f\u72b6\u614b\u3067\u30d3\u30eb\u30c9\u304c\u3067\u304d\u308b\u3068\u3053\u308d\u307e\u3067\u78ba\u8a8d\u3057\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">agents.md \u3092\u4f5c\u6210\u3059\u308b<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9f\u306f\u30d5\u30a1\u30a4\u30eb\u540d\u306f Agents.md \u3067\u3082 Readme.md \u3067\u3082 Claudes.md \u3067\u3082\u306a\u3093\u3067\u3082\u69cb\u3044\u307e\u305b\u3093\u3002\u591c\u4e2d\u306b\u81ea\u52d5\u5316\u3057\u3088\u3046\u3068\u3059\u308b\u3068\u3001\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u6c7a\u3081\u305f\u307b\u3046\u304c\u3046\u307e\u304f AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306b\u4f1d\u308f\u308b\u306e\u3067\u3059\u304c\u3001AI \u30da\u30a2\u30d7\u30ed\u306e\u5834\u5408\u306b\u306f\u300cagents.md \u306b\u5f93\u3063\u3066\u30b3\u30fc\u30c9\u3092\u4f5c\u6210\u3057\u3066\u300d\u3068\u30d7\u30ed\u30f3\u30d7\u30c8\u3067\u4f1d\u3048\u308b\u3060\u3051\u3067\u5341\u5206\u3067\u3059\u3002\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u983c\u308a\u306b\u3046\u307e\u304f\u63a2\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"664\" height=\"623\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-13.png\" alt=\"\" class=\"wp-image-11755\" srcset=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-13.png 664w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-13-300x281.png 300w\" sizes=\"auto, (max-width: 664px) 100vw, 664px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">agents.md \u306e\u4e2d\u8eab\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"># \u30a6\u30de\u5a18\u30ec\u30fc\u30b9<br><br>## \u6982\u8981<br><br>\u30a6\u30de\u5a18\u30ec\u30fc\u30b9\u306f\u3001\u30a6\u30de\u5a18\u305f\u3061\u304c\u7af6\u3044\u5408\u3046\u30ec\u30fc\u30b9\u30a4\u30d9\u30f3\u30c8\u3067\u3059\u3002<br>\u30d7\u30ec\u30a4\u30e4\u30fc\u306f\u3001\u30a6\u30de\u5a18\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u8abf\u7bc0\u3057\u3066\u30c8\u30c3\u30d7\u3092\u76ee\u6307\u3057\u307e\u3059\u3002<br><br>## \u30eb\u30fc\u30eb<br><br>- \u30ec\u30fc\u30b9\u306f\u3001\u6a2a\u4e00\u5217\u306b\u4e26\u3093\u3060\uff15\u4eba\u306e\u30a6\u30de\u5a18\u3067\u884c\u306a\u308f\u308c\u308b<br>- \u5404\u30a6\u30de\u5a18\u306b\u306f\u3001\u30b9\u30d4\u30fc\u30c9\u3001\u30b9\u30bf\u30df\u30ca\u3001\u30d1\u30ef\u30fc\u3001\u6839\u6027\u3001\u8ce2\u3055\u306e\uff15\u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u3042\u308b<br>- \u30d7\u30ec\u30a4\u30e4\u30fc\u306f\u3001\u81ea\u5206\u306e\u30a6\u30de\u5a18\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u8abf\u6574\u3057\u3066\u30ec\u30fc\u30b9\u306b\u6311\u3080<br>- \u30ec\u30fc\u30b9\u306f\u8907\u6570\u306e\u30bf\u30fc\u30f3\u3067\u69cb\u6210\u3055\u308c\u3001\u5404\u30bf\u30fc\u30f3\u3067\u30a6\u30de\u5a18\u305f\u3061\u306f\u524d\u9032\u3059\u308b<br>- \u6700\u7d42\u7684\u306b\u30b4\u30fc\u30eb\u306b\u6700\u3082\u65e9\u304f\u5230\u9054\u3057\u305f\u30a6\u30de\u5a18\u304c\u52dd\u8005\u3068\u306a\u308b<br><br><br>## \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u8aac\u660e<br><br>- \u30b9\u30d4\u30fc\u30c9: \u30a6\u30de\u5a18\u306e\u57fa\u672c\u7684\u306a\u901f\u3055\u3092\u6c7a\u5b9a\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf<br>- \u30b9\u30bf\u30df\u30ca: \u30a6\u30de\u5a18\u304c\u9577\u8ddd\u96e2\u3092\u8d70\u308b\u969b\u306e\u6301\u4e45\u529b\u3092\u6c7a\u5b9a\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf<br>- \u30d1\u30ef\u30fc: \u30a6\u30de\u5a18\u306e\u52a0\u901f\u529b\u3084\u5742\u9053\u3067\u306e\u5f37\u3055\u3092\u6c7a\u5b9a\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf<br>- \u6839\u6027: \u30a6\u30de\u5a18\u304c\u82e6\u3057\u3044\u72b6\u6cc1\u3067\u3082\u8e0f\u3093\u5f35\u308b\u529b\u3092\u6c7a\u5b9a\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf<br>- \u8ce2\u3055: \u30a6\u30de\u5a18\u304c\u30ec\u30fc\u30b9\u4e2d\u306b\u9069\u5207\u306a\u5224\u65ad\u3092\u4e0b\u3059\u80fd\u529b\u3092\u6c7a\u5b9a\u3059\u308b\u30d1\u30e9\u30e1\u30fc\u30bf<br><br>\u30d1\u30e9\u30e1\u30fc\u30bf\u306f\u3001\u5408\u8a08 20 \u30dd\u30a4\u30f3\u30c8\u307e\u3067\u632f\u308a\u5206\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002<br><br><br>## \u30ec\u30fc\u30b9\u306e\u9032\u884c<br><br>- \u5404\u30bf\u30fc\u30f3\u3067\u30a6\u30de\u5a18\u305f\u3061\u306f\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u306b\u57fa\u3065\u3044\u3066\u524d\u9032\u8ddd\u96e2\u304c\u6c7a\u5b9a\u3055\u308c\u308b<br><br>\u30b5\u30a4\u30b3\u30ed 1\u304b\u30896\u307e\u3067\u306e\u30b5\u30a4\u30b3\u30ed\u30922\u500b\u632f\u308b\u3002<br><br>\u524d\u9032\u8ddd\u96e2 = <br>  \u30b9\u30d4\u30fc\u30c9 * \u30b5\u30a4\u30b3\u30edA +<br>  \u30b9\u30bf\u30df\u30ca * \u30b5\u30a4\u30b3\u30edB +<br>  \u30d1\u30ef\u30fc * (\u30b5\u30a4\u30b3\u30edA + \u30b5\u30a4\u30b3\u30edB) \/ 2 +<br>  \u6839\u6027 * \u30e9\u30f3\u30c0\u30e0\u5024(3\u304b\u30896) +<br>  \u8ce2\u3055 * \u30e9\u30f3\u30c0\u30e0\u5024(1\u304b\u30893)<br><br>\u5404\u30a6\u30de\u5a18\u306f\u9806\u756a\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308a\u3001\u51fa\u305f\u76ee\u306e\u5927\u304d\u3044\u9806\u306b\u524d\u9032\u8ddd\u96e2\u3092\u8a08\u7b97\u3057\u3066\u3044\u304f\u3002<br>\u6700\u521d\u306b 1000 \u30e1\u30fc\u30c8\u30eb\u306b\u5230\u9054\u3057\u305f\u30a6\u30de\u5a18\u304c\u52dd\u8005\u3068\u306a\u308b\u3002<br><br>## \u753b\u9762\u69cb\u6210<br><br>- \u30ec\u30fc\u30b9\u30c8\u30e9\u30c3\u30af: \u30a6\u30de\u5a18\u305f\u3061\u304c\u8d70\u308b\u30b3\u30fc\u30b9\u304c\u8868\u793a\u3055\u308c\u308b\u3002\u6a2a\u9577\u306e\u4e00\u5217\u3067\u3088\u3044\u3002<br>- \u81ea\u5206\u306e\u30a6\u30de\u5a18\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u5165\u308c\u308b<br>- \u4ed6\u306e\u30a6\u30de\u5a18\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u306f\u30e9\u30f3\u30c0\u30e0\u306b\u8a2d\u5b9a\u3055\u308c\u308b<br>- \u30b9\u30bf\u30fc\u30c8\u30dc\u30bf\u30f3\u3092\u62bc\u3059\u3068\u3001\u30ec\u30fc\u30b9\u304c\u958b\u59cb\u3055\u308c\u308b\u30021\u79d2\u6bce\u306b\u9806\u756a\u30b5\u30a4\u30b3\u30ed\u3092\u632f\u308b\u3002<br><br>## \u8a2d\u8a08<br><br>\/\/ \u30a6\u30de\u5a18\u306e\u69cb\u9020\u4f53<br>struct UmaMusume {<br>    name: String,<br>    speed: u8,<br>    stamina: u8,<br>    power: u8,<br>    guts: u8,<br>    wisdom: u8,<br>    position: u32,<br>};<br><br>\/\/ \u30ec\u30fc\u30b9\u306e\u69cb\u9020\u4f53<br>struct Race {<br>    uma_musumes: Vec&lt;UmaMusume&gt;,<br>    track_length: u32<br>};<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u3082\u6163\u308c\u308b\u3068\u3053\u3053\u307e\u3067\u66f8\u3051\u308b\u306e\u3067\u3059\u304c\u3001\u6163\u308c\u306a\u3044\u3046\u3061\u306f\u305d\u3093\u306a\u306b\u7d30\u304b\u304f\u66f8\u304b\u306a\u304f\u3066\u3082\u3044\u3044\u3067\u3059\u3002\u306f\u3063\u304d\u308a\u8a00\u3063\u3066\u3001\u6982\u8981\u3068\u30eb\u30fc\u30eb\u3060\u3051\u66f8\u3044\u3066\u3082\u3001\u3053\u306e\u30a6\u30de\u5a18\u30ec\u30fc\u30b9\u306f\u4f5c\u6210\u3055\u308c\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u3069\u3046\u3084\u3089\u3001\u3053\u306e\u624b\u306e\u30b2\u30fc\u30e0\u30ed\u30b8\u30c3\u30af\uff08\u30d6\u30ed\u30c3\u30af\u5d29\u3057\u3068\u304b\u30a4\u30f3\u30d9\u30fc\u30c0\u30fc\u30b2\u30fc\u30e0\u3068\u304b\uff09\u306f\u751f\u6210 AI \u306e\u5b66\u7fd2\u30c7\u30fc\u30bf\u306b\u3042\u308b\u3063\u307d\u304f\u3066\u3001\u305d\u308c\u3089\u3057\u3044\u4f55\u51e6\u304b\u3067\u898b\u305f\u3088\u3046\u306a\u3082\u306e\u3092\u3046\u307e\u304f\u51fa\u3057\u3066\u304f\u308c\u307e\u3059\u3002\u307e\u3042\u3001\u7aef\u7684\u306b\u8a00\u3048\u3070\u30d1\u30af\u308a\u306a\u306e\u3067\u3059\u304c\u3001\u3053\u3053\u3067\u306f\u76ee\u3092\u3064\u3076\u3063\u3066\u304a\u304d\u307e\u3057\u3087\u3046\u3002\u79c1\u7684\u7bc4\u56f2\u5185\u306e\u5229\u7528\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AI \u306b\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3057\u3066\u3082\u3089\u3046\u3002<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u30d7\u30ed\u30f3\u30d7\u30c8\u3067\u300cagents.md \u306b\u5f93\u3063\u3066\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3057\u3066\u300d\u3068\u983c\u3080\u3060\u3051\u3067\u3059\u3002AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306e\u307b\u3046\u3082\u3060\u3093\u3060\u3093\u8ce2\u304f\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3001\u7d50\u69cb\u306a\u30b9\u30d4\u30fc\u30c9\u3067\u30b3\u30fc\u30c9\u3092\u751f\u6210\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-14.png\"><img loading=\"lazy\" decoding=\"async\" width=\"556\" height=\"1024\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-14-556x1024.png\" alt=\"\" class=\"wp-image-11758\" srcset=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-14-556x1024.png 556w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-14-163x300.png 163w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-14-768x1413.png 768w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-14-835x1536.png 835w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-14.png 883w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u898b\u3066\u308f\u304b\u308b\u306e\u3067\u3059\u304c\u3001<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u5165\u308c\u308b\u305f\u3081\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u753b\u9762<\/li>\n\n\n\n<li>\u30ec\u30fc\u30b9\u4e2d\u306e\u753b\u9762<\/li>\n\n\n\n<li>\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u753b\u9762<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u306e3\u3064\u306b\u5206\u304b\u308c\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u8981\u7d20\u306f agents.md \u306b\u5165\u308c\u3066\u3044\u306a\u3044\u306e\u3067\u3001\u3064\u307e\u308a\u306f\u3053\u308c\u306f\u3069\u3053\u304b\u3089\u304b\u3089\u30d1\u30af\u3063\u3066\u6765\u305f\u3082\u306e\u3067\u3059\u3002\u3053\u3093\u306a\u98a8\u306b\u5178\u578b\u7684\u306a\u753b\u9762\u306e\u4f5c\u308a\u306e\u5834\u5408\u306b\u306f AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u304c\u4e00\u756a\u52b9\u7387\u7684\u306b\u52d5\u304d\u307e\u3059\u3002\u9006\u306b\u3001\u3053\u306e\uff13\u3064\u306e\u753b\u9762\u3092\u3001\u3046\u307e\u304f\u3072\u3068\u3064\u306e\u753b\u9762\u306b\u843d\u3068\u3057\u8fbc\u3080\u306e\u306f\u306a\u304b\u306a\u304b\u82e6\u52b4\u3057\u307e\u3059\u3002\u72ec\u81ea\u753b\u9762\u306f\u82e6\u624b\u306a\u3093\u3067\u3059\u3088\u306d\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u306e\u3088\u3046\u306a\u5834\u5408\u306f\u3001\u3042\u3089\u304b\u3058\u3081\u30b3\u30fc\u30c9\u306e\u307b\u3046\u306b\u30011\u753b\u9762\u306e\u914d\u7f6e\u3092\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3057\u3066\u3057\u307e\u3046\u3068\u3046\u307e\u304f\u3044\u304d\u307e\u3059\u3002agents.md \u306b\u3042\u308c\u3053\u308c\u3068\u753b\u9762\u69cb\u6210\u3092\u8a18\u8ff0\u3059\u308b\u65b9\u6cd5\u3082\u53ef\u80fd\u306a\u306e\u3067\u3059\u304c\u3001AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u81ea\u8eab\u304c\u65e2\u5b58\u306e\u30b3\u30fc\u30c9\u3092\u89e3\u6790\u3057\u306a\u304c\u3089\u3001\u305d\u3053\u306b\u4ed8\u3051\u52a0\u3048\u308b\u3088\u3046\u306b\u9032\u3081\u3066\u3044\u304f\u306e\u3067\u30b3\u30fc\u30c9\u81ea\u8eab\u3067\u4f1d\u3048\u308b\u307b\u3046\u304c\u52b9\u679c\u7684\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9006\u306b\u3001\u3046\u307e\u304f\u30b3\u30fc\u30c9\u3067\u4f1d\u308f\u3089\u306a\u3044\u3068\u304d\u306f\u3001agents.md \u3092\u4f5c\u308a\u76f4\u3057\u3066\u4e00\u304b\u3089\u30d0\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u3057\u3066\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002\u30d0\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u826f\u3044\u3068\u3053\u308d\u306f\u3001\u3046\u307e\u304f\u3044\u304b\u306a\u304b\u3063\u305f\u6642\u306f\u3059\u3079\u3066\u3092\u6368\u3066\u3066\u3084\u308a\u76f4\u3057\u304c\u3067\u304d\u308b\u3068\u3053\u308d\u3067\u3059\u3002\u3053\u308c\u304c\u4eba\u9593\u304c\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u3059\u308b\u3068\u3001\u624b\u9593\u304c\u304b\u304b\u3063\u3066\u3044\u305f\u308a\u518d\u5229\u7528\u3092\u8003\u3048\u305f\u308a\u3059\u308b\u3068\u3053\u308d\u306a\u306e\u3067\u3059\u304c\u3001\u30d0\u30a4\u30d6\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u5834\u5408\u306f\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u306e\u4f5c\u6210\u6642\u9593\u304c\u77ed\u3044\uff06\u4eba\u9593\u306e\u52b4\u529b\u304c\u5c11\u306a\u3044\u306e\u3067\u3001\u6700\u521d\u304b\u3089\u3084\u308a\u76f4\u3057\u3066\u3057\u307e\u3063\u305f\u307b\u3046\u304c\u65e9\u3044\u3067\u3059\u3002\u540c\u3058 agents.md \u3067\u3042\u3063\u3066\u3082\u3001\u78ba\u7387\u7684\u306b\u5225\u306a\u69cb\u9020\u306b\u306a\u308b\u306e\u3067\u3001\u4f55\u5ea6\u304b\u3084\u3063\u3066\u3046\u307e\u304f\u3044\u3063\u305f\u3082\u306e\u3092\u5229\u7528\u3059\u308b\u624b\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3082\u3063\u3068\u3082\u3001\u6570\u884c\u306e\u30d7\u30ed\u30f3\u30d7\u30c8\u3060\u3051\u3067\u3046\u307e\u304f\u3044\u304f\u307e\u3067 AI \u306b\u66f8\u3044\u3066\u8cb0\u3046\u3068\u3044\u3046\u5b66\u6821\u306e\u8ab2\u984c\u65b9\u5f0f\u3067\u306f\u3060\u3081\u3067\u3059\u3002\u3061\u3087\u3063\u3068\u305a\u3064 agents.md \u3092\u66f8\u304d\u5909\u3048\u3066\u3001\u3046\u307e\u304f\u30d1\u30bf\u30fc\u30f3\u3092\u307f\u3064\u3051\u308b\u306e\u304c\u4eba\u9593\u306e\u4ed5\u4e8b\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u3067\u304d\u3042\u304c\u3063\u305f Main.cpp<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u3057\u3070\u3089\u304f\u5f85\u3064\u3068 Main.cpp \u304c\u3067\u304d\u3042\u304c\u308a\u307e\u3059\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\n# include &lt;Siv3D.hpp&gt; \/\/ Siv3D v0.6.16\n\n\/\/ \u30a6\u30de\u5a18\u306e\u69cb\u9020\u4f53\nstruct UmaMusume\n{\n\tString name;\n\tint32 speed;\n\tint32 stamina;\n\tint32 power;\n\tint32 guts;\n\tint32 wisdom;\n\tint32 position;\n\tColor color;\n\n\t\/\/ \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u5408\u8a08\u3092\u8a08\u7b97\n\tint32 totalParams() const\n\t{\n\t\treturn speed + stamina + power + guts + wisdom;\n\t}\n\n\t\/\/ \u524d\u9032\u8ddd\u96e2\u3092\u8a08\u7b97\n\tint32 calculateAdvance() const\n\t{\n\t\tint32 diceA = Random(1, 6);\n\t\tint32 diceB = Random(1, 6);\n\t\tint32 gutsRandom = Random(3, 6);\n\t\tint32 wisdomRandom = Random(1, 3);\n\n\t\tint32 advance = speed * diceA\n\t\t\t+ stamina * diceB\n\t\t\t+ power * (diceA + diceB) \/ 2\n\t\t\t+ guts * gutsRandom\n\t\t\t+ wisdom * wisdomRandom;\n\n\t\treturn advance;\n\t}\n};\n\n\/\/ \u30ec\u30fc\u30b9\u306e\u69cb\u9020\u4f53\nstruct Race\n{\n\tArray&lt;UmaMusume&gt; umaMusumes;\n\tint32 trackLength = 1000;\n\tbool isRunning = false;\n\tbool isFinished = false;\n\tint32 winnerIndex = -1;\n\tStopwatch turnTimer;\n\n\t\/\/ \u30e9\u30f3\u30c0\u30e0\u306a\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u751f\u6210\uff08\u5408\u8a0820\u30dd\u30a4\u30f3\u30c8\uff09\n\tstatic UmaMusume createRandomUma(const String&amp; name, const Color&amp; color)\n\t{\n\t\tUmaMusume uma;\n\t\tuma.name = name;\n\t\tuma.color = color;\n\t\tuma.position = 0;\n\n\t\t\/\/ \u30e9\u30f3\u30c0\u30e0\u306b20\u30dd\u30a4\u30f3\u30c8\u3092\u632f\u308a\u5206\u3051\n\t\tArray&lt;int32&gt; params = { 1, 1, 1, 1, 1 }; \/\/ \u6700\u4f4e1\u305a\u3064\n\t\tint32 remaining = 15; \/\/ \u6b8b\u308a15\u30dd\u30a4\u30f3\u30c8\n\n\t\tfor (int32 i = 0; i &lt; remaining; ++i)\n\t\t{\n\t\t\tint32 idx = Random(0, 4);\n\t\t\tparams&#x5B;idx]++;\n\t\t}\n\n\t\tuma.speed = params&#x5B;0];\n\t\tuma.stamina = params&#x5B;1];\n\t\tuma.power = params&#x5B;2];\n\t\tuma.guts = params&#x5B;3];\n\t\tuma.wisdom = params&#x5B;4];\n\n\t\treturn uma;\n\t}\n\n\t\/\/ \u30ec\u30fc\u30b9\u30921\u30bf\u30fc\u30f3\u9032\u3081\u308b\n\tvoid advanceTurn()\n\t{\n\t\tif (isFinished) return;\n\n\t\t\/\/ \u5404\u30a6\u30de\u5a18\u306e\u524d\u9032\u8ddd\u96e2\u3092\u8a08\u7b97\n\t\tArray&lt;std::pair&lt;int32, int32&gt;&gt; advances; \/\/ (\u524d\u9032\u8ddd\u96e2, \u30a4\u30f3\u30c7\u30c3\u30af\u30b9)\n\t\tfor (size_t i = 0; i &lt; umaMusumes.size(); ++i)\n\t\t{\n\t\t\tadvances.push_back({ umaMusumes&#x5B;i].calculateAdvance(), static_cast&lt;int32&gt;(i) });\n\t\t}\n\n\t\t\/\/ \u524d\u9032\u8ddd\u96e2\u306e\u5927\u304d\u3044\u9806\u306b\u30bd\u30fc\u30c8\n\t\tstd::sort(advances.begin(), advances.end(), &#x5B;](const auto&amp; a, const auto&amp; b) {\n\t\t\treturn a.first &gt; b.first;\n\t\t});\n\n\t\t\/\/ \u9806\u756a\u306b\u524d\u9032\n\t\tfor (const auto&amp; &#x5B;advance, idx] : advances)\n\t\t{\n\t\t\tumaMusumes&#x5B;idx].position += advance;\n\n\t\t\t\/\/ \u30b4\u30fc\u30eb\u5224\u5b9a\n\t\t\tif (umaMusumes&#x5B;idx].position &gt;= trackLength &amp;&amp; !isFinished)\n\t\t\t{\n\t\t\t\tisFinished = true;\n\t\t\t\twinnerIndex = idx;\n\t\t\t\tisRunning = false;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvoid Main()\n{\n\t\/\/ \u30a6\u30a3\u30f3\u30c9\u30a6\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\n\tWindow::Resize(1200, 700);\n\tScene::SetBackground(ColorF{ 0.3, 0.6, 0.3 });\n\n\t\/\/ \u30d5\u30a9\u30f3\u30c8\u3092\u4f5c\u6210\n\tconst Font font{ FontMethod::MSDF, 48, Typeface::Bold };\n\tconst Font smallFont{ FontMethod::MSDF, 32 };\n\n\t\/\/ \u30a6\u30de\u5a18\u306e\u7d75\u6587\u5b57\n\tconst Texture umaEmoji{ U&quot;\ud83c\udfc7&quot;_emoji };\n\n\t\/\/ \u30a6\u30de\u5a18\u306e\u540d\u524d\u3068\u8272\n\tconst Array&lt;String&gt; umaNames = { U&quot;\u30d7\u30ec\u30a4\u30e4\u30fc&quot;, U&quot;\u30b9\u30da\u30b7\u30e3\u30eb&quot;, U&quot;\u30b5\u30a4\u30ec\u30f3\u30b9&quot;, U&quot;\u30c8\u30a6\u30ab\u30a4&quot;, U&quot;\u30de\u30c1\u30ab\u30cd&quot; };\n\tconst Array&lt;Color&gt; umaColors = { Palette::Red, Palette::Blue, Palette::Green, Palette::Orange, Palette::Purple };\n\n\t\/\/ \u30ec\u30fc\u30b9\n\tRace race;\n\n\t\/\/ \u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\n\tdouble playerSpeed = 4;\n\tdouble playerStamina = 4;\n\tdouble playerPower = 4;\n\tdouble playerGuts = 4;\n\tdouble playerWisdom = 4;\n\n\t\/\/ \u30b2\u30fc\u30e0\u72b6\u614b\n\tenum class GameState { Setup, Racing, Result };\n\tGameState state = GameState::Setup;\n\n\twhile (System::Update())\n\t{\n\t\t\/\/ \u30bf\u30a4\u30c8\u30eb\u8868\u793a\n\t\tfont(U&quot;\ud83c\udfc7 \u30a6\u30de\u5a18\u30ec\u30fc\u30b9 \ud83c\udfc7&quot;).drawAt(48, Vec2{ 600, 40 }, Palette::White);\n\n\t\tif (state == GameState::Setup)\n\t\t{\n\t\t\t\/\/ \u30d1\u30e9\u30e1\u30fc\u30bf\u8a2d\u5b9a\u753b\u9762\n\t\t\tfont(U&quot;\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044&quot;).drawAt(32, Vec2{ 600, 100 }, Palette::Yellow);\n\n\t\t\tconst int32 sliderX = 400;\n\t\t\tconst int32 sliderWidth = 200;\n\t\t\tint32 y = 150;\n\n\t\t\t\/\/ \u30d1\u30e9\u30e1\u30fc\u30bf\u30b9\u30e9\u30a4\u30c0\u30fc\n\t\t\tSimpleGUI::Slider(U&quot;\u30b9\u30d4\u30fc\u30c9: {:.0f}&quot;_fmt(playerSpeed), playerSpeed, 1.0, 10.0, Vec2{ sliderX, y }, 180, sliderWidth);\n\t\t\ty += 50;\n\t\t\tSimpleGUI::Slider(U&quot;\u30b9\u30bf\u30df\u30ca: {:.0f}&quot;_fmt(playerStamina), playerStamina, 1.0, 10.0, Vec2{ sliderX, y }, 180, sliderWidth);\n\t\t\ty += 50;\n\t\t\tSimpleGUI::Slider(U&quot;\u30d1\u30ef\u30fc: {:.0f}&quot;_fmt(playerPower), playerPower, 1.0, 10.0, Vec2{ sliderX, y }, 180, sliderWidth);\n\t\t\ty += 50;\n\t\t\tSimpleGUI::Slider(U&quot;\u6839\u6027: {:.0f}&quot;_fmt(playerGuts), playerGuts, 1.0, 10.0, Vec2{ sliderX, y }, 180, sliderWidth);\n\t\t\ty += 50;\n\t\t\tSimpleGUI::Slider(U&quot;\u8ce2\u3055: {:.0f}&quot;_fmt(playerWisdom), playerWisdom, 1.0, 10.0, Vec2{ sliderX, y }, 180, sliderWidth);\n\n\t\t\t\/\/ \u5408\u8a08\u30dd\u30a4\u30f3\u30c8\u8868\u793a\n\t\t\tint32 total = static_cast&lt;int32&gt;(playerSpeed) + static_cast&lt;int32&gt;(playerStamina)\n\t\t\t\t+ static_cast&lt;int32&gt;(playerPower) + static_cast&lt;int32&gt;(playerGuts) + static_cast&lt;int32&gt;(playerWisdom);\n\n\t\t\tColor totalColor = (total &lt;= 20) ? Palette::Lime : Palette::Red;\n\t\t\tfont(U&quot;\u5408\u8a08: {} \/ 20 \u30dd\u30a4\u30f3\u30c8&quot;_fmt(total)).drawAt(28, Vec2{ 600, 430 }, totalColor);\n\n\t\t\tif (total &gt; 20)\n\t\t\t{\n\t\t\t\tsmallFont(U&quot;\u203b \u5408\u8a0820\u30dd\u30a4\u30f3\u30c8\u4ee5\u4e0b\u306b\u3057\u3066\u304f\u3060\u3055\u3044&quot;).drawAt(24, Vec2{ 600, 470 }, Palette::Red);\n\t\t\t}\n\n\t\t\t\/\/ \u30b9\u30bf\u30fc\u30c8\u30dc\u30bf\u30f3\n\t\t\tif (SimpleGUI::Button(U&quot;\u30ec\u30fc\u30b9\u30b9\u30bf\u30fc\u30c8\uff01&quot;, Vec2{ 500, 520 }, 200, (total &lt;= 20)))\n\t\t\t{\n\t\t\t\t\/\/ \u30ec\u30fc\u30b9\u3092\u521d\u671f\u5316\uff08\u4ee3\u5165\u3067\u306f\u306a\u304f\u30e1\u30f3\u30d0\u3054\u3068\u306b\u518d\u521d\u671f\u5316\uff09\n\t\t\t\trace.umaMusumes.clear();\n\t\t\t\trace.trackLength = 1000;\n\t\t\t\trace.isRunning = false;\n\t\t\t\trace.isFinished = false;\n\t\t\t\trace.winnerIndex = -1;\n\t\t\t\trace.turnTimer.restart(); \/\/ \u30bf\u30a4\u30de\u30fc\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u3066\u518d\u30b9\u30bf\u30fc\u30c8\uff08\u65e2\u5b58\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u518d\u5229\u7528\uff09\n\n\t\t\t\t\/\/ \u30d7\u30ec\u30a4\u30e4\u30fc\u306e\u30a6\u30de\u5a18\u3092\u4f5c\u6210\n\t\t\t\tUmaMusume player;\n\t\t\t\tplayer.name = umaNames&#x5B;0];\n\t\t\t\tplayer.color = umaColors&#x5B;0];\n\t\t\t\tplayer.speed = static_cast&lt;int32&gt;(playerSpeed);\n\t\t\t\tplayer.stamina = static_cast&lt;int32&gt;(playerStamina);\n\t\t\t\tplayer.power = static_cast&lt;int32&gt;(playerPower);\n\t\t\t\tplayer.guts = static_cast&lt;int32&gt;(playerGuts);\n\t\t\t\tplayer.wisdom = static_cast&lt;int32&gt;(playerWisdom);\n\t\t\t\tplayer.position = 0;\n\t\t\t\trace.umaMusumes.push_back(player);\n\n\t\t\t\t\/\/ \u4ed6\u306e\u30a6\u30de\u5a18\u3092\u30e9\u30f3\u30c0\u30e0\u306b\u4f5c\u6210\n\t\t\t\tfor (size_t i = 1; i &lt; umaNames.size(); ++i)\n\t\t\t\t{\n\t\t\t\t\trace.umaMusumes.push_back(Race::createRandomUma(umaNames&#x5B;i], umaColors&#x5B;i]));\n\t\t\t\t}\n\n\t\t\t\trace.isRunning = true;\n\t\t\t\trace.turnTimer.restart();\n\t\t\t\tstate = GameState::Racing;\n\t\t\t}\n\n\t\t\t\/\/ \u30d1\u30e9\u30e1\u30fc\u30bf\u8aac\u660e\n\t\t\ty = 580;\n\t\t\tsmallFont(U&quot;\u30b9\u30d4\u30fc\u30c9: \u57fa\u672c\u7684\u306a\u901f\u3055 | \u30b9\u30bf\u30df\u30ca: \u6301\u4e45\u529b | \u30d1\u30ef\u30fc: \u52a0\u901f\u529b&quot;).draw(18, Vec2{ 200, y }, Palette::White);\n\t\t\tsmallFont(U&quot;\u6839\u6027: \u8e0f\u3093\u5f35\u308b\u529b | \u8ce2\u3055: \u5224\u65ad\u529b&quot;).draw(18, Vec2{ 200, y + 30 }, Palette::White);\n\t\t}\n\t\telse if (state == GameState::Racing)\n\t\t{\n\t\t\t\/\/ \u30ec\u30fc\u30b9\u753b\u9762\n\t\t\tconst int32 trackY = 200;\n\t\t\tconst int32 trackHeight = 80;\n\t\t\tconst int32 trackStartX = 100;\n\t\t\tconst int32 trackWidth = 1000;\n\n\t\t\t\/\/ \u30c8\u30e9\u30c3\u30af\u80cc\u666f\u3092\u63cf\u753b\n\t\t\tfor (size_t i = 0; i &lt; race.umaMusumes.size(); ++i)\n\t\t\t{\n\t\t\t\tint32 laneY = trackY + static_cast&lt;int32&gt;(i) * trackHeight;\n\n\t\t\t\t\/\/ \u30ec\u30fc\u30f3\u80cc\u666f\n\t\t\t\tRect{ trackStartX, laneY, trackWidth, trackHeight - 5 }\n\t\t\t\t\t.draw(ColorF{ 0.8, 0.6, 0.4 })\n\t\t\t\t\t.drawFrame(2, Palette::Brown);\n\n\t\t\t\t\/\/ \u30b4\u30fc\u30eb\u30e9\u30a4\u30f3\n\t\t\t\tRect{ trackStartX + trackWidth - 10, laneY, 10, trackHeight - 5 }.draw(Palette::Red);\n\t\t\t}\n\n\t\t\t\/\/ 1\u79d2\u3054\u3068\u306b\u30bf\u30fc\u30f3\u3092\u9032\u3081\u308b\n\t\t\tif (race.isRunning &amp;&amp; race.turnTimer.ms() &gt;= 1000)\n\t\t\t{\n\t\t\t\trace.advanceTurn();\n\t\t\t\trace.turnTimer.restart();\n\t\t\t}\n\n\t\t\t\/\/ \u30a6\u30de\u5a18\u3092\u63cf\u753b\n\t\t\tfor (size_t i = 0; i &lt; race.umaMusumes.size(); ++i)\n\t\t\t{\n\t\t\t\tconst auto&amp; uma = race.umaMusumes&#x5B;i];\n\t\t\t\tint32 laneY = trackY + static_cast&lt;int32&gt;(i) * trackHeight;\n\n\t\t\t\t\/\/ \u4f4d\u7f6e\u3092\u8a08\u7b97\uff08\u30c8\u30e9\u30c3\u30af\u5e45\u306b\u5408\u308f\u305b\u3066\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\uff09\n\t\t\t\tdouble progress = static_cast&lt;double&gt;(uma.position) \/ race.trackLength;\n\t\t\t\tprogress = Min(progress, 1.0);\n\t\t\t\tint32 drawX = trackStartX + static_cast&lt;int32&gt;(progress * (trackWidth - 50));\n\n\t\t\t\t\/\/ \u30a6\u30de\u5a18\u306e\u7d75\u6587\u5b57\u3092\u63cf\u753b\n\t\t\t\tumaEmoji.scaled(0.5).drawAt(drawX + 25, laneY + trackHeight \/ 2 - 2);\n\n\t\t\t\t\/\/ \u540d\u524d\u3068\u4f4d\u7f6e\u3092\u8868\u793a\n\t\t\t\tsmallFont(uma.name).draw(18, Vec2{ 10, laneY + 20 }, uma.color);\n\t\t\t\tsmallFont(U&quot;{}m&quot;_fmt(uma.position)).draw(16, Vec2{ 10, laneY + 45 }, Palette::White);\n\t\t\t}\n\n\t\t\t\/\/ \u30ec\u30fc\u30b9\u60c5\u5831\n\t\t\tfont(U&quot;\u30b4\u30fc\u30eb: {}m&quot;_fmt(race.trackLength)).draw(24, Vec2{ 100, 620 }, Palette::White);\n\n\t\t\t\/\/ \u30ec\u30fc\u30b9\u7d42\u4e86\u5224\u5b9a\n\t\t\tif (race.isFinished)\n\t\t\t{\n\t\t\t\tstate = GameState::Result;\n\t\t\t}\n\t\t}\n\t\telse if (state == GameState::Result)\n\t\t{\n\t\t\t\/\/ \u7d50\u679c\u753b\u9762\n\t\t\tfont(U&quot;\ud83c\udf89 \u30ec\u30fc\u30b9\u7d42\u4e86\uff01 \ud83c\udf89&quot;).drawAt(48, Vec2{ 600, 150 }, Palette::Yellow);\n\n\t\t\tif (race.winnerIndex &gt;= 0)\n\t\t\t{\n\t\t\t\tconst auto&amp; winner = race.umaMusumes&#x5B;race.winnerIndex];\n\t\t\t\tfont(U&quot;\u512a\u52dd: {}&quot;_fmt(winner.name)).drawAt(40, Vec2{ 600, 220 }, winner.color);\n\n\t\t\t\tif (race.winnerIndex == 0)\n\t\t\t\t{\n\t\t\t\t\tfont(U&quot;\u304a\u3081\u3067\u3068\u3046\u3054\u3056\u3044\u307e\u3059\uff01&quot;).drawAt(32, Vec2{ 600, 280 }, Palette::Lime);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tfont(U&quot;\u6b8b\u5ff5...\u6b21\u306f\u52dd\u3066\u308b\u304b\u3082\uff01&quot;).drawAt(32, Vec2{ 600, 280 }, Palette::Orange);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\/\/ \u9806\u4f4d\u8868\u793a\n\t\t\tArray&lt;std::pair&lt;int32, size_t&gt;&gt; ranking;\n\t\t\tfor (size_t i = 0; i &lt; race.umaMusumes.size(); ++i)\n\t\t\t{\n\t\t\t\tranking.push_back({ race.umaMusumes&#x5B;i].position, i });\n\t\t\t}\n\t\t\tstd::sort(ranking.begin(), ranking.end(), &#x5B;](const auto&amp; a, const auto&amp; b) {\n\t\t\t\treturn a.first &gt; b.first;\n\t\t\t});\n\n\t\t\tint32 y = 340;\n\t\t\tsmallFont(U&quot;\u3010\u6700\u7d42\u9806\u4f4d\u3011&quot;).draw(24, Vec2{ 500, y }, Palette::White);\n\t\t\ty += 40;\n\n\t\t\tfor (size_t rank = 0; rank &lt; ranking.size(); ++rank)\n\t\t\t{\n\t\t\t\tconst auto&amp; uma = race.umaMusumes&#x5B;ranking&#x5B;rank].second];\n\t\t\t\tsmallFont(U&quot;{}\u4f4d: {} ({}m)&quot;_fmt(rank + 1, uma.name, uma.position))\n\t\t\t\t\t.draw(22, Vec2{ 480, y }, uma.color);\n\t\t\t\ty += 35;\n\t\t\t}\n\n\t\t\t\/\/ \u30ea\u30c8\u30e9\u30a4\u30dc\u30bf\u30f3\n\t\t\tif (SimpleGUI::Button(U&quot;\u3082\u3046\u4e00\u5ea6\u30d7\u30ec\u30a4&quot;, Vec2{ 500, 580 }, 200))\n\t\t\t{\n\t\t\t\tstate = GameState::Setup;\n\t\t\t}\n\t\t}\n\t}\n}\n\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u5b9f\u306f\u3001\u751f\u6210\u3055\u308c\u308b\u30b3\u30fc\u30c9\u306f\u30d3\u30eb\u30c9\u304c\u901a\u308b\u3068\u306f\u9650\u308a\u307e\u305b\u3093\u3002\u4eca\u5f8c\u306e AI \u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3067\u306f\u6539\u5584\u3055\u308c\u308b\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u6587\u6cd5\u7684\u306b\u3061\u3087\u3063\u3068\u9593\u9055\u3063\u3066\u3044\u305f\u308a\u3001\u95a2\u6570\u306e\u6574\u5408\u6027\u304c\u5408\u308f\u306a\u3044\u3068\u3053\u308d\u304c\u3061\u3087\u3053\u3061\u3087\u3053\u51fa\u3066\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u30b3\u30fc\u30c9\u3067\u306f\u65e2\u306b\u4fee\u6b63\u3057\u3066\u3042\u308a\u307e\u3059\u304c\u3001\u30b9\u30bf\u30fc\u30c8\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u305f\u3068\u304d\u306e\u300c\/\/ \u30ec\u30fc\u30b9\u3092\u521d\u671f\u5316\uff08\u4ee3\u5165\u3067\u306f\u306a\u304f\u30e1\u30f3\u30d0\u3054\u3068\u306b\u518d\u521d\u671f\u5316\uff09\u300d\u306e\u90e8\u5206\u3067\u3001Race \u69cb\u9020\u4f53\u306e\u521d\u671f\u5316\u3067\u30b3\u30f3\u30d1\u30a4\u30eb\u30a8\u30e9\u30fc\u304c\u3067\u3066\u3044\u307e\u3057\u305f\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nrace = Race{} ;\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Race \u69cb\u9020\u4f53\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u306a\u3044\u306e\u3067\u3001\u3053\u308c\u3067\u306f\u99c4\u76ee\u3067\u3059\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: cpp; title: ; notranslate\" title=\"\">\nrace.umaMusumes.clear();\nrace.trackLength = 1000;\nrace.isRunning = false;\nrace.isFinished = false;\nrace.winnerIndex = -1;\nrace.turnTimer.restart(); \/\/ \u30bf\u30a4\u30de\u30fc\u3092\u30ea\u30bb\u30c3\u30c8\u3057\u3066\u518d\u30b9\u30bf\u30fc\u30c8\uff08\u65e2\u5b58\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u518d\u5229\u7528\uff09\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">\u307e\u3042\u3001\u4ed6\u306b\u3082\u4fee\u6b63\u70b9\u306f\u3042\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u3001\u3072\u3068\u307e\u305a\u30d3\u30eb\u30c9\u3057\u3066\u52d5\u304b\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u52d5\u4f5c\u78ba\u8a8d<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-15.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"623\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-15-1024x623.png\" alt=\"\" class=\"wp-image-11762\" srcset=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-15-1024x623.png 1024w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-15-300x182.png 300w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-15-768x467.png 768w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-15-1536x934.png 1536w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-15.png 1804w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-16.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"623\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-16-1024x623.png\" alt=\"\" class=\"wp-image-11763\" srcset=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-16-1024x623.png 1024w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-16-300x182.png 300w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-16-768x467.png 768w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-16-1536x934.png 1536w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-16.png 1804w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-17.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"623\" src=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-17-1024x623.png\" alt=\"\" class=\"wp-image-11764\" srcset=\"https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-17-1024x623.png 1024w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-17-300x182.png 300w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-17-768x467.png 768w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-17-1536x934.png 1536w, https:\/\/www.moonmile.net\/blog\/wp-content\/uploads\/2025\/11\/image-17.png 1804w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u52d5\u304b\u3059\u3068\u3001\u99ac\u304c\u5f8c\u308d\u5411\u304d\u306b\u8d70\u3063\u3066\u3057\u307e\u3063\u3066\u3044\u308b\u3068\u304b\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u4fdd\u5b58\u3067\u304d\u306a\u3044\u3068\u304b\u3001\u30b1\u30fc\u30b9\u7d50\u679c\u304c\u84c4\u7a4d\u3055\u308c\u306a\u3044\u3068\u304b\u3001\u3044\u308d\u3044\u308d\u6539\u5584\u70b9\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u306f agents.md \u306b\u66f8\u304d\u8fbc\u3093\u3067\u300c\u3053\u306e\u90e8\u5206\u3092\u4fee\u6b63\u3057\u3066\u300d\u3068\u30d7\u30ed\u30f3\u30d7\u30c8\u306b\u5165\u308c\u3066\u3082\u3088\u3044\u3057\u3001\u81ea\u5206\u3067\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u76f4\u3057\u3066\u3082\u3088\u3044\u3067\u3059\u3002\u30b3\u30fc\u30c9\u306e\u30b3\u30e1\u30f3\u30c8\u306b\u4fee\u6b63\u6848\u3092\u66f8\u3044\u3066\u3001\u300c\u3053\u306e\u90e8\u5206\u3092\u5b9f\u88c5\u3057\u3066\u300d\u3067\u3082 AI \u304c\u30b3\u30fc\u30c9\u3092\u4f5c\u3063\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3067\u306f\u3001AI \u30da\u30a2\u30d7\u30ed\u3067\u3001\u3088\u3044 Siv3D \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u30e9\u30a4\u30d5\u3092\uff01<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">moonmile\/siv3d_uma_race <a href=\"https:\/\/github.com\/moonmile\/siv3d_uma_race\">https:\/\/github.com\/moonmile\/siv3d_uma_race<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u8a18\u4e8b\u306f Siv3D &#8211; Qiita Advent Calendar 2025 &#8211; Qiita https:\/\/qiita.com\/advent-calendar\/2025\/siv3d \u306e 3\u65e5\u76ee &hellip; <a href=\"https:\/\/www.moonmile.net\/blog\/archives\/11749\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-11749","post","type-post","status-publish","format-standard","hentry","category-dev"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/11749","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/comments?post=11749"}],"version-history":[{"count":11,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/11749\/revisions"}],"predecessor-version":[{"id":11794,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/posts\/11749\/revisions\/11794"}],"wp:attachment":[{"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/media?parent=11749"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/categories?post=11749"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.moonmile.net\/blog\/wp-json\/wp\/v2\/tags?post=11749"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}