maimat (Mass Images Manipulation Tool) ã¯ããããç»ååŠç (ãµã€ãºå€æŽãšå§çž®) ã®ããã«èšèšããããªãŒãã³ãœãŒã¹ ããŒã«ã§ãããã®ã¢ããªã±ãŒã·ã§ã³ã¯ Python 3.10 以éã§æžãããŠãããåŠçãšã³ãžã³ãšã㊠ImageMagick ã䜿çšããŸãã
Author: demensdeum
-
Donki Hills 㯠1 幎以äžã«ããã£ãŠ Steam ã«æ£åŒã«ç»å ŽããŸãã!
Donki Hills 㯠1 幎以äžã«ããã£ãŠ Steam ã«ç»å ŽããŠããŸãã
ã¡ããã© 1 幎åã«ãã®ãããžã§ã¯ãã Steam ããŒãžã«ç»å Žãããã以æ¥ãã²ãŒã ã¯å€§ããªé²æ©ãéããŠããŸããããã®éããã³ããã«ãºãã©ã®ãããªæ¹åã«çºå±ãã¹ããã«ã€ããŠãå€ãã®å®éšã倿Žã暡玢ãè¡ãããŸããã
ã²ãŒã ãã¬ã€ã®äœæ¥ã¯ç¶ç¶ããŠãããçŸåšããããžã§ã¯ãã¯åŸã ã«ãã®æ¬åœã®å§¿ãç²åŸãã€ã€ãããŸãããã³ã ãã«ãºã¯ãã³ã¡ãã£ã®äžäººç§°ããŒã°ã©ã€ã¯ ããã㣠ãµãã€ãã« ãã©ãŒãšããæ¬æ¥ã®å§¿ã«å€ããå§ããŠããŸãã
ãã©ãŒãšãŠãŒã¢ã¢ãæ¢æ€ããããŠäºæãã¬ç¶æ³ãåºäŒãå¥åŠãªåéºãããªãã¯è¡ã«è¡ããç©ãæ¢ããè¬ãè§£ããããªã¢ã«ã€ãªããç§å¯ãåŸã ã«æããã«ããªããã°ãªããŸããã
以äžã¯ããããã¿ã€ãã®æ¬¡ã®ãã¬ã€ãã¹ãããã®æ°ããã¹ã¯ãªãŒã³ã·ã§ããã§ããããã¯ãŸã ã²ãŒã ã®æçµçãªå€èгã§ã¯ãããŸããããè¡ã®é°å²æ°ãšãããžã§ã¯ããé²ãã§ããæ¹åæ§ããã§ã«æããããšãã§ããŸãã
ããªãã®åå¿ããšãŠã楜ãã¿ã«ããŠããŸã! 👀
æ°ããæ¹åæ§ã¯ã©ãã§ããïŒã²ãŒã ã®é°å²æ°ãã¢ã€ãã¢ã«ã€ããŠã¯ã©ã®ãããªå°è±¡ããæã¡ã§ããïŒãã³ããã«ãºããŠã£ãã·ã¥ãªã¹ãã«è¿œå ããéçºããã©ããŒãããããžã§ã¯ãããµããŒãããŠãã ãã£ãçæ§ã«æè¬ããŸã❤️
ãŸã ãŸã ããããã®å®éšãæ°ããä»çµã¿ããããŠå¥åŠãªåéºãåŸ ã£ãŠããŸãã
-
ã²ãŒã çšã©ãããããããã»ããµã®ã¹ããããªã³ã°ããã€ãã¹ãã
ææ°ã®ã²ãŒã çšã©ãããããã®ã¡ãŒã«ãŒã¯ãããã»ããµãè² è·æã«æå€§ 90 床ãããã«ã¯ 100 床ã«éããããã«ã·ã¹ãã ãæ§æããŠããããšããããããŸãããã®åé¡ã¯ãèŠæ±ã®å³ããã²ãŒã ãéãäœæ¥ãå®è¡ããå€ã«ç¹ã«æ·±å»ã§ãã
極床ã®å ç±ã«ãããã¹ãããã«ãæå¹ã«ãªã (ç©ççãªæå·ãé²ãããã«ããã»ããµåšæ³¢æ°ããªã»ããããŸã)ãããã©ãŒãã³ã¹ã®æ¥æ¿ãªäœäžãããªãŒãºãFPS ã®äœäžã«ã€ãªãããŸããéç±ã«å¯ŸåŠããæ¹æ³ (å·åŽãããã®äœ¿çšããé»å§äœäžãŸã§) ã¯æ°å€ããããŸããããã®èšäºã§ã¯ãWindows 11 以åã®ããŒãžã§ã³ã®ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«é¢é£ããæãç°¡åã§æéã®æ¹æ³ã«ã€ããŠèª¬æããŸãã
ãã®æ¹æ³ã¯ã黿ºèšå®ãéããŠããã»ããµã®æå€§ç¶æ ãå¶éããããšã§ãã
1. Windows æ€çŽ¢ãŸãã¯ã³ã³ãããŒã« ããã«ãã黿ºãªãã·ã§ã³ãéããŸãã
2. ã¢ã¯ãã£ããªé»æºãã©ã³ã§ã远å ãã©ã¡ãŒã¿ã倿Žããã»ã¯ã·ã§ã³ã«ç§»åããŸãã
3. ããã»ããµé»æºç®¡ç ãã©ã³ããèŠã€ããŸãã
4. [æå€§ããã»ããµç¶æ ] ãªãã·ã§ã³ãå±éããŸãã
5.ãã©ã°ã€ã³ã®å€ã 100% ãã 80% 以äžã«å€æŽããŸãããããã®èšå®ãé©çšãããšãããã»ããµãŒã¯éå°ãªç±ãçºçãããæ¥µç«¯ãªåšæ³¢æ°ãŸã§èªåçã«ãªãŒããŒã¯ããã¯ããªããªããŸããæå€§ããŒã¯ããã©ãŒãã³ã¹ã¯çŽ 20% äœäžããŸãããããã»ããµãŒãéç±ããããšã¯ãªããªããŸããã¹ããããªã³ã°ãè¡ããã«åšæ³¢æ°ãäžããŠå®å®ããåäœãè¡ãããšã¯ã100 åºŠæªæºã®æž©åºŠã§ã®éç±ã«ããããã©ãŒãã³ã¹ã®æ¥æ¿ãªæ¥äžæãããã¯ããã«åªããŠãããã·ã¹ãã ã«ãšã£ãŠå¿«é©ã§ãã
ã©ãããããã¯ããããåºæã§ããããããŠãŒã¶ãŒã¯å®éšããŠãéç±ããããšãªãæãŸããããã©ãŒãã³ã¹ãæäŸã§ããæé©ãªãã©ã³ã¹ (ããŒã»ã³ããŒãž) ãèŠã€ããããšããå§ãããŸãã
-
Aleka ã¯ãFlutter ã«åºã¥ããŠæ§ç¯ãããã¯ãã¹ãã©ãããã©ãŒã ã®æç»ã¢ããªã§ã
Aleka ã¯ãFlutter ã§æžããã軜éã§é«éãªæç»ã¢ããªã§ãããã©ãŠã¶ãŒããã¹ã¯ããã (WindowsãmacOSãLinux)ãã¢ãã€ã« ããã€ã¹ (iOSãAndroid) ãªã©ãã©ãã§ãæ©èœããŸãã
ãã³ãããã®äžã«ã¯ãã¥ã¢ããŒãããããªã¢ã«3ãšçްéšãžã®ãã ãããè©°ãŸã£ãŠããŸãã
ãã£ã³ã¹
- ããªãŒãã³ãæç»: äºæ¬¡ããžã§è£éã«ããæ»ãããªã¹ãããŒã¯ã
- 15 è²ã®ãã¬ãã: èŠèŠçãªè¡šç€ºã§ç°¡åã«éžæã§ããŸãã
- ãã©ã· ãµã€ãº: ã¹ã©ã€ããŒã§ 1 ïœ 30 ãã¯ã»ã«ã®ç¯å²ã§èª¿æŽã§ããŸãã
- å ã«æ»ã: ã¹ãããŒã¯ãå ã«æ»ããŸãã
- ã¯ã³ã¯ãªãã¯ã§ãã£ã³ãã¹ãã¯ãªã¢ããŸã:
- ãã©ãã ãã£ã«: æ»ãããªãšããžã«å¯Ÿãã蚱容å€ãåãã BFSã
- ä¿å:
.aleka圢åŒïŒJSONïŒã - èªã¿èŸŒã¿äž: 以åã«ä¿åããå³é¢ãéããŠç¶è¡ããŸãã
- PNG ãšã¯ã¹ããŒã: ãã£ã³ãã¹ã 3 åã®è§£å床ã§ãã£ããã£ããŸãã
- 🎬 ã¢ãã¡ãŒã·ã§ã³ ã¢ãŒã: ã¿ã€ã ã©ã€ã³ã䜿çšãããã¬ãŒã ããšã®ã¢ãã¡ãŒã·ã§ã³:
- ããããç¬èªã®ãã¶ã€ã³ãæã€ãã¬ãŒã ã®è¿œå ãšåé€
- ãã¬ãŒã æé㯠50 ããªç§ãã 5 ç§ãŸã§ã§ãã
- FPS ã倿ŽããŸã: 6ã8ã12ã15ã24ã30ããŸã㯠60ã
- MP4 ã«ãšã¯ã¹ããŒãããŸã (ãã¹ã¯ãããã§ã¯ ffmpegããã©ãŠã¶ã§ã¯ ffmpeg.wasm çµç±)ã
- ããŒã¯ãšã©ã€ãã®ããŒã: ãããªã¢ã« 3ãã·ã¹ãã ã«åŸããŸãã
ãªããã©ãã¿ãŒããã®ã§ãããã?
Flutter ã䜿çšãããšãã³ãŒããè€è£œããããšãªã 6 ã€ã®ãã©ãããã©ãŒã ã«å¯Ÿã㊠1 ã€ã®ã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã Aleka ã¯ãDart ããã³ Flutter SDK ã®ãã€ãã£ãæ©èœãšæå°éã®ãµãŒãããŒãã£ã®äŸåé¢ä¿ã®ã¿ã䜿çšããŸã:
file_pickerãå¡ãã€ã¶ãæã«ãã¯ã»ã«ãæäœããããã®imageããã©ãŠã¶ã§ãããªããšã¯ã¹ããŒãããããã®ffmpeg_wasmãã¢ãŒããã¯ãã£
ãã®ãããžã§ã¯ãã¯ãã¯ãªãŒã³ ã¢ãŒããã¯ãã£ãšãœãªããã®ååã«æºæ ããŠããŸãã
- PaintCanvasController – ãªã¹ããŒ/ãªãã¶ãŒã㌠ãã¿ãŒã³ãéããŠã¹ãããŒã¯ãšå¡ãã€ã¶ãã®ç¶æ ãå¶åŸ¡ããŸãã
- ãã€ã³ãããŒã«ã㌠– ãã¬ãããã¹ã©ã€ããŒããã¿ã³ã® UI ã³ã³ããŒãã³ãã
- AlekaFile – JSON ã§ã®ã·ãªã¢ã«å/éã·ãªã¢ã«åãPNG ãã£ããã£ã
- MovieController – ãã¬ãŒã ãšã¢ãã¡ãŒã·ã§ã³ç¶æ ã®ã¢ãã«ã
- VideoExport – MP4 ãšã³ã³ãŒã ããžã㯠(ãã¹ã¯ããã/ãŠã§ã) ãã«ãã»ã«åããŸãã
I/O 颿° (
saveStrokesãloadStrokesãcapturePngãªã©) ã¯æ³šå ¥å¯èœã«ãªã£ãŠããããã¹ãäžã«ã¢ãã¯ã«çœ®ãæããããšãã§ããŸãããã®ãããžã§ã¯ãã«ã¯ 79 ã®ãã¹ãããããŸã: ã·ãªã¢ã«åããã£ã³ã»ã«ãèªã¿èŸŒã¿/ä¿åãPNG ãšãããªã®ãšã¯ã¹ããŒãããã¬ãŒã ã¢ãã«ãšã¿ã€ã ã©ã€ã³ã®ãã§ãã¯ããã¡ã€ã«åœ¢åŒ .aleka
.alekaãã¡ã€ã«ã¯ãä»»æã®ããã¹ã ãšãã£ã¿ã§éãããšãã§ããèªã¿åãå¯èœãª JSON ã§ãã"aleka": "1.0", "strokes": [ { "color": 4278190080, "strokeWidth": 3.0, "points": [[100.0, 200.0], [150.0, 250.0]] } ] }åã¹ãããŒã¯ã«ã¯ãè² (ARGB32)ã倪ããããã³ç¹ã®é åãæ ŒçŽãããŸãããã®åœ¢åŒã¯ã
alekaãã£ãŒã«ãã«ãã£ãŠããŒãžã§ã³ç®¡çãããŸããã¢ãã¡ãŒã·ã§ã³ ã¢ãŒã
äž»ãªæ©èœã® 1 ã€ã¯ãçµã¿èŸŒã¿ã®ãã¬ãŒã ããšã®ã¢ãã¡ãŒã·ã§ã³ ãšãã£ã¿ã§ãããã¬ãŒã ãæç»ããæ°ãããã¬ãŒã ã远å ããæ¬¡ã®ãã¬ãŒã ãæç»ããããšããããšãç¹°ãè¿ããŸããã¿ã€ã ã©ã€ã³ã«ã¯ãµã ãã€ã«ã衚瀺ããããã¬ãŒã ã®é åºãšé·ãã倿Žã§ããŸãã宿ããã¢ãã¡ãŒã·ã§ã³ã¯ MP4 ã«ãšã¯ã¹ããŒãã§ããŸãã
ãšã¯ã¹ããŒã ã¢ã«ãŽãªãºã ã¯ãã¹ãŠã®ãã¬ãŒã ãå埩åŠçãã
RepaintBoundaryçµç±ã§ãã¬ãŒã ããã£ããã£ããPNG ãã€ããåéããŠãšã³ã³ãŒãã«è»¢éããŸãããã¹ã¯ãããã§ã¯ã·ã¹ãã ffmpeg ãšåŒã°ãããã©ãŠã¶ã§ã¯ ffmpeg.wasm ã䜿çšãããŸããããã¯ãffmpeg ã WebAssembly ã«å®å šã«ç§»æ€ãããã®ã§ããã©ãŠã¶ã®ãµã³ãããã¯ã¹ã§çŽæ¥åäœããŸããå¡ãã€ã¶ã
å¡ãã€ã¶ãã®å®è£ ã§ã¯ãè²ã®èš±å®¹å€ (
_kFillTolerance = 1000) ãæã€å¹ åªå æ€çŽ¢ (BFS) ã䜿çšããŸããããã«ãããã¹ãããŒã¯ã®æ»ãããªãšããžãæ£ããåŠçã§ããããã«ãªããŸããå¡ãã€ã¶ãã¯èŒªéãè¶ ããŠæµãããå¢çäžã®åéæã®ãã¯ã»ã«ããã£ããã£ããŸãã空ã®ãã£ã³ãã¹ã®å Žåãäžå¿ èŠãªèšç®ãè¡ããã«å¡ãã€ã¶ããäœæãããŸãã詊ããŠã¿ã
Aleka ã¯ãWeb äžããã³ãã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ãšããŠå©çšã§ããŸãã
demensdeum.com/software/aleka/
ãœãŒã¹ ã³ãŒã㯠MIT ã©ã€ã»ã³ã¹ã®äžã§å ¬éãããŠããŸãã
-
ããã«ã¬ã³ã㌠– ã¯ãã¹ãã©ãããã©ãŒã ã®ãªãã€ã³ããŒã¢ããª
Mama Calendar ã¯ãNode.js + MongoDB ããã³ PHP + MariaDB ãšãã 2 ã€ã®ããã¯ãšã³ãå®è£ ãåãã React Native (Expo) ã§æžãããã¯ãã¹ãã©ãããã©ãŒã ã®ã€ãã³ãããã³ãªãã€ã³ã㌠ã¢ããªã±ãŒã·ã§ã³ã§ãã
ãã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãçµµæåãåé¡ããŠã€ãã³ããäœæããç¹°ãè¿ãã®çš®é¡ (1 åãæ¯å¹Žãæ¯æãæ¯é±ãæ¯æ¥) ãéžæããå¥ã®ãéèŠãªã€ãã³ããã¿ãã§ä»åŸ 3 æ¥éã®éèŠãªã€ãã³ãã衚瀺ããããšãã§ããŸãã
ãã¯ãããžãŒã¹ã¿ãã¯
ããã³ããšã³ãã¯ãTypeScriptãããã²ãŒã·ã§ã³çšã® Expo Routerãã¢ãã¡ãŒã·ã§ã³çšã®
react-native-reanimatedã䜿çšãã Expo SDK 57 ãä»ã㊠React Native 0.86 ã§äœæãããŠããŸããã¢ã€ã³ã³ã«ã¯ãšãã¹ãã·ã³ãã«ã䜿çšãããŸãïŒiOSã§ã¯SFã·ã³ãã«ãAndroid/Webã§ã¯ãããªã¢ã«ã¢ã€ã³ã³ïŒãããã¯ãšã³ã㯠2 ã€ã®ããŒãžã§ã³ã§å®è£ ãããŠããŸãã
- Node.js: Express 4ããã€ãã£ã ãã©ã€ããŒçµç±ã® MongoDB 8ãscrypt + Salt ã«ããã«ã¹ã¿ã èªèšŒãæåããŒã¯ã³ç®¡çã Docker Compose ã¯ã¯ã©ã€ã¢ã³ã (nginx)ããµãŒããŒãMongoDB ãèµ·åããŸãã
- PHP: ãã¬ãŒã ã¯ãŒã¯ãªãã® PHP 8.2ãPDO + MariaDB 11ããã¹ã¯ãŒã ããã·ã¥çšã® bcryptãç¬èªã®ã«ãŒã¿ãŒãããã³ Composer çµç±ã® PSR-4 èªåèªã¿èŸŒã¿ã
ã¢ããªã±ãŒã·ã§ã³é¢æ°
- ç»é²ãšèªå¯: ãŠãŒã¶ãŒå/ãã¹ã¯ãŒããšãã¢ã©ãŒ ããŒã¯ã³ã䜿çšããã·ã³ãã«ãªã·ã¹ãã
- CRUD ã€ãã³ã: æ¥ä»ãçµµæåãç¹°ãè¿ãã¿ã€ãã䜿çšããŠã€ãã³ããäœæã衚瀺ãç·šéãåé€ããŸã
- ã¹ããŒã ãã£ã«ã¿ãªã³ã°: [éèŠãªã€ãã³ã] ã¿ãã«ã¯ãç¹°ãè¿ãã«ãŒã«ãèæ ®ããŠãä»åŸ 3 æ¥éã®ã€ãã³ãã衚瀺ãããŸããããšãã°ã幎次ã€ãã³ãã«ã¯ãæãè¿ã幎次ã€ãã³ãããæ¯æ – æã®æ¥ããšãæ¯é± – ææ¥ããšã«è¡šç€ºãããŸãã
- çµµæåããã«ãŒ: ã€ãã³ããçŽ æ©ãåé¡ããããã® 20 åã®ããªã»ããçµµæå
- 仿¥ã®ã€ãã³ãã®ãã€ã©ã€ã: 仿¥ã®ã€ãã³ãã¯èµ€ãèæ¯ (#B71C1C) ã§ãã€ã©ã€ããããŸã
- ããŒã¯ ããŒã: ã©ã€ã ããŒããšããŒã¯ ããŒãã®åå¥ã®ãã¬ããã«ããã·ã¹ãã ã«ã©ãŒ ã¹ããŒã ã®èªåæ€åº
- åœéå: React Context ãä»ãããã·ã¢èªãšè±èª
- ÐМОЌаÑОО: аМОЌОÑПваММÑй ÑплÑÑ-ÑкÑОМ Ñ Keyframe API О ÑпÑÑгПй ОМÑеÑпПлÑÑОей, аМОЌОÑÐŸÐ²Ð°ÐœÐœÐ°Ñ ÐžÐºÐŸÐœÐºÐ° пÑÐžÐ»ÐŸÐ¶ÐµÐœÐžÑ Ñ Ð²ÑаÑаÑÑОЌÑÑ ÑвеÑеМОеЌ
- 管çãšã³ããã€ã³ã: ãŠãŒã¶ãŒãããŒã¯ã³ã®ç®¡çããã¹ã¿ãŒ ããŒã¯ã³ã«ããããŒã¿ããŒã¹ã®ã¯ãªã¢
ãªã 2 ã€ã®ããã¯ãšã³ãå®è£ ãããã®ã§ãã?
Node.js ããŒãžã§ã³ãã¡ã€ã³ã§ãããããã¯ã©ã·ãã¯ãªãã¹ãã£ã³ã°ã®ä»£æ¿ãšã㊠PHP ããŒãžã§ã³ãååšããŸãã API ã¯å®å šã«åäžã§ãããããã¯ã©ã€ã¢ã³ã ã³ãŒãã倿Žããã« API ãåãæ¿ããããšãã§ããŸãã
ã€ã³ãã©ã¹ãã©ã¯ãã£
ã¹ã¿ãã¯å šäœã¯ Docker Compose ãéããŠçæãããŸããã¯ã©ã€ã¢ã³ãã¯ãã«ãã¹ããŒãž ãã«ã (Expo ãšã¯ã¹ããŒã â nginx alpine)ãNode.js äžã®ãµãŒããŒãMongoDB 8 ãéããŠçµã¿ç«ãŠãããŸããPHP ããŒãžã§ã³ã®å Žåã¯ãMariaDB 11 ãšãã¹ãçšã® phpunit ãå«ãå¥ã® compose ãã¡ã€ã«ããããŸãã
Web ããŒãžã§ã³ã®ã¢ã»ã³ããªã¯ã
expo ãšã¯ã¹ããŒãã®åã« API_URL ã«ããããé©çšããåŸã§å ã®ãã¡ã€ã«ã埩å ãã PowerShell ã¹ã¯ãªããã«ãã£ãŠèªååãããŸããåºå
Mama Calendar ã¯ãReact Native ã®ã¢ãã€ã«ããã³ Web ããã³ããšã³ããã 2 ã€ã®ãµãŒããŒåŽãªãã·ã§ã³ãŸã§ãå šãµã€ã¯ã«ãã«ããŒãããã«æ©èœã®ã¯ãã¹ãã©ãããã©ãŒã ã¢ããªã±ãŒã·ã§ã³ã§ãããã®ãããžã§ã¯ãã¯ããã®ã¢ãŒããã¯ãã£ãææ°ã® Expo SDK æ©èœã®äœ¿çšãããã³ãã¥ã¢ã« ããã¯ãšã³ãå®è£ ã«ãããŠè峿·±ããã®ã§ãã
ãªã³ã¯
https://github.com/zefir1990/Mama-Calendar
https://demensdeum.com/software/mama-calendar/events -
Surreal Engine C++ ã WebAssembly ã«ç§»æ€
ãã®æçš¿ã§ã¯ãSurreal Engine ã²ãŒã ãšã³ãžã³ã WebAssembly ã«ç§»æ€ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
https://demensdeum.com/demos/SurrealEngine/”
è¶ çŸå®çãªãšã³ãžã³ – Unreal Engine 1 ã®æ©èœã®ã»ãšãã©ãå®è£ ããã²ãŒã ãšã³ãžã³ããã®ãšã³ãžã³äžã®æåãªã²ãŒã -ã¢ã³ãªã¢ã« ããŒãã¡ã³ã 99ãã¢ã³ãªã¢ã«ãããŠã¹ ãšã¯ã¹ãã¢ã³ãã€ã³ã°ãããã¯ãäž»ã«ã·ã³ã°ã«ã¹ã¬ããå®è¡ç°å¢ã§åäœããå€å žçãªãšã³ãžã³ãæããŸãã
ç§ã¯ããšããšã劥åœãªæéå ã«å®äºã§ããªããããžã§ã¯ãã«ææŠããŠãTwitch ã®ãã©ãã¯ãŒã«ç§ã«ãã§ããªããããžã§ã¯ããããããšã瀺ããšããèããæã£ãŠããŸãããæåã®ã¹ããªãŒã äžã«ãEmscripten ã䜿çšã㊠Surreal Engine C++ ã WebAssembly ã«ç§»æ€ããã¿ã¹ã¯ãå®è¡å¯èœã§ããããšã«çªç¶æ°ã¥ããŸããã1 ãæåŸãWebAssembly ã§ãã©ãŒã¯ãšãšã³ãžã³ã®ã¢ã»ã³ããªããã¢ã³ã¹ãã¬ãŒã·ã§ã³ã§ããããã«ãªããŸãã
https://demensdeum.com/demos/SurrealEngine/
ãªãªãžãã«ãšåæ§ã«ãã³ã³ãããŒã«ã¯ããŒããŒãã®ç¢å°ã䜿çšããŠå®è¡ãããŸããæ¬¡ã«ããããã¢ãã€ã« ã³ã³ãããŒã« (ã¿ã) ã«é©å¿ãããUnreal Championship 99 ã¬ã³ããªã³ã°ã®æ£ããã©ã€ãã£ã³ã°ããã®ä»ã®ã°ã©ãã£ãã¯æ©èœã远å ããäºå®ã§ããã©ãããå§ããã°ããã§ãã?
ãŸãæåã«èšãããã®ã¯ãEmscripten ã䜿çšããã°ã©ããªãããžã§ã¯ãã§ã C++ ãã WebAssembly ã«ç§»æ€ã§ãããšããããšã§ãããå¯äžã®åé¡ã¯æ©èœãã©ã®çšåºŠå®æããããšããããšã§ããã©ã€ãã©ãª ããŒãããã§ã« Emscripten ã§äœ¿çšã§ãããããžã§ã¯ããéžæããŸãã Surreal Engine ã®å Žåã¯ããšã³ãžã³ã SDL 2ãOpenAL – ã䜿çšããŠãããããéåžžã«å¹žéã§ãã峿žé€šãã©ã¡ãã Emscripten ã«ç§»æ€ãããŠããŸãããã ããVulkan ã¯ã°ã©ãã£ãã¯ã¹ API ãšããŠäœ¿çšãããŠãããçŸåš HTML5 ã§ã¯å©çšã§ããŸãããWebGPU ã®å®è£ äœæ¥ã¯é²è¡äžã§ãããããããã©ããæ®µéã§ãããå®å šã«æšæºåãããåŸãVulkan ãã WebGPU ãžã®ãããªãç§»æ€ãã©ãã»ã©ç°¡åã«ãªãããäžæã§ãããããã£ãŠãSurreal Engine çšã«ç¬èªã®åºæ¬ç㪠OpenGL-ES / WebGL ã¬ã³ãã©ãŒãäœæããå¿ èŠããããŸããã
ãããžã§ã¯ãã®ãã«ã
Surreal Engine ã§ã·ã¹ãã ãæ§ç¯ – CMake ã¯ãEmscripten ããã€ãã£ã ãã«ããŒãæäŸãããããç§»æ€ãç°¡çŽ åããŸãããããããããã
Surreal Engine ã®ç§»æ€ã¯ãDeath-Mask ãšåŒã°ãã WebGL/OpenGL ES ããã³ C++ ã§äœæããææ°ã²ãŒã ã®ã³ãŒãã«åºã¥ããŠããŸããããã®ãããéçºã¯ã¯ããã«ç°¡åã§ãå¿ èŠãªãã«ã ãã©ã°ãšã³ãŒã ãµã³ãã«ããã¹ãŠæã£ãŠããŸããã
CMakeLists.txt ã®æãéèŠãªãã€ã³ãã® 1 ã€ã¯ Emscripten ã®ãã«ã ãã©ã°ã§ãã以äžã¯ãããžã§ã¯ã ãã¡ã€ã«ã®äŸã§ããset(CMAKE_CXX_FLAGS "-s MIN_WEBGL_VERSION=2 -s MAX_WEBGL_VERSION=2 -s EXCEPTION_DEBUG -fexceptions --preload-file UnrealTournament/ --preload-file SurrealEngine.pk3 --bind --use-preload-plugins -Wall -Wextra -Werror=return-type -s USE_SDL=2 -s ASSERTIONS=1 -w -g4 -s DISABLE_EXCEPTION_CATCHING=0 -O3 --no-heap-copy -s ALLOW_MEMORY_GROWTH=1 -s EXIT_RUNTIME=1")ãã«ã ã¹ã¯ãªããèªäœ:
clear emmake make -j 16 cp SurrealEngine.data /srv/http/SurrealEngine/SurrealEngine.data cp SurrealEngine.js /srv/http/SurrealEngine/SurrealEngine.js cp SurrealEngine.wasm /srv/http/SurrealEngine/SurrealEngine.wasm cp ../buildScripts/Emscripten/index.html /srv/http/SurrealEngine/index.html
次ã«ããããžã§ã¯ã ãã¡ã€ã« ã·ã¹ãã ããªããŒããŒãå«ã index.html ãæºåããŸãããã Web ã«ã¢ããããŒãããããã«ãUnreal Championship Demo ããŒãžã§ã³ 338 ã䜿çšããŸãããCMake ãã¡ã€ã«ãããããããã«ãè§£åãããã²ãŒã ãã©ã«ããŒããã«ã ãã£ã¬ã¯ããªã«è¿œå ãããEmscripten ã®ããªããŒã ãã¡ã€ã«ãšããŠãªã³ã¯ãããŠããŸãã
ã¡ã€ã³ã³ãŒãã®å€æŽ
次ã«ãã²ãŒã ã®ã²ãŒã ã«ãŒãã倿Žããå¿ èŠããããŸãããç¡éã«ãŒããå®è¡ããããšã¯ã§ããŸãããããã«ãããã©ãŠã¶ãããªãŒãºããŸãã代ããã«ãemscripten_set_main_loop ã䜿çšããå¿ èŠããããŸãããã®æ©èœã«ã€ããŠã¯ã2017 幎ã®ã¡ã¢ãSDL C++ ã²ãŒã ã® HTML5 (Emscripten) ãžã®ç§»æ€ã
while ã«ãŒããçµäºããã³ãŒãã if ã«å€æŽããã²ãŒã ã«ãŒããå«ãã²ãŒã ãšã³ãžã³ã®ã¡ã€ã³ ã¯ã©ã¹ãã°ããŒãã« ã¹ã³ãŒãã«è¡šç€ºããã°ããŒãã« ãªããžã§ã¯ãããã²ãŒã ã«ãŒã ã¹ããããåŒã³åºãã°ããŒãã«é¢æ°ãäœæããŸãã#if __EMSCRIPTEN__ #include <emscripten.h> Engine *EMSCRIPTEN_GLOBAL_GAME_ENGINE = nullptr; void emscripten_game_loop_step() { EMSCRIPTEN_GLOBAL_GAME_ENGINE->Run(); } #endifãã®åŸãã¢ããªã±ãŒã·ã§ã³ã«ããã¯ã°ã©ãŠã³ã ã¹ã¬ããããªãããšã確èªããå¿ èŠããããŸããååšããå Žåã¯ãã·ã³ã°ã«ã¹ã¬ããå®è¡çšã«æžãçŽãæºåãããããEmscripten ã® phtread ã©ã€ãã©ãªã䜿çšããŸãã
Surreal Engine ã®ããã¯ã°ã©ãŠã³ã ã¹ã¬ããã¯é³æ¥œã®åçã«äœ¿çšãããããŒã¿ã¯çŸåšã®ãã©ãã¯ã鳿¥œã®åçã®å¿ èŠæ§ããŸãã¯é³æ¥œã®äžåšã«é¢ããã¡ã€ã³ ãšã³ãžã³ ã¹ã¬ããããååŸãããããã¯ã°ã©ãŠã³ã ã¹ã¬ããã¯ãã¥ãŒããã¯ã¹çµç±ã§æ°ããç¶æ ãåãåããæ°ãã鳿¥œã®åçãéå§ãããäžæåæ¢ããŸããããã¯ã°ã©ãŠã³ã ã¹ã¬ããã¯ãåçäžã«é³æ¥œããããã¡ãªã³ã°ããããã«ã䜿çšãããŸãã
pthread ã䜿çšã㊠Emscripten çšã® Surreal Engine ãæ§ç¯ãã詊ã¿ã¯å€±æããŸãããSDL2 ããŒããš OpenAL ããŒã㯠pthread ãµããŒããªãã§æ§ç¯ãããŠããã鳿¥œã®ããã«åæ§ç¯ããããªãã£ãããã§ããããã§ãBGM ã¹ããªãŒã ã®æ©èœãã«ãŒãã䜿çšããã·ã³ã°ã«ã¹ã¬ããå®è¡ã«ç§»è¡ããŸããã C++ ã³ãŒããã pthread åŒã³åºããåé€ããããšã§ããããã¡ãªã³ã°ãšé³æ¥œåçãã¡ã€ã³ ã¹ã¬ããã«ç§»åããé å»¶ããªãããããããã¡ãæ°ç§å¢ãããŸããã
次ã«ãã°ã©ãã£ãã¯ãšãµãŠã³ãã®å ·äœçãªå®è£ ã«ã€ããŠèª¬æããŸããVulkan ã¯ãµããŒããããŠããŸãã!
ã¯ããVulkan 㯠HTML5 ã§ã¯ãµããŒããããŠããŸãããããã¹ãŠã®ããŒã±ãã£ã³ã° ãã³ãã¬ããã§ã¯ Vulkan ã®äž»ãªå©ç¹ãšããŠã¯ãã¹ãã©ãããã©ãŒã ããã³åºç¯ãªãã©ãããã©ãŒã ã®ãµããŒãã玹ä»ãããŠããŸãããã®ãããç°¡çŽ åããã OpenGL ã¿ã€ãã®åºæ¬çãªã°ã©ãã£ãã¯ã¹ ã¬ã³ãã©ãŒãç¬èªã«äœæããå¿ èŠããããŸããã ES ã¯ã¢ãã€ã« ããã€ã¹ã§äœ¿çšãããææ°ã® OpenGL ã®ãã¡ãã·ã§ããã«ãªæ©èœãå«ãŸããŠããªãå ŽåããããŸãããWebGL ã«éåžžã«ããç§»æ€ãããŠããããŸãã« Emscripten ãå®è£ ããŠãããã®ã§ããåºæ¬çãªã¿ã€ã« ã¬ã³ããªã³ã°ãæãåçŽãª GUI 衚瀺çšã® bsp ã¬ã³ããªã³ã°ãããã³ã¢ãã«ãšãããã®ã¬ã³ããªã³ã°ã®äœæã¯ 2 é±éã§å®äºããŸãããããããããããã®ãããžã§ã¯ãã§æãå°é£ãªéšåã§ããã Surreal Engine ã¬ã³ããªã³ã°ã®å šæ©èœãå®è£ ããã«ã¯ããŸã å€ãã®äœæ¥ãå¿ èŠã§ãããã®ãããèªè ããã®ã³ãŒãããã« ãªã¯ãšã¹ãã®åœ¢ã§ã®æ¯æŽãæè¿ããŸãã
OpenAL ããµããŒããããŠããŸã!
幞éãªããšã«ãSurreal Engine ã¯ãªãŒãã£ãªåºåã« OpenAL ã䜿çšããŠããããšã§ãã OpenAL ã§åçŽãª Hello World ãäœæããEmscripten ã䜿çšã㊠WebAssembly ã§çµã¿ç«ãŠãã®ã§ããã¹ãŠãããã«åçŽã§ããããæããã«ãªãããµãŠã³ãã®ç§»æ€ã«çæããŸããã
æ°æéã®ãããã°åŸãEmscripten ã® OpenAL å®è£ ã«ã¯ããã€ãã®ãã°ãããããšãæããã«ãªããŸãããããšãã°ãã¢ãã©ã« ãã£ãã«æ°ã®èªã¿åããåæåãããšãã«ã¡ãœãããç¡éæ°ãè¿ããç¡éãµã€ãºã®ãã¯ãã«ãåæåããããšãããšãC++ ãäŸå€ Vector::length_error ã§ã¯ã©ãã·ã¥ããŸãã
ã¢ãã©ã« ãã£ã³ãã«ã®æ°ã 2048 ã«ããŒãã³ãŒãã£ã³ã°ããããšã§ããã®åé¡ãåé¿ããããšãã§ããŸãããalcGetIntegerv(alDevice, ALC_MONO_SOURCES, 1, &monoSources); alcGetIntegerv(alDevice, ALC_STEREO_SOURCES, 1, &stereoSources); #if __EMSCRIPTEN__ monoSources = 2048; // for some reason Emscripten's OpenAL gives infinite monoSources count, bug? #endifãããã¯ãŒã¯ã¯ãããŸãã?
Surreal Engine ã¯çŸåšãªã³ã©ã€ã³ ãã¬ã€ããµããŒãããŠããŸãããããããã§ã®ãã¬ã€ã¯ãµããŒããããŠããŸããããããã®ãããçšã® AI ãäœæãã人ãå¿ èŠã§ããçè«çã«ã¯ãWebsocket ã䜿çšã㊠WebAssembly/Emscripten äžã«ãããã¯ãŒã¯ ã²ãŒã ãå®è£ ã§ããŸãã
çµè«
çµè«ãšããŠãEmscripten ããŒããååšããã©ã€ãã©ãªã®äœ¿çšãšãEmscripten äžã® WebAssembly çšã« C++ ã§ã²ãŒã ãå®è£ ããéå»ã®çµéšã®ãããã§ãSurreal Engine ã®ç§»æ€ã¯éåžžã«ã¹ã ãŒãºã«å®äºãããšèšããŸãã以äžã¯ããã®ãããã¯ã«é¢ããç¥èæºãšãªããžããªãžã®ãªã³ã¯ã§ãã
ããããããã¢ã³ã¹ã¿ãŒãåãïŒ
ãŸããã§ããã° WebGL/OpenGL ES ã¬ã³ããªã³ã° ã³ãŒãã§ãããžã§ã¯ããæ¯æŽãããå Žåã¯ãTelegram ã§ç§ã«æžããŠãã ãã:
https://t.me/demenscaveãªã³ã¯
https://demensdeum.com/demos/SurrealEngine/
-
Chisel ãä»ããã¯ã©ã€ã¢ã³ãéã®ããŒã転é: L3 ã䜿çšããªãå¿ èŠæäœéââã®ãã³ãã«
2 ã€ã®ããã€ã¹ã NAT ãŸãã¯å³æ Œãªãã¡ã€ã¢ãŠã©ãŒã«ã®å åŽã«ããããäºããçŽæ¥ãèŠããããšãã§ããªãå ŽåãVPN ãæšæºçãªãœãªã¥ãŒã·ã§ã³ã§ããããã§ããããããæ¬æ Œç㪠L3 ãã³ãã« (WireGuard ã OpenVPN ãªã©) ã¯åé·ã§ããããšãå€ããroot æš©éãå¿ èŠã§ãä»®æ³ã€ã³ã¿ãŒãã§ã€ã¹ã®èšå®ãå¿ èŠã§ãæ¢åã®ã«ãŒããšç«¶åããå¯èœæ§ããããŸãã
ãã®ãããªå ŽåãHTTP äžã§å®è¡ãããããŒã¿è»¢éã« WebSocket ã䜿çšãã TCP/UDP ãã³ãã«ã§ãã Chisel ã䜿çšãããšäŸ¿å©ã§ãããã®ããŒãã§ã¯ãäžéãµãŒããŒãä»ããŠããã¯ã©ã€ã¢ã³ãããå¥ã®ã¯ã©ã€ã¢ã³ãã«ããŒããã転éãããæ¹æ³ã説æããŸãã
ããã¯ã©ã®ããã«æ©èœããŸãã?
ç¶æ³ãæ³åããŠãã ãããã¯ã©ã€ã¢ã³ã A (ããŒã ãµãŒããŒãªã©)ãã¯ã©ã€ã¢ã³ã B (è·å Žã®ã©ããããã)ãããã³ãããªã㯠IP ã¢ãã¬ã¹ãæã€ VPS ããããšããŸããã¯ã©ã€ã¢ã³ã A ãš B 㯠VPS ã«ã¢ã¯ã»ã¹ã§ããŸãããçžäºã«ã¯ã¢ã¯ã»ã¹ã§ããŸããã
転éã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãã
1.ã¯ã©ã€ã¢ã³ã A 㯠VPS ã«æ¥ç¶ãããµãŒããŒäžã§ããªããŒã¹ãããŒããéããŸããããã§ããµãŒããŒã®ããŒã X ã«éä¿¡ããããã¹ãŠã®ãã®ãã¯ã©ã€ã¢ã³ã A ã®ããŒã Y ã«éä¿¡ãããŸãã
2.ã¯ã©ã€ã¢ã³ã B 㯠VPS ã«æ¥ç¶ããããŒã«ã« ãã·ã³ããããŒã Z ããµãŒããŒã®ããŒã X ã«è»¢éããŸãã
3. ãã®çµæãã¯ã©ã€ã¢ã³ã B 㯠localhost:Z ã«ã¢ã¯ã»ã¹ããæçµçã« ã¯ã©ã€ã¢ã³ã A:Y ã«å°éããŸãããã®ã¢ãããŒãã¯ãVPS ãšã®éä¿¡ã« L3 å±€ãå®è£ ãããŠããªãå ŽåããŸãã¯ã¯ã©ã€ã¢ã³ãéã®ã«ãŒãã£ã³ã°ãæ§æããæ©èœããªãå Žåã®ãœãªã¥ãŒã·ã§ã³ã® 1 ã€ã§ããç§ãã¡ã¯ã¢ããªã±ãŒã·ã§ã³ãšããŒãã¬ãã«ã®ã¿ã§äœæ¥ããŸãã
ã¹ããã 1: ãµãŒããŒãèµ·åãã
VPS ã§ã¯ãChisel ããµãŒã㌠ã¢ãŒãã§å®è¡ããã ãã§ãã
--reverseãã©ã°ã¯ãã¯ã©ã€ã¢ã³ãããµãŒããŒåŽã§ããŒããéãããšãã§ããããã«ããããã«å¿ èŠã§ããchisel server --port 8080 --reverseã¹ããã 2: ã¯ã©ã€ã¢ã³ã A (ãœãŒã¹) ã«æ¥ç¶ãã
ã¯ã©ã€ã¢ã³ã A ãããŒã 3000 ã§ããŒã«ã« Web ãµãŒããŒãžã®ã¢ã¯ã»ã¹ãéããããšããŸãã圌㯠VPS ã«æ¥ç¶ããããµãŒããŒäžã®ããŒã 2000 ãäºçŽããŠããããç§ã« 3000 ã«è»¢éããŠãã ããããšèšããŸãã
chisel client vps-ip:8080 R:2000:127.0.0.1:3000ããã§ãVPS ã®ããŒã 2000 (ã«ãŒããã㯠ã€ã³ã¿ãŒãã§ã€ã¹äž) ãã¯ã©ã€ã¢ã³ã A ã«ã€ãªãããŸãã
ã¹ããã 3: ã¯ã©ã€ã¢ã³ã B (ã³ã³ã·ã¥ãŒããŒ) ã®æ¥ç¶
çŸåšãã¯ã©ã€ã¢ã³ã B ã¯ãã®ãªãœãŒã¹ã«ã¢ã¯ã»ã¹ããããšèããŠããŸããåã VPS ã«æ¥ç¶ããããŒã«ã« ããŒã 8080 ããµãŒããŒã®ããŒã 2000 ã«è»¢éããŸãã
chisel client vps-ip:8080 8080:127.0.0.1:2000æºåãã§ããŠïŒããã§ãã¯ã©ã€ã¢ã³ã B ã§
http://localhost:8080ãéããšãã¯ã©ã€ã¢ã³ã A ã§ãµãŒãã¹ãå®è¡ãããŠããããšãããããŸããå®å šæ§ãšãã¥ã¢ã³ã¹
Chisel ã¯ã
--authãã©ã°ã«ããèªèšŒããµããŒãããŠããŸããããã¯ããããªã㯠ãµãŒããŒãä»ããŠäœæ¥ããå Žåã«åŒ·ãæšå¥šãããŸãã TLS èšŒææžã䜿çšããŠãã©ãã£ãã¯ãæå·åããããšãã§ããŸãããã®ã¢ãããŒãã®äž»ãªå©ç¹ã¯ãTUN/TAP ããã€ã¹ãè€éãªã«ãŒãã£ã³ã° ããŒãã«ãå¿ èŠãªãããšã§ããããã¯ãWebSocket æ¥ç¶ãä»ããŠããŒãããã€ã³ããããšãã 1 ã€ã®ããšã ããå®è¡ããå¿ èŠæäœéââã®ãã³ãã«ã§ãã Chisel ãããŒã 443 çµç±ã§åäœããããã«èšå®ãããŠããå Žåãããã¯äŒæ¥ãããã·çµç±ã§ãæ©èœããŸãã
åºå
Chisel ã¯ãç¹å®ã®ãããã¯ãŒã¯ ã¿ã¹ã¯çšã®ãŠãŒãã£ãªãã£ã§ããæ¬æ Œç㪠VPN ãèšå®ããã«ãåé¢ãããããŒãéã§ããŒãã転éããå¿ èŠãããå Žåããªã¬ãŒ ãµãŒããŒãä»ããé æ¹åãã³ãã«ãšéæ¹åãã³ãã«ã®çµã¿åãããå®å šã«å®è¡å¯èœãªãœãªã¥ãŒã·ã§ã³ã§ããããšãããããŸãã
ãªã³ã¯
-
ãªããã°ãä¿®æ£ã§ããªãã®ã§ãã?
ã³ãŒãã®äœæ¥ã«äœæéãè²»ãããä»®èª¬ãæ€èšããæ¡ä»¶ã調æŽããŠãããã°ã¯äŸç¶ãšããŠåçŸãããŸããããªãã¿ã§ããïŒãã®æ¬²æ±äžæºã®ç¶æ ã¯ããŽãŒã¹ããã³ãã£ã³ã°ããšåŒã°ããããšããããŸããããã°ã©ã ã¯ãããªãã®ä¿®æ£ãç¡èŠããŠãç¬èªã®ç掻ãéã£ãŠããããã§ãã
ãã®ç¶æ³ã®æãäžè¬çã§æãè¿·æãªçç±ã® 1 ã€ã¯ãã¢ããªã±ãŒã·ã§ã³å ã®å®å šã«ééã£ãå Žæã§ãšã©ãŒãæ¢ããŠããããšã§ãã
ãåœçç¶ãã®çœ
ãšã©ãŒãèŠã€ãããšããšã©ãŒããçºçãããå Žæã«æ³šæãéãŸããŸããããããè€éãªã·ã¹ãã ã§ã¯ããã° (ã¯ã©ãã·ã¥ãŸãã¯äžæ£ãªå€) ãçºçããŠããããã¯é·ãäžé£ã®ã€ãã³ãã®çµããã«ãããŸãããçµæ«ãä¿®æ£ããããšãããšãç æ°ã§ã¯ãªãçç¶ãšéãããšã«ãªããŸãã
ããã§ãããŒãã£ãŒãã®æŠå¿µãç»å ŽããŸãã
å®éã«ã©ã®ããã«æ©èœããã
ãã¡ãããããŒãã£ãŒããæ¯åçŽã«çŽæ¥æãïŒæç»ããïŒ å¿ èŠã¯ãããŸããããã¢ãŒããã¯ãã£ã®ã¬ã€ããšããŠé ã®äžã«å ¥ããŠãããæå ã«çœ®ããŠããããšãéèŠã§ãããããŒãã£ãŒãã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã®æäœãçµæã®ããªãŒãšããŠèŠèŠåã§ããŸãã
ãã®æ§é ãçè§£ããŠããªããšãéçºè ã¯ãã°ãã°æäžæš¡çŽ¢ã«ãªããŸããç¶æ³ãæ³åããŠã¿ãŠãã ããã1 ã€ã®æ¡ä»¶ãã©ã³ãã§ããžãã¯ãç·šéããŠããéã«ãã¢ããªã±ãŒã·ã§ã³ã¯ (ç¹å®ã®ãã©ã¡ãŒã¿ã®ã»ããã«ãã) èããããªãã£ããŸã£ããå¥ã®ãã©ã³ãã«ç§»åããŸãã
<ãããã¯åŒçš>
çµæ: ã¢ã«ãŽãªãºã ã®äžéšã§ãå®ç§ãªãã³ãŒãä¿®æ£ã«äœæéãè²»ãããŸããããåœç¶ã®ããšãªãããã¢ã«ãŽãªãºã ã®å¥ã®éšåã§å®éã«å€±æããåé¡ã¯äœãä¿®æ£ãããŸããã
ãã°ãå æããããã®ã¢ã«ãŽãªãºã
éãããããã¢ãå©ãã®ããããã«ã¯ã蚺æã®ã¢ãããŒããå€ããå¿ èŠããããŸãã
- çµæããªãŒã§ç¶æ ãèŠã€ãã:ã³ãŒããèšè¿°ããåã«ãã¢ããªã±ãŒã·ã§ã³ããã©ã£ããã¹ãæ£ç¢ºã«å€æããå¿ èŠããããŸããã©ã®æç¹ã§è«çãééã£ãæ¹åã«é²ãã ã®ã§ãããã?åé¡ã®åå ãšãªã£ãç¹å®ã®ç¶æ (ç¶æ ) ã¯äœã§ãã?
- åçŸã¯æåã® 80% ã§ã: ããã¯éåžžããã¹ã¿ãŒãšèªåãã¹ãã«ãã£ãŠè¡ãããŸãããã°ããæµ®éãããŠããå Žåãéçºã¯æ¡ä»¶ãå ±åã§æ€çŽ¢ããããã»ã¹ã«é¢äžããŸãã
- ã§ããã ãå€ãã®æ å ±ã䜿çšãã: ããŒã«ãªãŒãŒã·ã§ã³ã«ã¯ããã°ãOS ããŒãžã§ã³ãããã€ã¹ ãã©ã¡ãŒã¿ãæ¥ç¶ã¿ã€ã (Wi-Fi/5G)ãããã«ã¯ç¹å®ã®éä¿¡äºæ¥è ãããéèŠã§ãã
ãšã©ãŒã®ç¬éãæãããåçã
çæ³çã«ã¯ããã°ãä¿®æ£ããã«ã¯ããã°ãåçŸãããæç¹ã®ã¢ããªã±ãŒã·ã§ã³ã®å®å šãªç¶æ ãååŸããå¿ èŠããããŸããã€ã³ã¿ã©ã¯ã·ã§ã³ ãã°ãéåžžã«éèŠã§ããã€ã³ã¿ã©ã¯ã·ã§ã³ ãã°ã«ã¯ãæçµãã€ã³ãã ãã§ãªãããŠãŒã¶ãŒ ãã¹å šäœ (é害ãçºçããåã«ã©ã®ãããªã¢ã¯ã·ã§ã³ãè¡ãããã) ã瀺ãããŸããããã¯ãåæ§ã®ç¶æ ãååºŠäœæããæ¹æ³ãçè§£ããã®ã«åœ¹ç«ã¡ãŸãã
ä»åŸã®ãã³ã: è€éãªã±ãŒã¹ãçºçããå Žåã¯ããã®ç¶æ³ãåã³çºçããå Žåã«åããŠãã³ãŒãã®ãã®ã»ã¯ã·ã§ã³ã«æ¡åŒµãããã° ãã°æ å ±ã远å ããŠãã ããã
AI æä»£ã®ããšããã©ããã®ãªããç¶æ ã®åé¡
LLM (å€§èŠæš¡èšèªã¢ãã«) ã䜿çšããææ°ã®ã·ã¹ãã ã§ã¯ãå€å žçãªæ±ºå®è« (ã1 ã€ã®å ¥åã1 ã€ã®åºåã) ãéåãããããšããããããŸãããŸã£ããåãå ¥åããŒã¿ãæž¡ããŠããç°ãªãçµæãåŸãããŸãã
ããã¯çŸä»£ã®éçšã·ã¹ãã ã®éæ±ºå®æ§ãåå ã§çºçããŸãã
- GPU 䞊ååŠç: GPU æµ®åå°æ°ç¹æŒç®ã¯åžžã«çµåçã§ãããšã¯éããŸãããã¹ã¬ããã®äžŠåå®è¡ã«ãããæ°å€ã®å ç®é åºãè¥å¹²å€æŽãããå¯èœæ§ããããçµæã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
- GPU ã®æž©åºŠãšã¹ãããã«: å®è¡é床ãšè² è·åæ£ã¯ãããŒããŠã§ã¢ã®ç©ççç¶æ ã«äŸåããå ŽåããããŸããå€§èŠæš¡ãªã¢ãã«ã§ã¯ããããã埮现ãªéããèç©ãããåºåæã«ç°ãªãããŒã¯ã³ãéžæãããå¯èœæ§ããããŸãã
- åçãããåŠç: ã¯ã©ãŠãã§ã¯ããªã¯ãšã¹ããä»ã®ãªã¯ãšã¹ããšçµåãããŸããããããµã€ãºãç°ãªããšãã«ãŒãã«ã§ã®èšç®ã®èšç®ãå€ãããŸãã
ãã®ãããªç¶æ³ã§ã¯ããåãç¶æ ããåçŸããããšã¯ã»ãŒäžå¯èœã«ãªããŸããããã§ããªããæãããšãã§ããã®ã¯ããã¹ããžã®çµ±èšçã¢ãããŒãã®ã¿ã§ãã
ããžãã¯ã倱æããå Žå: ã¡ã¢ãªã®åé¡
ãå®å šã§ãªããèšèª (C ãŸã㯠C++) ã䜿çšããŠããå Žåãã¡ã¢ãªç Žæãåå ã§ãã°ãçºçããå¯èœæ§ããããŸãã
ãããã¯æãæ·±å»ãªã±ãŒã¹ã§ãã1 ã€ã®ã¢ãžã¥ãŒã«ã§ãšã©ãŒãçºçãããšãå¥ã®ã¢ãžã¥ãŒã«ã®ããŒã¿ããäžæžãããããå¯èœæ§ããããŸããããã«ãããéåžžã®ã¢ããªã±ãŒã·ã§ã³ ããžãã¯ã䜿çšããŠè¿œè·¡ã§ããªããå®å šã«èª¬æäžå¯èœãªå€ç«ããé害ãçºçããŸãã
ã¢ãŒããã¯ã㣠ã¬ãã«ã§èº«ãå®ãã«ã¯ã©ãããã°ããã§ãã?
ãã®ãããªãè¬ã®ããã°ãåé¿ããã«ã¯ãææ°ã®ã¢ãããŒãã䜿çšããå¿ èŠããããŸãã
- ãã«ãã¹ã¬ãã ããã°ã©ãã³ã° ãã¿ãŒã³:æç¢ºãªåæã«ããç«¶åç¶æ ãæé€ãããŸãã
- ã¹ã¬ããã»ãŒããªèšèª: ã³ã³ãã€ã«æã«ã¡ã¢ãªã®å®å
šæ§ãä¿èšŒããããŒã«:
- Rust: æææš©ã·ã¹ãã ã«ããã¡ã¢ãª ãšã©ãŒãæé€ãããŸãã
- Swift 6 åæå®è¡æ§:匷åãªããŒã¿åé¢ãã§ãã¯ã
- Erlang: ã¢ã¯ã¿ãŒ ã¢ãã«ãéããŠããã»ã¹ãå®å šã«åé¢ããŸãã
æŠèŠ
ãã°ãä¿®æ£ãããšããããšã¯ãæ°ããã³ãŒããæžãããšã§ã¯ãªããå€ãã³ãŒããã©ã®ããã«æ©èœããããçè§£ããããšã§ãã管çè ãè§ŠããŠãããªããã©ã³ããç·šéããã®ã¯æéãç¡é§ã«ããå¯èœæ§ãããããšãèŠããŠãããŠãã ãããã·ã¹ãã ã®ç¶æ ãèšé²ããAI ã®éæ±ºå®æ§ã®èŠçŽ ãèæ ®ããŠãå®å šãªããŒã«ãéžæããŸãã
-
ããã¥ã¡ã³ããããªãã®èŠªåã§ããçç±
(æŽæ°åŸãæ©èœãç¶ãããœãªã¥ãŒã·ã§ã³ãäœæããæ¹æ³)
ãã¢ããªã¯ãããªã㯠API ã®ã¿ã䜿çšã§ããçŸåšåºè·ãããŠãã OS äžã§å®è¡ããå¿ èŠããããŸããã Apple ã¢ããªã¬ãã¥ãŒã¬ã€ãã©ã€ã³
æ°ãããã¬ãŒã ã¯ãŒã¯ã䜿ãå§ããŠãããããã¹ãŠèªåã§çè§£ã§ããã ãããããã¥ã¡ã³ããèªãã®ã¯é·ãããããšæã£ãããšãããã®ã¯ã決ããŠäžäººã§ã¯ãããŸãããç§ãã¡ã®å€ãã¯ãæåã«è©ŠããŠããæç€ºãèŠããšããèªç¶ãªèª¿æ»æ¬èœãæã£ãŠããŸããããã¯ãŸã£ããæ®éã®ããšã§ãã
ãã ãããã®æ®µéã§ã¯ã調åã«ä¹ã£ãŠãã³ãŒãã¯ããŸãæ©èœãããã®ã®ãã·ã¹ãã ã®æçœã§ã¯ãªãæ©èœã«äŸåããŠãããšããç¶æ³ã«é¥ããã¡ã§ãã
åã«ãèªåã§è§£æ±ºãããã ãã§ã¯äžååãªå Žåãããã®ã¯ãªãã§ãã?
ãã¬ãŒã ã¯ãŒã¯ãç¹ã«ã¯ããŒãºããªãã¬ãŒã ã¯ãŒã¯ã¯ãè€éã§å€å±€ã®ã·ã¹ãã ã§ããå€ãã®å Žåãæ¬¡ã®ãããªå éšããžãã¯ãšæé©åãé èœãããŸãã
* å ¬éããã¥ã¡ã³ãã«ã¯èšèŒãããŠããŸããã
* åäœãå°æ¥ãç¶æãããããšãä¿èšŒãããã®ã§ã¯ãããŸããã
* æ°ããããŒãžã§ã³ã®ãªãªãŒã¹ã«ãã倿Žãããå¯èœæ§ããããŸãã
* éçºè ã«ç¥ãããŠããããŸã ä¿®æ£ãããŠããªãæ©èœãå«ãŸããŠããå¯èœæ§ããããŸããç§ãã¡ãçŽæçã«è¡åãããšãææžåãããã«ãŒã«ã§ã¯ãªããã©ã³ãã ãªèгå¯ã«åºã¥ããŠã¢ãŒããã¯ãã£ãæ§ç¯ããŠããŸããªã¹ã¯ããããŸããããã«ãããã³ãŒããæŽæ°ã«å¯ŸããŠããææã«ãªãå¯èœæ§ããããŸãã
ããã¥ã¡ã³ãã¯å¶éã§ã¯ãªããä¿¡é Œã§ãããµããŒãã§ã
ãã¬ãŒã ã¯ãŒã¯éçºè ã¯ç§ãã¡ãå©ããããã¥ã¢ã«ãäœæããŸããããã¥ã¡ã³ãå ã§åäœãããšã次ã®çµæãåŸãããŸãã
* å®å®æ§;
* ãµããŒã;
* äºæž¬å¯èœãªã·ã¹ãã åäœããããã®å¶éãè¶ ãããšããããªããªã¹ã¯ãè² ãããšã«ãªãããã®ãããªã³ãŒãã®ä¿å®ãããå°é£ã«ãªããŸãã
å®éšïŒç¢ºãã«ããã ããå¢çãçè§£ããäžã§ã
奜å¥å¿ã¯éçºè ã«ãšã£ãŠçŽ æŽãããç¹æ§ã§ããæ°ããããšãæ¢çŽ¢ããŠè©Šãããšã¯çµ¶å¯Ÿã«å¿ èŠã§ããããããããã«å°ããªé¡ãããããŸããæãå¿«é©ã«å®éšã§ããæ¹æ³ã¯ããã¹ã ãã©ã¯ãã£ã¹ã«é Œãããšã§ãã
ããã¥ã¡ã³ãã¯ãã©ã®ãã¹ãæãå®å šã§äœæè ã«ãã£ãŠãµããŒããããŠãããã瀺ããããã§ãã
å€éšã®èŠç¹: å°éå®¶ã®ã¢ããã€ã¹
ç§ãã¡ã¯çµéšè±å¯ãªååããæ¬¡ã®ããšãåŠã¶ããšããããããŸãã
* 圹ç«ã€è¬åº§ãéå¬ããŠããã®ã§ã
* ã«ã³ãã¡ã¬ã³ã¹ã§è¬æŒãã
* çŽ æŽãããæ¬ãããã°ãæžãã
* ç¬èªã®ããžã§ã³ãå ±æããŸãã圌ãã®å€ãã¯æ¬åœã«è²Žéãªçµéšãå ±æããŠããŸããããããèŠããŠãã䟡å€ãããã®ã¯ãèè ã®ã¢ãããŒããå ¬åŒããã¥ã¡ã³ããšççŸããŠããå Žåããããã¯è匱ã§ããããšã倿ããå¯èœæ§ããããšããããšã§ãã
ãã®ãããªãçµéšçãã¿ãŒã³ãã¯ã次ã®ãããªå ŽåããããŸãã
* ãã¬ãŒã ã¯ãŒã¯ã®ç¹å®ã®ããŒãžã§ã³ã§ã®ã¿åäœããŸãã
* ã¢ããããŒãã«ææã§ãã
* ç°åžžãªç¶æ³ã§ã¯äºæããªãåäœãããå¯èœæ§ããããŸããã³ãã¥ããã£ããåŠã¶ããšã¯çŽ æŽããããããããã®ããããšã§ãããã ããã¢ããã€ã¹ã¯ãããšãæãæš©åšã®ãããã®ã§ãã£ãŠããå¿ ãå ¬åŒããã¥ã¢ã«ã§æ³šææ·±ã確èªããå¿ èŠããããŸãã
SOLID ã«ã€ããŠå°ã説æ
SOLID ååããã® 3 ã€ã®ã¢ã€ãã¢ã¯ããã®ã¢ãããŒããå®å šã«è£å®ããŸãã
* ãªãŒãã³/ã¯ããŒãºã®åå: ãããªã㯠API ãéããŠåäœãæ¡åŒµããããã«åªããå¯èœã§ããã°ãé ããå®è£ ã«äŸåããªãããã«ããŸãã
* ãªã¹ã³ã眮æåå: ç¹å®ã®å®è£ ã§ã¯ãªããå¥çŽã«äŸåããŸããããããªããšãå éšã§ã®å€æŽãäºæãã¬åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã
* äŸåé¢ä¿ã®å転: 詳现ã§ã¯ãªãæœè±¡åã«åºã¥ããŠäŸåé¢ä¿ãæ§ç¯ããŸããå®éã«ã¯ãããã¯ããã¬ãŒã ã¯ãŒã¯ã®å éšã®ææžåãããŠããªã詳现ã«çµã³ä»ãããããšãã·ã¹ãã ãè匱ã«ãªãããšãæå³ããŸãã
ãããªã㯠ã€ã³ã¿ãŒãã§ã€ã¹ãšã³ã³ãã©ã¯ãã«åºã¥ããŠã次ã®çµæãåŸãããŸãã* ãã¬ãŒã ã¯ãŒã¯ã®å€æŽããã³ãŒããããé©åã«åé¢ããŸãã
* ãã¹ãã®å®¹æãã
* ã¢ãŒããã¯ãã£ã®äºæž¬å¯èœæ§ãšä¿¡é Œæ§ããã°ãããå Žåã¯ã©ãããã°ããã§ãã?
ãã¹ãŠãã«ãŒã«ã«åŸã£ãŠè¡ãããã«ãããããããçµæãæåŸ ãæºãããªãããšãèµ·ãããŸãããã¬ãŒã ã¯ãŒã¯ã¯é²åããŸãããåžžã«å®ç§ã§ãããšã¯éããŸããããã®ãããªå Žå:
* åé¡ãåçŸããæå°éã®ãµã³ãã«ãæ§ç¯ããŸãã
* ææžåããã API ã®ã¿ã䜿çšãããŠããããšã確èªããŠãã ããã
* ãã°ã¬ããŒããéä¿¡ããŠãã ãã – éçºããŒã ã¯ããªãã®ä»äºã«æè¬ããæ¯æŽããããšåªããŸããäŸãåé¿çã«äŸåããŠããå Žåãéçºè ããµããŒããæäŸããããšã¯éåžžã«å°é£ã«ãªããŸãã
ãã¬ãŒã ã¯ãŒã¯ãæå€§éã«æŽ»çšããæ¹æ³
*ããã¥ã¡ã³ããåç §ããŠãã ããã
* èè ã®ã¬ã€ããšæšå¥šäºé ã«åŸã£ãŠãã ããã
* 説æãããŠããæ©èœå ã§å®éšããŠãã ããã
* ã€ã³ã¿ãŒãããããã®ã¢ããã€ã¹ãå ¬åŒæ å ±æºã§ç¢ºèªããŠãã ããã
* ãã¬ãŒã ã¯ãŒã¯å¥çŽãå°éããªãããã°ãããŒã«ã©ã€ãºããŸããçµè«
ãã¬ãŒã ã¯ãŒã¯ã¯ãç¬èªã®ã²ãŒã ã«ãŒã«ãæã€åŒ·åãªããŒã«ã§ããããããå¿ãããšãã³ãŒããé床ã«è匱ã«ãªãå±éºããããŸããããããç§ãã¡ã¯çãäœæããã補åãé·æéåç¶ãããã€ããŒã¢ããããŒãã®ãã³ã«ç·æ¥ã®ä¿®æ£ãå¿ èŠãšããªãããšãæãã§ããŸãã
ããã¥ã¢ã«ãšããã¥ã¡ã³ãã¯ãçã«ä¿¡é Œã§ãããœãªã¥ãŒã·ã§ã³ãäœæããã®ã«åœ¹ç«ã€åªãããµããŒãã§ãã
ãœãŒã¹
https://developer.apple.com/app-store/review/guidelines/
https://en.wikipedia.org/wiki/SOLID
https://en.wikipedia.org/wiki/API
https://en.wikipedia.org/wiki/RTFM -
Linux äžã§ iOS çšã® C++ SDL ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãã
ãã®ããŒãã§ã¯ãLinux äžã§ iOS çšã® C++ SDL ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããææã® Apple Developer ãµãã¹ã¯ãªãã·ã§ã³ãªãã§ ipa ã¢ãŒã«ã€ãã«çœ²åãããžã§ã€ã«ãã¬ã€ã¯ãªãã§ macOS ã䜿çšããŠã¯ãªãŒã³ãªããã€ã¹ (iPad) ã«ã€ã³ã¹ããŒã«ããæé ã«ã€ããŠèª¬æããŸãã
ãŸããLinux çšã®ãã«ã ããŒã«ãã§ãŒã³ãã€ã³ã¹ããŒã«ããŸãããã
https://github.com/tpoechtrager/cctools-portããŒã«ãã§ãŒã³ããªããžããªããããŠã³ããŒãããGodot Engine Web ãµã€ãã®æç€ºã«åŸã£ãŠã€ã³ã¹ããŒã«ãå®äºããå¿ èŠããããŸãã
https://docs.godotengine.org/ru/latest/development/compiling/cross-compiling_for_ios_on_linux.htmlçŸæç¹ã§ã¯ãXcode dmg ãããŠã³ããŒããããããã SDK ãã³ããŒã㊠cctools-port ããã«ãããå¿ èŠããããŸãããã®æ®µé㯠macOS ã§ç°¡åã«å®äºã§ããŸããã€ã³ã¹ããŒã«ãããŠãã Xcode ããå¿ èŠãª SDK ãã¡ã€ã«ãã³ããŒããã ãã§ããã¢ã»ã³ããªãæåãããšãã¿ãŒããã«ã«ã¯ã¯ãã¹ã³ã³ãã€ã©ãŒ ããŒã«ãã§ãŒã³ãžã®ãã¹ãå«ãŸããŸãã
次ã«ãiOS çšã® SDL ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ãéå§ã§ããŸãã cmake ãéããŠãC++ ã³ãŒãããã«ãããããã«å¿ èŠãªå€æŽã远å ããŸããããSET(CMAKE_SYSTEM_NAME Darwin) SET(CMAKE_C_COMPILER arm-apple-darwin11-clang) SET(CMAKE_CXX_COMPILER arm-apple-darwin11-clang++) SET(CMAKE_LINKER arm-apple-darwin11-ld)ããã§ãcmake ãš make ã䜿çšããŠã³ã³ãã€ã«ã§ããããã«ãªããŸãããã$PATH ãã¯ãã¹ã³ã³ãã€ã©ãŒ ããŒã«ãã§ãŒã³ã«è¿œå ããããšãå¿ããªãã§ãã ããã
PATH=$PATH:~/Sources/cctools-port/usage_examples/ios_toolchain/target/binãã¬ãŒã ã¯ãŒã¯ãš SDL ãšæ£ãããªã³ã¯ããããã«ããããã cmake ã§èšè¿°ããŸããããšãã°ãSpace Jaguar ã²ãŒã ã®äŸåé¢ä¿ã§ãã
target_link_libraries( ${FSEGT_PROJECT_NAME} ${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/libclang_rt.ios.a ${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/libSDL2.a ${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/libSDL2_mixer.a ${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/libSDL2_image.a "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/CoreServices.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/ImageIO.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/Metal.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/AVFoundation.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/GameController.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/CoreMotion.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/CoreGraphics.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/AudioToolbox.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/CoreAudio.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/QuartzCore.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/OpenGLES.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/UIKit.framework" "${FLAME_STEEL_PROJECT_ROOT_DIRECTORY}/scripts/buildScripts/ios/resources/libs/Foundation.framework" )ç§ã®å ŽåãSDLãSDL_ImageãSDL_mixer ã©ã€ãã©ãªã¯ãéçãªã³ã¯ã®ããã«äºåã« macOS äžã® Xcode ã§ã³ã³ãã€ã«ãããŠããŸãã Xcode ããã³ããŒããããã¬ãŒã ã¯ãŒã¯ããŸããlibclang_rt.ios.a ã©ã€ãã©ãªã远å ãããŸãããããã«ã¯ãiOS åºæã®ã©ã³ã¿ã€ã åŒã³åºã (isOSVersionAtLeast ãªã©) ãå«ãŸããŸãã Android ãšåæ§ã«ãã¢ãã€ã« ããŒãžã§ã³ã§ãµããŒããããŠããªãæ©èœãç¡å¹ã«ããŠãOpenGL ES ãæäœããããã®ãã¯ããå«ãŸããŠããŸãã
ãã«ãã®åé¡ããã¹ãŠè§£æ±ºããããarm çšã«ã¢ã»ã³ãã«ããããã€ããªãååŸããå¿ èŠããããŸããæ¬¡ã«ããžã§ã€ã«ãã¬ã€ã¯ãªãã®ããã€ã¹äžã§ã¢ã»ã³ãã«ããããã€ããªãå®è¡ããããšãèããŠã¿ãŸãããã
macOS ã§ã¯ãéçºè ããã°ã©ã ã®æéãæ¯æãããšãªããXcode ãã€ã³ã¹ããŒã«ããApple ããŒã¿ã«ã«ç»é²ããŸãã Xcode ã§ã¢ã«ãŠã³ãã远å ããŸã ->èšå® ->ã¢ã«ãŠã³ãã空ã®ã¢ããªã±ãŒã·ã§ã³ãäœæããå®éã®ããã€ã¹äžã«æ§ç¯ããŸããçµã¿ç«ãŠäžã«ãããã€ã¹ã¯ç¡æã®éçºè ã¢ã«ãŠã³ãã«è¿œå ãããŸããçµã¿ç«ãŠãŠèµ·åããåŸãã¢ãŒã«ã€ãããã«ãããå¿ èŠããããŸãããããè¡ãã«ã¯ã[æ±çš iOS ããã€ã¹ãšè£œå] -> [æ±çš iOS ããã€ã¹ãšè£œå] ãéžæããŸããã¢ãŒã«ã€ããã¢ãŒã«ã€ããæ§ç¯ãããããããããembedded.mobileprovisionãã¡ã€ã«ãšPkgInfoãã¡ã€ã«ãæœåºããŸããããã€ã¹ãžã®ãã«ã ãã°ãããæ£ãã眲åããŒãå«ãå ±åèšèšè¡ãæ¡åŒµå app.xcent ãæã€è³æ Œãã¡ã€ã«ãžã®ãã¹ãèŠã€ããŠã³ããŒããŸãã
ã¢ãŒã«ã€ããã .app ãã©ã«ããŒãã³ããŒããã¢ãŒã«ã€ãå ã®ãã€ããªã Linux ã®ã¯ãã¹ã³ã³ãã€ã©ãŒã§ã³ã³ãã€ã«ããããã€ã㪠(SpaceJaguar.app/SpaceJaguar ãªã©) ã«çœ®ãæããŸããæ¬¡ã«ãå¿ èŠãªãªãœãŒã¹ã .app ã«è¿œå ããã¢ãŒã«ã€ããã .app å ã® PkgInfo ããã³embedded.mobileprovision ãã¡ã€ã«ã®æŽåæ§ã確èªããå¿ èŠã«å¿ããŠå床ã³ããŒããŸãã codesign ã³ãã³ã – ã䜿çšã㊠.app ã«å眲åããŸãã codesign ã«ã¯ã眲åçšã®å ¥åããŒãè³æ Œãã¡ã€ã«ãžã®ãã¹ (.plist æ¡åŒµåã§åå倿Žå¯èœ) ãå¿ èŠã§ãã
å眲åããåŸãPayload ãã©ã«ããŒãäœæããæ¡åŒµå .app ãæã€ãã©ã«ããŒãããã«ç§»åããPayload ãæã€ zip ã¢ãŒã«ã€ããã«ãŒãã«äœæããã¢ãŒã«ã€ãã®ååãæ¡åŒµå .ipa ã«å€æŽããŸãããã®åŸãXcode ã§ããã€ã¹ã®ãªã¹ããéããæ°ãã ipa ãããã€ã¹ã®ã¢ããªã±ãŒã·ã§ã³ã®ãªã¹ãã«ãã©ãã° ã¢ã³ã ããããããŸãããã®æ¹æ³ã§ã¯ãApple Configurator 2 ã«ããã€ã³ã¹ããŒã«ã¯æ©èœããŸãããå眲åãæ£ããè¡ããããšãæ°ãããã€ããªãå«ãã¢ããªã±ãŒã·ã§ã³ã 7 æ¥éã®èšŒææžãšãšãã« iOS ããã€ã¹ (iPad ãªã©) ã«ã€ã³ã¹ããŒã«ãããŸãããã¹ãæéã«ã¯ããã§ååã§ãããœãŒã¹
https://github.com/tpoechtrager/cctools-port
https://docs.godotengine.org/ru/latest/development/compiling/cross-compiling_for_ios_on_linux.html
https://jonnyzzz.com/blog/2018/06/13/link-error-3/
https://stackoverflow.com/questions/6896029/re-sign-ipa-iphone
-
Ubuntu MinGW CMake ã§ Windows çšã«ãã«ããã
ãã®æçš¿ã§ã¯ãUbuntu ã§ MinGW32 ããŒã«ãã§ãŒã³ã䜿çšã㊠Windows çšã®ã©ã€ãã©ãªãšã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã»ã¹ã«ã€ããŠèª¬æããŸãã
wine ãã€ã³ã¹ããŒã«ããŸããsudo apt-get install wine mingw-w64ããã§ãWindows çšã® C/C++ ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããããã«ãªããŸãã
# C i686-w64-mingw32-gcc helloWorld.c -o helloWorld32.exe # 32-bit x86_64-w64-mingw32-gcc helloWorld.c -o helloWorld64.exe # 64-bit # C++ i686-w64-mingw32-g++ helloWorld.cc -o helloWorld32.exe # 32-bit x86_64-w64-mingw32-g++ helloWorld.cc -o helloWorld64.exe # 64-bitåéããexeã¯wineã§ç¢ºèªã§ããŸãã
次ã«ãCMake ãã«ããCMakeLists.txt ãã¡ã€ã«ãžã®å€æŽãèŠãŠã¿ãŸããããMinGW åºæã®ãã®ããã«ã ãã¡ã€ã«ã«è¿œå ããŸããif (MINGW32) set(CMAKE_SYSTEM_NAME Windows) SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc) SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++) SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres) set(CMAKE_RANLIB i686-w64-mingw32-ranlib) endif() // ÐŽÐ»Ñ ÑбПÑкО shared dll elseif (MINGW32) add_library(FlameSteelEngineGameToolkit.dll SHARED ${SOURCE_FILES}) else() // ПбÑзаÑелÑМП лОМкÑеЌ ÑП вÑеЌО завОÑОЌПÑÑÑЌО if (MINGW32) target_link_libraries( FlameSteelEngineGameToolkit.dll -static-libgcc -static-libstdc++ SDL2 SDL2_mixer /home/demensdeum/Sources/cube-art-project-bootstrap/FlameSteelFramework/FlameSteelCore/FlameSteelCore.dll /home/demensdeum/Sources/cube-art-project-bootstrap/FlameSteelFramework/FlameSteelBattleHorn/FlameSteelBattleHorn.dll /home/demensdeum/Sources/cube-art-project-bootstrap/FlameSteelFramework/FlameSteelCommonTraits/FlameSteelCommonTraits.dll) set_target_properties(FlameSteelEngineGameToolkit.dll PROPERTIES PREFIX "" SUFFIX "" LINK_FLAGS "-Wl,--add-stdcall-alias" POSITION_INDEPENDENT_CODE 0 # this is to avoid MinGW warning; # MinGW generates position-independent-code for DLL by default ) else()ç§ãã¡ã¯ä»¥äžãåéããŸã:
cmake -DMINGW32=1 . makeåºåã¯ãåéããŠããå 容ã«å¿ã㊠dll ãŸã㯠exe ã«ãªããŸããå®éã®äŸãšããŠãæ°ãã Cube-Art-Project ãšãã®ã©ã€ãã©ãªã®ãªããžããªãã芧ãã ããã
https://gitlab.com/demensdeum/cube-art-projecthttps://gitlab.com/demensdeum/FlameSteelEngineGameToolkitFSGL
https://gitlab.com/demensdeum/cube-art-project-bootstrap
åºå ž
https://arrayfire.com/cross-compile-to-windows-from-linux/ -
Ubuntu OSXCros CMake çšã® macOS ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯
ãã®æçš¿ã§ã¯ãCMake ãš osxcross ã䜿çšããŠãUbuntu ãã«ã ãã·ã³äžã§ macOS çšã®ã¯ãã¹ãã©ãããã©ãŒã C++ ã¢ããªã±ãŒã·ã§ã³ããã«ãããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ãŸããosxcross ããŒã«ãã§ãŒã³ãã€ã³ã¹ããŒã«ããŸãã
https://github.com/tpoechtrager/osxcross
ã€ã³ã¹ããŒã«ã¯ 3 段éã§è¡ãããäŸåé¢ä¿ãããŠã³ããŒãããŸããcd tools ./get_dependencies.shApple å ¬åŒ Web ãµã€ããã XCode.xip ãããŠã³ããŒãããXCode ãã SDK ãããŠã³ããŒãããŸãã
./gen_sdk_package_pbzx.sh /media/demensdeum/2CE62A79E62A4404/LinuxSupportStorage/xcode111.xipæåŸã®ã¹ãããã§ XCode ã®äœ¿çšèš±è«Ÿå¥çŽãèªãã§ããã ããã°å¹žãã§ããæ¬¡ã«ãå¿ èŠãªãã¬ãã£ãã¯ã¹ã䜿çšããŠããŒã«ãã§ãŒã³ãæ§ç¯ããŸãã
INSTALLPREFIX=/home/demensdeum/Apps/osxcross ./build.shããã§ãåã®æé ã®ãã¬ãã£ãã¯ã¹ ãã£ã¬ã¯ããªãã osxcross ã䜿çšã§ããããã«ãªããŸãã CMake ã®æ°ãããã«ã ãã¯ãã远å ããå¿ èŠãªãã®ããã¹ãŠèšè¿°ããŠã¿ãŸãããã
if (OSXCROSS) SET(CMAKE_SYSTEM_NAME Darwin) SET(CMAKE_C_COMPILER o64-clang) SET(CMAKE_CXX_COMPILER o64-clang++) SET(CMAKE_C_COMPILER_AR x86_64-apple-darwin19-ar) SET(CMAKE_CXX_COMPILER_AR x86_64-apple-darwin19-ar) SET(CMAKE_LINKER x86_64-apple-darwin19-ld) SET(ENV{OSXCROSS_MP_INC} 1) endif()åçãªã³ã¯ã¯ç§ã«ãšã£ãŠã¯æåããªãã£ãã®ã§ãã©ã€ãã©ãªãéçã«ãšã¯ã¹ããŒãããŸãã
if (OSXCROSS) add_library(FlameSteelCore STATIC ${SOURCE_FILES}) else()次ã«ãosxcross ã«å¿ èŠãªã©ã€ãã©ãªããªããšããäºå®ã«çŽé¢ãããããããŸãããç§ã¯ SDL2 ã䜿çšããŠãããšãã«ããã«ééããŸããã osxcross ã¯æ¢è£œã®ã©ã€ãã©ãª ããã±ãŒãžããµããŒãããŠããŸã –ããã¯ããŒããããšãã°ãSDL2-mixer ãã€ã³ã¹ããŒã«ãããšã次ã®ããã«ãªããŸãã
osxcross-macports -v install libsdl2_mixerãã®åŸãcmake-make ãªã³ã¯ã§éåžžã©ããã©ã€ãã©ãª/ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ãéå§ã§ããŸããå¿ èŠã«å¿ããŠã©ã€ãã©ãªã®éçãªã³ã¯ãæå®ããããšãå¿ããªãã§ãã ããã
ã©ã€ãã©ãªã®æåã¢ã»ã³ããª
çŸåšãéçãªã³ã¯äžã«ã©ã€ãã©ãªãæ£ããã¢ãŒã«ã€ããããªããšããåé¡ã«ééããŸãããæçµçãªã¢ããªã±ãŒã·ã§ã³ããã«ããããšãã«ã次ã®ãšã©ãŒã衚瀺ãããŸãã
file was built for archive which is not the architecture being linked (x86_64)ãã®ãã±ãããšéåžžã«äŒŒãŠãããåé¿çãå®è£ ããããšãã§ãããã«ããæ£ããå®äºããŸãããéçã©ã€ãã©ãªãè§£åããosxcross ã¢ãŒã«ã€ãã䜿çšããŠæ°ãã«ãã«ãããŸãããã
ar x ../libFlameSteelCore.a rm ../libFlameSteelCore.a x86_64-apple-darwin19-ar rcs ../libFlameSteelCore.a *.oãŸããç§ãå人çã«èããŠããåé¡ã® 1 ã€ã¯ãUbuntu äžã§ macOS ã¢ããªã±ãŒã·ã§ã³ãçŽæ¥å®è¡ããæ©èœ (å°ãªããšãäžéšã®æ©èœ) ãæ¬ åŠããŠããããšã§ãããã¡ãããdarling ãšãããããžã§ã¯ãã¯ãããŸããããµããŒãã«ã¯ãŸã äžååãªç¹ãå€ããããŸãã
ãœãŒã¹
-
ããŒã«ã«ç»åçæ: ComfyUI ããã³ FLUX ã¢ãã«
çŸåšã§ã¯ãã¯ã©ãŠã ãµãŒãã¹ã«äŸåããå¿ èŠã¯ãªããªããç¬èªã®ããŒããŠã§ã¢ã ãã§é«å質ã®ç»åãçæã§ããããã«ãªããŸããããã®æçš¿ã§ã¯ãComfyUI ã䜿çšããŠææ°ã® FLUX ã¢ãã«ãã³ã³ãã¥ãŒã¿ãŒäžã§ããŒã«ã«ã«å®è¡ããæ¹æ³ã«ã€ããŠèª¬æããŸãã

ComfyUI ã¯ããŒãããŒã¹ã®ã¢ãŒããã¯ãã£ã䜿çšããŸããããã«ãããæ¬¡ã®ããšãå¯èœã«ãªããŸãã
– çæã®ããããæ®µéãå®å šã«å¶åŸ¡ããŸãã
– æ¢æã®ãã¯ãŒã¯ãããŒããç°¡åã«å ±æFLUX ã¯å€§èŠæš¡ãªã¢ãã«ã§ãããããããŒããŠã§ã¢èŠä»¶ã¯ SD 1.5 ãŸã㯠SDXL ãããé«ããªããŸãã
– ãã㪠ã«ãŒã (GPU): 12 GB VRAM 以äžãæèŒãã Nvidia RTX (å¿«é©ãªäœæ¥çš)ã 8 GB 以äžã®å Žåã¯ãéååããŒãžã§ã³ (GGUF ãŸã㯠NF4) ã䜿çšããå¿ èŠããããŸãã
– ã©ã³ãã ã¢ã¯ã»ã¹ ã¡ã¢ãª (RAM): æäœ 16 GB (32 GB 以äžãæãŸãã)ã
– ãã£ã¹ã¯å®¹é: ã¢ãã«ãšã³ã³ããŒãã³ãçšã«çŽ 20 ïœ 50 GBãFLUX ãéå§ããæãç°¡åãªæ¹æ³ã¯ãæ¢è£œã®ãã³ãã¬ãŒãã䜿çšããããšã§ããã¯ãŒã¯ãã㌠ãŠã£ã³ããŠã§ Flux text to image ãæ€çŽ¢ããŠã€ã³ã¹ããŒã«ããã ãã§ãã
ãText to Image (Flux.1 Dev)ãããŒãã«è±èªã§ããã³ãããæžããè§£å床 (FLUX 㯠1024×1024 以äžã§é©åã«åäœããŸã) ãéžæããŠãå®è¡ ãæŒããŸãã
第 1 äžä»£ã§ã¯ãã¢ãã«ããã㪠ã«ãŒã ã¡ã¢ãªã«ããŒãããããããæéããããå ŽåããããŸãã
-
Local Vibe ã³ãŒãã£ã³ã°: LM StudioãVS CodeãContinue
ã³ãŒã (ãããã Vibe ã³ãŒãã£ã³ã°) ã®äœæã«ãã¥ãŒã©ã« ãããã¯ãŒã¯ã䜿çšããããšèããŠããŠãããšãã° Nvidia RTX ãã㪠ã«ãŒããåããããªã匷åãªã³ã³ãã¥ãŒã¿ãŒãæã£ãŠããå Žåã¯ãç°å¢å šäœãå®å šã«ç¡æã§ãã·ã³ã«å±éã§ããŸããããã«ãããææãµãã¹ã¯ãªãã·ã§ã³ã®åé¡ã解決ãããã³ãŒããã©ãã«ãéä¿¡ãããªããããNDA ã®äžã§ãããžã§ã¯ããå®å šã«äœæ¥ã§ããããã«ãªããŸãããã®æçš¿ã§ã¯ãLM StudioãVS CodeãContinue æ¡åŒµæ©èœã®ããŒã«ã« ãã³ãã«ãçµã¿ç«ãŠãæ¹æ³ã«ã€ããŠèª¬æããŸãã
ããŒã«ã« Vibe ã³ãŒãã£ã³ã°çšããŒã«
å¿«é©ãªäœæ¥ã®ããã«ã¯ã次㮠3 ã€ã®äž»èŠãªã³ã³ããŒãã³ããå¿ èŠã§ãã
– LM ââStudio: ããŒã«ã« LLM ãããŠã³ããŒãããŠå®è¡ããããã®äŸ¿å©ãªã¢ããªã±ãŒã·ã§ã³ã§ãã GGUF ã¢ãã«ã®æäœã«äŒŽããã¹ãŠã®è€éããåŒãåããOpenAI API ãšäºææ§ã®ããããŒã«ã« ãµãŒããŒãæ§ç¯ããŸãã
– VS Code: 人æ°ãããã銎æã¿ã®ããã³ãŒã ãšãã£ã¿ã§ãã
– Continue: ãã¥ãŒã©ã« ãããã¯ãŒã¯ãäœæ¥ç°å¢ã«çŽæ¥çµ±åãã VS Code ã®æ¡åŒµæ©èœããã£ãããããããªãã¡ã¯ã¿ãªã³ã°çšã®ã³ãŒãããã€ã©ã€ããããããªãŒãã³ã³ããªãŒãããµããŒããããã§ããŸããããŒããŠã§ã¢èŠä»¶
ããŒã«ã«èšèªã¢ãã«ã¯ã¡ã¢ãªã倧éã«æ¶è²»ããŸãã
– ãã㪠ã«ãŒã (GPU): 8 GB VRAM 以äžãæèŒãã Nvidia (70 ïœ 80 åã®ãã©ã¡ãŒã¿ãæã€ã¢ãã«ã§å¿«é©ã«äœæ¥ãããã)ãéãã¢ãã«ã«ã¯ 16 GB ã® VRAM ãå¿ èŠã§ãã
– ãã£ã¹ã¯å®¹é: ããŸããŸãªããŠã³ããŒã ã¢ãã«ãä¿åããããã«çŽ 500 GBããªã³ã¯ã®æ§æ
ã»ããã¢ãã ããã»ã¹ã¯éåžžã«ç°¡åã§ãã¿ãŒããã«ã§ã®è€éãªæäœã¯å¿ èŠãããŸããã
1. LM StudioãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŸããçµã¿èŸŒã¿ã®æ€çŽ¢ã䜿çšããŠãQwen Coder ã gemma3:12b ãªã©ã®è»œéã¢ãã«ãèŠã€ããŸãã
2. LM Studio ã§ããããŒã«ã«ãµãŒããŒãã¿ãã«ç§»åããããµãŒããŒã®éå§ããã¯ãªãã¯ããŸããããã©ã«ãã§ã¯ããhttp://localhost:1234/v1ãã§èµ·åããŸãã
3. VS Code ãéãããã©ã°ã€ã³ ã¹ãã¢ããContinue æ¡åŒµæ©èœãã€ã³ã¹ããŒã«ããŸãã
4. Continue æ§æãã¡ã€ã«ãéããLM Studio ãããopenaiããããã€ããŒãšããŒã«ã«ãµãŒããŒã®ã¢ãã¬ã¹ãæå®ããŠæ°ããã¢ãã«ã远å ããŸãããã®åŸããç¶è¡ããµã€ãããŒã§ããŒã«ã« LLM ãšçŽæ¥éä¿¡ããã³ãŒãã«ã€ããŠè³ªåããããæ°ããã³ã³ããŒãã³ããçæãããã§ããŸãã
ãªããããæ©èœããã®ã§ãããã?
åã«æžããããã«ãLLM ã¯ãã©ããæ§é ãš WET (Write Everything Twice) ã³ãŒãã®æ¹ãåªããŠããŸããããŒã«ã« ãã©ã¡ãŒã¿ãŒ ã¢ãã«ã¯ãè€éãªã¢ãŒããã¯ãã£ã®èšèšã«é¢ããŠã¯ GPT-4 ã®ãããªå·šå€§ã¢ãã«ã«å£ããããããŸãããããã€ã©ãŒãã¬ãŒã ã³ãŒãã®çæãåçŽãªé¢æ°ã®ãªãã¡ã¯ã¿ãªã³ã°ãããã³ã©ããã ãããã¿ã€ãã³ã°ã«ã€ããŠã¯åå以äžã®èœåãåããŠããŸãã
ããã«ãããŒã«ã« Vibe ã³ãŒãã£ã³ã°ã䜿çšãããšãã³ãŒãããã·ã³ããé¢ããããšã¯ãããŸããããã®ããããã®çµã¿åããã¯äŒæ¥éçºãæ©å¯ããŒã¿ã®åãæ±ãã«æé©ã§ãã
åºå
ããŒã«ã« ãã¥ãŒã©ã« ãããã¯ãŒã¯ã¯ãããã°ã©ããŒãå®å šã«çœ®ãæããããè€éãªã·ã¹ãã ãèšèšãããããããšã¯ã§ããŸããããã ããLM Studio + VS Code + Continue ã®çµã¿åããã«ãããã¯ã©ãŠã ãµãŒãã¹ããã®ç¬ç«æ§ãæäŸããããã©ã€ãã·ãŒãç¶æãããŸããããã¯ãå°ããªã¢ãã«ã®å¶éãææ ¢ããŠãããžã§ã¯ã ã¢ãŒããã¯ãã£ãç¬ç«ããŠå¶åŸ¡ããææ¬²ãããå Žåãæ¥åžžçãªã¿ã¹ã¯ã«å®å šã«æ©èœããè£å©ããŒã«ã§ãã
ãªã³ã¯
https://code.visualstudio.com/
https://lmstudio.ai/
https://continue.dev/ãœãŒã¹
https://youtu.be/IqqCwhG46jY
https://www.youtube.com/watch?v=7AImkA96mE8 -
ããŒã«ã«ãããªçæ: ComfyUI ããã³ LTX-2.3
以åã¯ããã¥ãŒã©ã« ãããã¯ãŒã¯ã䜿çšããŠãããªãäœæããããšã¯ãRunway ã Luma ãªã©ã®ã¯ã©ãŠã ãµãŒãã¹ã®ç¹æš©ã§ãããçŸåšãææ°ã® Nvidia ã°ã©ãã£ã㯠ã«ãŒãããæã¡ã§ããã°ãã³ã³ãã¥ãŒã¿äžã§é«å質ã®ãããªãçæã§ããŸãããã®èšäºã§ã¯ãComfyUI ãšå¹æçãªLTX-2.3 ã¢ãã«ã䜿çšããŠããŒã«ã« ãããªçæãèšå®ããæ¹æ³ã説æããŸãã

ãããªçæçšããŒã«
ä»äºã®ããã«ã¯æ¬¡ã®ãã®ãå¿ èŠã§ãã
– ComfyUI: ããŒãããŒã¹ã®ã¢ãŒããã¯ãã£ãåãã匷åãªã€ã³ã¿ãŒãã§ã€ã¹ã§ãçæããã»ã¹ãæè»ã«ã«ã¹ã¿ãã€ãºã§ããŸãã
– LTX-2.3: Lightricks ã®ææ°ã¢ãã«ãæ¯èŒçé©åºŠãªãã㪠ã¡ã¢ãªèŠä»¶ã§ã¹ã ãŒãºã§è©³çްãªãããªãäœæããããã«æé©åãããŠããŸããããŒããŠã§ã¢èŠä»¶
ãããªã®çæã¯ãç»åãæäœãããããã¯ããã«ãªãœãŒã¹ã倧éã«æ¶è²»ããããã»ã¹ã§ãã
– ãã㪠ã«ãŒã (GPU): 768×512 ã®è§£å床ã«ã¯ã8 GB VRAM ãæèŒãã Nvidia RTX ãæäœéå¿ èŠã§ããå¿«é©ãªæäœãšããé«ãè§£å床ãå®çŸããã«ã¯ã16 ïœ 24 GB ã® VRAM ãæèŒããããšãéåžžã«æãŸããã§ãã
– ã©ã³ãã ã¢ã¯ã»ã¹ ã¡ã¢ãª (RAM): æäœ 32 GBããã㪠ã¢ãã«ãš VAE ã¯ãããŠã³ããŒãæã«å€ãã®ã¹ããŒã¹ãæ¶è²»ããŸãã
– ãã£ã¹ã¯å®¹é: ã¢ãã«èªäœãšé¢é£ã³ã³ããŒãã³ãçšã«çŽ 500 GBãã»ããã¢ãããšèµ·å
ComfyUI ã§ LTX-2.3 ãèµ·åããããã»ã¹ã¯æ¬¡ã®ãšããã§ãã
1. ComfyUI ãæŽæ°ããŸã: ãã®ã¢ãã«ã¯æ¯èŒçæ°ãããããææ°ããŒãžã§ã³ã®ã€ã³ã¿ãŒãã§ãŒã¹ãã€ã³ã¹ããŒã«ãããŠããããšã確èªããŠãã ããã
2. ã¯ãŒã¯ãããŒã®ã€ã³ã¹ããŒã«: æãç°¡åãªæ¹æ³ã¯ãLTX ãããªçšã®æ¢è£œã® JSON ãã³ãã¬ãŒããèŠã€ããããšã§ãããã®ã¢ãã«ã§ã¯ããããªæœåšã¹ããŒã¹ãåŠçããã«ã¯ç¹å®ã®ããŒããå¿ èŠã§ãã
3. ããã³ãããšãã©ã¡ãŒã¿: ã·ãŒã³ã®èª¬æãè±èªã§å ¥åããŸãã LTX-2.3 ã¯åããããçè§£ããŠããããšã«æ³šæããŠãã ãã (äŸ: ãã«ã¡ã©ãåšåãããããéãåãã)ãLTX-2.3 ãéžã¶çç±
LTX-2.3 ã¯ãç¬èªã®ã¯ã©ãŠã ãµãŒãã¹ãšåçã®çµæãæäŸããªãããããŒã«ã«ã§å®è¡ã§ãããšããç¹ã§æ³šç®ã«å€ããŸããããã«ãããæ¬¡ã®ããšãåŸãããŸãã
– å®å šãªãã©ã€ãã·ãŒ: ããã³ãããçæããããããªãä»ã®äººã®ãµãŒããŒã«éä¿¡ãããããšã¯ãããŸããã
– ã³ã³ãããŒã«: 詊è¡ããšã«æéãæ¯æãããšãªãããã¬ãŒã ã¬ãŒã (FPS)ãè§£å床ãããã³ããã®åŒ·åºŠã詊ãããšãã§ããŸããããŒã«ã« ãããªçæã¯çŸåšãéçºãé²ããããŠãããLTX-2.3 ã¯ãããŒã ããªãŠãããã®äžçãžã®çŽ æŽãããå ¥ãå£ãšãªããŸãã
ãªã³ã¯
https://github.com/comfyanonymous/ComfyUI
https://huggingface.co/Lightricks/LTX-Video -
ããŒã«ã«é³æ¥œçæ: ComfyUI ããã³ ACE-Step-1.5 ã¢ãã«
çŸåšã§ã¯ãã³ã³ãã³ããäœæããããã«ã¯ã©ãŠã ãµãŒãã¹ã«äŸåããå¿ èŠã¯ãããŸãããé«å質ã®é³æ¥œããã¹ãŠèªåã®ããŒããŠã§ã¢ã§çæã§ããŸãããã®æçš¿ã§ã¯ãComfyUI ã䜿çšããŠææ°ã® ACE-Step-1.5 ã¢ãã«ãã³ã³ãã¥ãŒã¿äžã§ããŒã«ã«ã«å®è¡ããæ¹æ³ã«ã€ããŠèª¬æããŸãã

ComfyUI ã¯ããŒãããŒã¹ã®ã¢ãŒããã¯ãã£ã䜿çšããŸããããã«ãããæ¬¡ã®ããšãå¯èœã«ãªããŸãã
– ãªãŒãã£ãªçæã®ããããæ®µéãå®å šã«å¶åŸ¡ããŸãã
– æ¢æã®ãã¯ãŒã¯ãããŒããç°¡åã«å ±æãACE-Step-1.5 ã¯ã倧éã®èšç®ãªãœãŒã¹ãå¿ èŠãšãã鳿¥œçæã®ããã®é«åºŠãªã¢ãã«ã§ããããŒããŠã§ã¢èŠä»¶ã¯ãå€ãã®åçŽãªã·ã³ã»ãµã€ã¶ãŒã®èŠä»¶ãããé«ããªããŸãã
– ãã㪠ã«ãŒã (GPU): 8 GB VRAM ä»¥äž (12 GB 以äžãæšå¥š) ãæèŒãã Nvidia RTX ã«ãããé«å質ã§å¿«é©ãªäœæ¥ãå¯èœã§ãã
– ã©ã³ãã ã¢ã¯ã»ã¹ ã¡ã¢ãª (RAM): æäœ 16 GB (32 GB 以äžãæãŸãã)ã
– ããã»ããµ (CPU): AVX/CUDA ã³ã³ãã¥ãŒãã£ã³ã°ãé©åã«ãµããŒãããææ°ã®ãã«ãã³ã¢ ããã»ããµã
– ãã£ã¹ã¯å®¹é: ã¢ãã«ãšã³ã³ããŒãã³ãçšã«çŽ 20 ïœ 50 GBãACE-Step-1.5 ãå®è¡ããæãç°¡åãªæ¹æ³ã¯ãæ¢è£œã®ãªãŒãã£ãªçæãã³ãã¬ãŒãã䜿çšããããšã§ããã¯ãŒã¯ãããŒãŠã£ã³ããŠã§é³æ¥œããã¹ãããªãŒãã£ãªã«æ€çŽ¢ããŠã€ã³ã¹ããŒã«ããã ãã§ãã
ãžã£ã³ã«ãšé°å²æ°ã説æããããã³ãã (ããšãã°ããéäœé³ã®ãã髿æã®ããã·ã³ã»ãŠã§ãŒã ãã©ãã¯ã) ããããã³ããå ¥åãããŒãã«æžããŸããåžæã®æéãæå®ããŠå®è¡ãæŒããŸãã
第 1 äžä»£ã§ã¯ãã¢ãã«ããã㪠ã«ãŒã ã¡ã¢ãªã«ããŒããããè€éãªé³é¿ãã¿ãŒã³ãåŠçããããããæéããããå ŽåããããŸããhttps://github.com/comfyanonymous/ComfyUI
https://www.youtube.com/watch?v=UAlLD5fS7-c -
ollamã䜿çšããããŒã«ã«ãã¥ãŒã©ã«ãããã¯ãŒã¯
ChatGPT ã®ãããªãã®ãèµ·åããããšæã£ãŠããŠãããšãã° Nvidia RTX ãã㪠ã«ãŒããåããããªã匷åãªã³ã³ãã¥ãŒã¿ãŒãæã£ãŠããå Žåã¯ãollam ãããžã§ã¯ããå®è¡ã§ããŸããããã«ãããããŒã«ã« ãã·ã³äžã§æ¢è£œã® LLM ã¢ãã«ã® 1 ã€ãå®å šã«ç¡æã§äœ¿çšã§ããããã«ãªããŸãã ollama ã¯ãChatGPT ã®æ¹æ³ã§ LLM ã¢ãã«ãšéä¿¡ããæ©èœãæäŸããŸããææ°ããŒãžã§ã³ã§ã¯ãç»åãèªã¿èŸŒã¿ãåºåããŒã¿ãjson圢åŒã§ãã©ãŒãããã§ããæ©èœãçºè¡šãããŸããã
ãŸãããããžã§ã¯ãèªäœã Apple M2 ããã»ããµãæèŒãã MacBook ã§å®è¡ããŸããããAMD ã®ææ°ã¢ãã«ã®ãã㪠ã«ãŒãããµããŒããããŠããããšãããã£ãŠããŸãã
macOS ã«ã€ã³ã¹ããŒã«ããã«ã¯ãollam Web ãµã€ãã«ã¢ã¯ã»ã¹ããŠãã ããã
https://ollama.com/download/macãmacOS çšã®ããŠã³ããŒãããã¯ãªãã¯ãããšãollama-darwin.zip 圢åŒã®ã¢ãŒã«ã€ããããŠã³ããŒããããŸããã¢ãŒã«ã€ãå ã«ã¯ Ollama.app ããããããããã¢ããªã±ãŒã·ã§ã³ãã«ã³ããŒããå¿ èŠããããŸãããã®åŸãOllama.app ãèµ·åããŸãããããããæåã®èµ·åæã«ã€ã³ã¹ããŒã« ããã»ã¹ãçºçããŸãããã®åŸããã¬ã€ã«ãªã©ãã®ã¢ã€ã³ã³ã衚瀺ãããŸãããã¬ã€ã¯å³äžã®æèšã®é£ã«ãããŸãã
ãã®åŸãéåžžã® macOS ã¿ãŒããã«ãèµ·åããã³ãã³ããå ¥åã㊠ollam ã¢ãã«ãããŠã³ããŒããã€ã³ã¹ããŒã«ããå®è¡ããŸããå©çšå¯èœãªã¢ãã«ã説æãããã³ãã®ç¹æ§ã®ãªã¹ãã¯ãollam Web ãµã€ãã§ã芧ããã ããŸãã
https://ollama.com/searchçºå£²æã«ãããªã«ãŒãã«é©åããªãå Žåã¯ããã©ã¡ãŒã¿ãæãå°ãªãã¢ãã«ãéžæããŠãã ããã
ããšãã°ãllama3.1:latest ã¢ãã«ãèµ·åããã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
ollama run llama3.1:latestWindows ãš Linux ã®ã€ã³ã¹ããŒã«ã¯äžè¬çã«äŒŒãŠããŸãããå Žåã«ãã£ãŠã¯ ollam ã€ã³ã¹ããŒã©ãŒããããããã« Powershell çµç±ã§ã€ã³ã¹ããŒã©ãŒãæäœããŸãã
Linux ã®å Žåãã€ã³ã¹ããŒã«ã¯ã¹ã¯ãªããã䜿çšããŠè¡ãããŸãããç¹å®ã®ããã±ãŒãž ãããŒãžã£ãŒã®ããŒãžã§ã³ã䜿çšããããšããå§ãããŸãã Linux ã§ã¯ãéåžžã® bash ã¿ãŒããã«çµç±ã§ ollam ãèµ·åããããšãã§ããŸããæ å ±æº
https://www.youtube.com/watch?v=Wjrdr0NU4Sk
https://ollama.com -
ffmpegã䜿çšãããããªå®å®å
ãããªãå®å®ãããŠæã¶ããé€å»ãããå Žåã¯ããffmpegãããŒã«ã匷åãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸããçµã¿èŸŒã¿ãã£ã«ã¿ãŒ `vidstabdetect` ãš `vidstabtransform` ã®ãããã§ãè€éãªãã㪠ãšãã£ã¿ãŒã䜿çšããã«ãããã§ãã·ã§ãã«ãªçµæãéæã§ããŸãã
ä»äºã®æºå
å§ããåã«ã`ffmpeg` ã `vidstab` ã©ã€ãã©ãªããµããŒãããŠããããšã確èªããŠãã ããã Linux ã§ã¯ã次ã®ã³ãã³ãã§ããã確èªã§ããŸãã
bash ffmpeg -filters | grep vidstabã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ã远å ã§ããŸãã
sudo apt install ffmpeg libvidstab-devbrew ã«ãã macOS ã®ã€ã³ã¹ããŒã«:
brew install libvidstab brew install ffmpegããã§ã¯ãããã»ã¹ã«é²ã¿ãŸãããã
ã¹ããã 1: åäœåæ
ãŸãããããªã®åããåæããå®å®åãã©ã¡ãŒã¿ãå«ããã¡ã€ã«ãäœæããå¿ èŠããããŸãã
ffmpeg -i input.mp4 -vf vidstabdetect=shakiness=10:accuracy=15 transfile=transforms.trf -f null -ãã©ã¡ãŒã¿:
æºã: ãããªã®æºãã¬ãã« (ããã©ã«ã㯠5ãããè€éãªå Žå㯠10 ãŸã§å¢ããããšãã§ããŸã)ã
粟床: åæç²ŸåºŠ (ããã©ã«ã㯠15)ã
transfile: ã¢ãŒã·ã§ã³ãã©ã¡ãŒã¿ãä¿åãããã¡ã€ã«åãã¹ããã 2: å®å®åãé©çšãã
ããã§ã倿ãã¡ã€ã«ã䜿çšããŠå®å®åãé©çšã§ããããã«ãªããŸããã
ffmpeg -i input.mp4 -vf vidstabtransform=input=transforms.trf:zoom=5 output.mp4ãã©ã¡ãŒã¿:
input: 倿ãã©ã¡ãŒã¿ãå«ããã¡ã€ã« (æåã®ã¹ãããã§äœæ) ãæããŸãã
ãºãŒã : é»ããšããžãé€å»ããããã®ãºãŒã ä¿æ° (äŸ: 5 – ã¢ãŒãã£ãã¡ã¯ããé€å»ããããŸã§èªåãºãŒã )ã -
ãã¥ãŒãªã³ã° ã³ã³ãã¥ãŒãã£ã³ã° ãã·ã³
ç§ã¯ã1936 幎ã®ã¢ã©ã³ã»ãã¥ãŒãªã³ã°ã®è«æãè§£å床ã®åé¡ãžã®å¿çšã«ããèšç®å¯èœãªæ°ã«ã€ããŠãã®æåã®ããŒãžã®ç¿»èš³ã玹ä»ããŸããæåã®ç« ã«ã¯ãåŸã«çŸä»£ã®ã³ã³ãã¥ãŒãã£ã³ã°ã®åºç€ãšãªãã³ã³ãã¥ãŒã¿ãŒã®èª¬æãå«ãŸããŠããŸãã
ãã®èšäºã®å šèš³ãšèª¬æã¯ãã¢ã¡ãªã«ã®æ®åè Charles Petzold ã«ãããReading Turing: A Journey through Turing’s Historical Article on Computability and Turing Machinesã(ISBN 978-5-97060-231-7ã978-0-470-22905-7) ãšããã¿ã€ãã«ã®æ¬ã§èªãããšãã§ããŸãã
å ã®èšäº:
https://www.astro.puc.cl/~rparra/tools/PAPERS/turing_1936.pdfè§£å床åé¡ãžã®å¿çšã«ããèšç®å¯èœãªæ°å€ã«ã€ããŠ
ååãã¥ãŒãªã³ã°
[1936 幎 5 æ 28 æ¥ã«åé – 1936 幎 11 æ 12 æ¥ã«èªäº]
ãèšç®å¯èœãªãæ°å€ã¯ãå°æ°ãšããŠã®è¡šçŸãæéã®æ¹æ³ã§èšç®ã§ãã宿°ãšããŠç°¡åã«èª¬æã§ããŸããäžèŠãããšããã®èšäºã§ã¯æ°å€ãèšç®å¯èœãªãã®ãšããŠæ±ããŸãããæŽå€æ°ã宿°å€æ°ãèšç®å¯èœãªå€æ°ãèšç®å¯èœãªè¿°èªãªã©ã®èšç®å¯èœãªé¢æ°ãå®çŸ©ããŠèª¿æ»ããããšã¯ãã»ãŒåããããç°¡åã§ãããã ãããããã®èšç®å¯èœãªãªããžã§ã¯ãã«é¢é£ããåºæ¬çãªåé¡ã¯ãã©ã®å Žåã§ãåãã§ããè©³çŽ°ãªæ€èšã®ããã«ãèæ ®ããæ¹æ³ãæãé¢åã§ã¯ãªããããèšç®å¯èœãªãªããžã§ã¯ããšããŠèšç®å¯èœãªæ°å€ãéžæããŸãããèšç®å¯èœãªæ°å€ãšèšç®å¯èœãªé¢æ°ãªã©ã®é¢ä¿ã«ã€ããŠã¯ãè¿ããã¡ã«èª¬æããããšæã£ãŠããŸããåæã«ãèšç®ââå¯èœãªæ°å€ã§è¡šçŸãããå®å€æ°ã®é¢æ°çè«ã®åéã§ãç ç©¶ãè¡ãããŸããç§ã®å®çŸ©ã«ããã°ã宿°ã¯ããã® 10 鲿°è¡šçŸãæ©æ¢°ã§èšè¿°ã§ããå Žåã«èšç®å¯èœã§ãã
ãã©ã°ã©ã 9 ãš 10 ã§ã¯ãèšç®å¯èœãªæ°å€ã«ã¯ãåœç¶èšç®å¯èœã§ãããšèãããããã¹ãŠã®æ°å€ãå«ãŸããããšã瀺ãããã«ãããã€ãã®è°è«ã瀺ããŸããç¹ã«ãããã€ãã®å€§ããªã¯ã©ã¹ã®æ°å€ãèšç®å¯èœã§ããããšã瀺ããŸãããããã«ã¯ãããšãã°ããã¹ãŠã®ä»£æ°çæ°å€ã®å®éšãããã»ã«é¢æ°ã®ãŒãã®å®éšãæ°å€ Ïãe ãªã©ãå«ãŸããŸãããã ããæ¬¡ã®èšç®äžå¯èœãªå®çŸ©å¯èœãªæ°å€ã®äŸã§ãããããã«ãèšç®å¯èœãªæ°å€ã«ã¯å®çŸ©å¯èœãªæ°å€ããã¹ãŠå«ãŸããããã§ã¯ãããŸããã
èšç®å¯èœãªæ°å€ã®ã¯ã©ã¹ã¯éåžžã«å€§ãããå€ãã®ç¹ã§å®æ°ã®ã¯ã©ã¹ãšäŒŒãŠããŸãããäŸç¶ãšããŠæ°ããããšãå¯èœã§ãã §8 ã§ã¯ãåå¯Ÿãšæãããç¹å®ã®è°è«ãæ€èšããŸãããããã®è°è«ã® 1 ã€ãæ£ããé©çšããããšãäžèŠãããšã²ãŒãã«* ã®çµè«ãšäŒŒãçµè«ãå°ãåºãããŸãããããã®çµæã¯éåžžã«éèŠãªå¿çšåéãæã£ãŠããŸããç¹ã«ã以äžã«ç€ºãããã« (§11)ãè§£å床ã®åé¡ã«ã¯è§£æ±ºçããããŸããã
æè¿ã®èšäºã§ãã¢ãã³ãŸã»ãã£ãŒãã¯ã广çãªèšç®å¯èœæ§ããšããèãã玹ä»ããŸãããããã¯ç§ã®ãèšç®å¯èœæ§ããšããèããšåãã§ãããå®çŸ©ã¯ãŸã£ããç°ãªããŸãããã£ãŒãã解決ã®åé¡ã«é¢ããŠåæ§ã®çµè«ã«éããŠããŸãã ãèšç®å¯èœæ§ããšãå¹ççã«èšç®å¯èœããåçã§ããããšã®èšŒæã¯ããã®èšäºã®ä»é²ã«ç€ºãããŠããŸãã
1. ã³ã³ãã¥ãŒã¿
èšç®å¯èœãªæ°ãšã¯ãå°æ°ç¹ä»¥äžã®æ¡ãæéã®æ¹æ³ã§æ°ããããæ°ã§ããããšã¯ãã§ã«è¿°ã¹ãŸãããããã§ã¯ããæç¢ºãªå®çŸ©ãå¿ èŠã§ãããã®èšäºã§ã¯ã§9 ã«å°éãããŸã§ãããã§äžããããå®çŸ©ãæ£åœåããå®éã®è©Šã¿ã¯è¡ããŸãããä»ã®ãšãããïŒãã®ããã®ïŒïŒè«ççãªïŒæ ¹æ ã¯ã人éã®èšæ¶ã«ã¯å¿ ç¶çã«éçããããšããããšã ããè¿°ã¹ãŠãããŸãã
宿°ãèšç®ããéçšã«ãã人éãšãæéæ°ã®æ¡ä»¶ q1ãq2ã…ãqR ã®ã¿ãæºããããšãã§ããæ©æ¢°ãæ¯èŒããŠã¿ãŸãããããããã®æ¡ä»¶ããm æ§æããšåŒã³ãŸãããã®ïŒã€ãŸãããã®ããã«å®çŸ©ãããïŒãã·ã³ã«ã¯ãããŒããïŒçŽã«äŒŒããã®ïŒãè£ åãããŠããŸããæ©æ¢°å ãééãããã®ãã«ãã¯ããã€ãã®ã»ã¯ã·ã§ã³ã«åãããŠããŸãããããããæ£æ¹åœ¢ããšåŒã³ãŸãããããã®ãããªåæ£æ¹åœ¢ã«ã¯ãäœããã®ãã·ã³ãã«ããå«ããããšãã§ããŸãããã€ã§ããããã®ãã·ã³å ã«ãããã·ã³ãã«ãå«ããã®ãããªæ£æ¹åœ¢ã¯ 1 ã€ã ããããšãã° r çªç®ã®æ£æ¹åœ¢ã ãã§ãããã®ãããªæ£æ¹åœ¢ããã¹ãã£ã³ãããã·ã³ãã«ããšåŒã³ãŸãã ãã¹ãã£ã³ãããæåãã¯ãããã°ãã·ã³ããçŽæ¥èªèããŠãããå¯äžã®æåã§ãããã ããm æ§æã倿Žããããšã§ããã·ã³ã¯ä»¥åã«ãèŠãã(ã¹ãã£ã³ãã) æåã®äžéšã广çã«èšæ¶ã§ããããã«ãªããŸãããã€ã§ããã·ã³ã®å¯èœãªåäœã¯ãm æ§æ qn ãšã¹ãã£ã³ãããã·ã³ãã« *** ã«ãã£ãŠæ±ºãŸããŸãããã®ã·ã³ãã«ã®ãã¢ã qnããæ§æããšåŒã³ãŸãããããã®ããã«æå®ãããæ§æã«ãã£ãŠãç¹å®ã®ãã·ã³ã®å¯èœãªåäœã決ãŸããŸããã¹ãã£ã³ãããæ£æ¹åœ¢ã空çœã§ãã (ã€ãŸããæåãå«ãŸããŠããªã) æ§æã®äžéšã§ã¯ããã·ã³ã¯ã¹ãã£ã³ãããæ£æ¹åœ¢ã«æ°ããæåãæžã蟌ã¿ããã®ä»ã®æ§æã§ã¯ã¹ãã£ã³ãããæåãæ¶å»ããŸãããã®ãã·ã³ã¯ç§»åããŠå¥ã®ãã¹ãã¹ãã£ã³ããããšãã§ããŸããããã®æ¹æ³ã§ã¯å³ãŸãã¯å·Šã«é£æ¥ãããã¹ã«ã®ã¿ç§»åã§ããŸãããããã®æäœã«å ããŠããã·ã³ã® m æ§æã倿Žããããšãã§ããŸãããã®å Žåãæžãããæåã®äžéšã¯ãèšç®ããã宿°ã®å°æ°éšåã§ããäžé£ã®æ°åã圢æããŸããæ®ãã¯ãèšæ¶ãå©ãããããã®äžæ£ç¢ºãªããŒã¯ã«ãããŸããããã®å Žåãäžèšã®äžæ£ç¢ºãªããŒã¯ã®ã¿ãæ¶å»ããããšãã§ããã
ããã§èæ ®ãããæŒç®ã«ã¯ãèšç®ã§äœ¿çšããããã¹ãŠã®æŒç®ãå«ãŸãããšç§ã¯äž»åŒµããŸãããã®ã¹ããŒãã¡ã³ãã®çè«çæ ¹æ ã¯ãæ©æ¢°çè«ãçè§£ããŠããèªè ã«ãšã£ãŠã¯çè§£ãããããã®ã§ãããããã£ãŠã次ã®ã»ã¯ã·ã§ã³ã§ã¯ãããã·ã³ãããããŒããããã¹ãã£ã³ãããããªã©ã®çšèªã®æå³ã®çè§£ã«åºã¥ããŠãåé¡ã®çè«ãå±éããŠãããŸãã
*ã²ãŒãã«ãããªã³ããã¢æ°åŠ (1910 幎ã1912 幎ã1913 幎ã«ãã¯ã€ãããããšã©ãã»ã«ã«ãã£ãŠåºç) ããã³é¢é£ã·ã¹ãã ã®åœ¢åŒçã«æ±ºå®äžå¯èœãªæã«ã€ããŠã第 1 éšãJournal of Mathematicsã ãç©çåŠããã€ãèªæåèªç¬¬ 38 å· (1931 幎ã173-198 ããŒãž)ã
** ã¢ãã³ãŸã»ãã£ãŒãããåçæŽæ°çè«ã«ãããæ±ºå®äžå¯èœãªåé¡ããAmerican J. of Math.ã第 58 å· (1936 幎)ã345-363 ããŒãžã
*** ã¢ãã³ãŸ ãã£ãŒããã解決åé¡ã«é¢ããã¡ã¢ããJ. of Symbolic LogicãNo. 1 (1936)ã40-41 ããŒãž -
ãã³ããã«ãº
Donki Hills ã¯äžäººç§°èŠç¹ã®ãã©ãŒ ã³ã¡ã㣠ã¢ããã³ãã£ãŒã§ããã¬ã€ã€ãŒã¯ãµã¹ãã³ã¹ãšäºæãã¬ãŠãŒã¢ã¢ãçµã¿åããã£ããã¹ããªã¢ã¹ãªç©èªãäœéšã§ããŸãã
äž»äººå ¬ã®ãžã§ãŒã ãºã¯ãçªç¶æ¥ç¶ãåæããããªã³ã©ã€ã³äžã®å人ããªã¢ãæ¢ãã«è¡ããŸããå¯äžã®èšŒæ ã¯ãããã·ãã«ã¹ã¯å°æ¹ã®ãã³ãã»ãã«ãºãšãã人éé¢ããæã瀺ãã©ã³ãã ãªåçã§ããçå®ãçªãæ¢ããããšããæ¬²æ±ã«é§ããããžã§ãŒã ãºã¯ãããªã¢ã®å€±èžªã®ãã¹ãŠã®ç¶æ³ãæããã«ããããã«ç¬èªã®èª¿æ»ãéå§ããŸããã²ãŒã 㯠Steam ã§å ¥æã§ããŸã:
https://store.steampowered.com/app/3476390/Donki_Hills/ -
ç³ç©ã¿AR
Masonry AR ã¯ãç§å¯çµç€Ÿã®äžçã«æµžããäœçœ®ããŒã¹ã®ãã«ããã¬ã€ã€ãŒæ¡åŒµçŸå® (AR) ã²ãŒã ã§ããããªãã®è¡ã®éããæ¢çŽ¢ããããªãŒã¡ãŒãœã³ã®ç¥èã®æ¬ãéããèªåã®ãããžãèŠã€ããŠãçŸå®äžçã®å°å³äžã§ã®åœ±é¿åãç«¶ããŸãããã
äž»ãªæ©èœ
- å°çäœçœ®æ å ±ããŒã¹ã®ã²ãŒã ãã¬ã€:ããã€ã¹ã® GPS ã䜿çšããŠçŸå®äžçãç§»åããç§å¯ã®æ¬ããªãœãŒã¹ãèŠã€ããŸãã
- èªåãŠã©ãŒã¯ ã¢ãŒã:GPS ã¢ã¯ã»ã¹ãå¶éãããŠããå Žåã¯ãäžçã®éŠéœã® 1 ã€ãéå§ç¹ãšããŠéžæããŠèªåãŠã©ãŒã¯ ã¢ãŒããéå§ã§ããŸãã
- ãããžã®äœæ: å®éã®å°å³äžã«ããªãŒã¡ãŒãœã³ã®ãããžãèšç«ããæå£ã®åœ±é¿åãæ¡å€§ããŸãã
- ã²ãŒã å çµæž: ã²ãŒã å é貚 (MOS) ãç²åŸããé åãéçºããåéãšç޹ä»ãªã³ã¯ãå ±æããŸãã
- ã¯ãã¹ãã©ãããã©ãŒã : Three.js ã«åºã¥ããã¬ã³ããªã³ã°ãåãã Flame Steel Engine 2 ã²ãŒã ãšã³ãžã³ã®ãããã§ãã²ãŒã ã¯ã¢ãã€ã« ããã€ã¹ã PC ã® Web ãã©ãŠã¶ã§çŽæ¥å®è¡ãããŸãã
-
ããã¬ããã£ãŒ

Teflecher ã¯ãKotlin ãã«ããã©ãããã©ãŒã (KMP) ãš Compose ãã«ããã©ãããã©ãŒã äžã«æ§ç¯ããããé«éã§ã€ã³ã¿ã©ã¯ãã£ããªã¯ãã¹ãã©ãããã©ãŒã ã®ã¯ã€ãº ã¢ããªã±ãŒã·ã§ã³ã§ããããã«ããããŠãŒã¶ãŒã¯ããŒã«ã« JSON ãã¡ã€ã«ãŸãã¯ãªã¢ãŒã URL ããã¯ã€ãºãçŽæçã«ããŒãããå€è¢éžæåŒã®è³ªåã«åçããæ£è§£ã«å¯Ÿãã峿ã®ãã£ãŒãããã¯ã確èªããçµæã远跡ããããšãã§ããŸãããŠã§ãïŒ
https://demensdeum.com/software/teflecher/GitHub:
https://github.com/zefir1990/teflecherãŸããã€ãªã³ + ãã£ãã·ã¿ ãã¯ãããžãŒã«åºã¥ãã Teflecher Editor 圢åŒã®ã¯ã€ãº ãšãã£ã¿ãŒã§ããããŸãã
ãŠã§ãïŒ
https://demensdeum.com/software/teflecher-editor/ -
ãŽãŒã¹ãã³ã³ã¿ã¯ã

ãŽãŒã¹ãé£çµ¡å ã¯ãæšæºã·ã¹ãã API ãé»è©±åž³ããé£çµ¡å ãé ãããã«èšèšãããã·ã³ãã«ãª Web ã¢ããªã±ãŒã·ã§ã³ã§ãããã¹ãŠã®æ å ±ã¯ãã©ãŠã¶å ã§ã®ã¿ããŒã«ã«ã«ä¿åãããå€éšãµãŒããŒã«ã¯è»¢éãããŸãããäž»ãªæ©èœ
- ã·ã¹ãã API ããã®é衚瀺:é£çµ¡å ã¯ãæšæºã®ã·ã¹ãã é£çµ¡å API ããã³ããã€ã¹ã®é»è©±åž³ãšåæãããŸããã
- ããã㯠ãã¹ã¯ãŒã: ç¹å¥ãªãã¹ã¯ãŒããå ¥åãããšãé£çµ¡å ããŒã¿ããŒã¹å šäœãå³åº§ã«åãæ¶ãäžèœã«åé€ãããŸãã
- ã€ã³ããŒããšãšã¯ã¹ããŒã: ããã¯ã¢ãã ã³ããŒãäœæããããã«ãCSV ãã¡ã€ã«çµç±ã§é£çµ¡å ããŒã¿ããŒã¹ã䟿å©ã«è»¢éããŸãã
ãªã³ã©ã€ã³ç³è«:
https://demensdeum.com/software/ghost-contacts/ -
ãã¥ãŒãã¢ãŒããããžã§ã¯ã2
ãã¥ãŒã ã¢ãŒã ãããžã§ã¯ã 2 ãžãããã – æ³ååãèªç±ã«åãããçæ³ç㪠3D ãã£ã³ãã¹ã§ãããã¯ã»ã« ãã€ã³ããäœæããè²ã詊ãããã©ãŠã¶å ã§ãŠããŒã¯ãª 3D ã¢ãã«ã«åœãå¹ã蟌ã¿ãŸãã
ãã¥ãŒãã¢ãŒããããžã§ã¯ã2ãšã¯äœã§ãã?
ããã¯ãç»é¢ã 3D ãã€ã³ãçšã®ã€ã³ã¿ã©ã¯ãã£ããªãã£ã³ãã¹ã«å€ããã¯ãªãšã€ãã£ããªã²ãŒã ã§ããããªãã®ç®ã®åã«ã¯ãããªãã®ã¢ã€ãã¢ã圢ãæããè²ã§æºãããããããããªäžæ¬¡å 空éãåºãã£ãŠããŸãã
äž»ãªæ©èœ
- 3D æç»: ãã¯ã»ã« ã¢ãŒããš 3D ãžãªã¡ããªã®äœæã«çŠç¹ãåœãŠãããªã©ãã¯ã¹ã§ããã¯ãªãšã€ãã£ã ããã»ã¹
- ã«ã©ãŒããã«ãŒ: 䟿å©ãª RGB ã¹ã©ã€ããŒã䜿çšããŠãåãããã¯ã®è²åãã埮調æŽããŸãã
- åãã®èªç±: 䟿å©ãªã«ã¡ã©å¶åŸ¡ã䜿çšããŠãããããè§åºŠããçµµç»ãæ¢çŽ¢ã§ããŸãã
- ãã£ã³ãã¹ã®ä¿å: äœæ¥å 容ããã¡ã€ã«ã«ä¿åãããã€ã§ãæç»ã«æ»ã£ãããä»ã®ãŠãŒã¶ãŒãšäœæ¥å 容ãå ±æãããã§ããŸãã
管ç
- WASD – ã«ã¡ã©ã®åã
- ããŠã¹ – ã«ã¡ã©ã®åè»¢ãšæ€æ»
- ã€ã³ã¿ãŒãã§ãŒã¹ (GUI) – è²ã®éžæãšèª¿æŽ
éã¶ïŒ
https://demensdeum.com/software/cube-art-project-2/ -
Raiden Video Ripper
Raiden Video Ripper ã¯ããããªç·šéãšãã©ãŒããã倿ã®ããã«èšèšããããªãŒãã³ãœãŒã¹ ãããžã§ã¯ãã§ãã Qt 6 (Qt Creator) ã䜿çšããŠäœæãããŠããããããªãç·šéã㊠MP4ãGIFãWebM 圢åŒã«å€æã§ããŸããåç»ããé³å£°ãæœåºããŠMP3圢åŒã«å€æããããšãã§ããŸãã
ãã€ã¯ããœãã ã¹ãã¢:
https://apps.microsoft.com/detail/9nvzjs98smgcGitHub:
https://github.com/demensdeum/RaidenVideoRipper/releases -
ããŒãºãã€ããŒãº
èµ€ãææã®éé ·ãªç¶æ³ã§ã¯ãäžç§äžç§ããã¹ãŠã®ã»ã¯ã¿ãŒãéèŠã§ããã³ãããŒã®åç¶ãšè²Žéãªç«æã®è³æºã®ç®¡çãè³ããŠæŠãã¿ãŒã³ããŒã¹ã®æŠç¥ã²ãŒã ã§ããããŒãº ãã€ããŒãºãã玹ä»ã§ããããšãå¬ããæããŸãã
ç«ææ¡æè ãšã¯äœã§ãã?
ããŒãº ãã€ããŒãºã§ã¯ãç«æã®æ¡æäŒç€Ÿã管çããŸããããªãã®ä»»åã¯ã人工ç¥èœãä»ã®ãã¬ãŒã€ãŒãšã®æ¿ããç«¶äºã«çŽé¢ããŠãåºå°ã建èšããè³æºã»ã¯ã¿ãŒãå é ããèªåŸæ¡æãŠãããã®è¡åã調æŽããããšã§ãã
äž»ãªæ©èœ
- æŠè¡æŠç¥: äºåã«æµã®åããèšç®ããåºå°ã®éçºãšé åã®å é ãèšç»ããŸãã
- èªåŸãŠããã: æ¡æããããã®åäœã調æŽããå¹çãæå€§åããããã«ããžãã¯ãã«ã¹ã¿ãã€ãºããŸãã
- ããŸããŸãªã¢ãŒã: ã·ã³ã°ã«ãã¬ã€ã€ãŒã®èšç·Žå Žã§ã¹ãã«ã磚ãããããã«ããã¬ã€ã€ãŒ ã¢ãŒãã§ä»ã®å ¥æ€è ãšç«¶äºãããã§ããŸãã
- é«åºŠãª AI: æŠè¡çãªãã¹ãèš±ããªãã¹ããŒã ãªãŒãããã³ãšãªãœãŒã¹ã奪ãåããŸãã
-
ãã¬ã€ã ã¹ãã£ãŒã«ïŒãã¹ãã¹ã¯2
å·ããå ãããµããå·¥æ¥çšå·šå€§æ§é ç©ã®æãŠããªãå»äžã§ãæ°ããªææŠãããªããåŸ ã£ãŠããŸããå€å žçãªçŸåŠãšææ°ã®ãªã¢ã«ã¿ã€ã ã²ãŒã ãã¬ã€ãçµã¿åããã 3D ãã³ãžã§ã³ ã¯ããŒã©ãŒã§ããFlame Steel: Death Mask 2 ãã玹ä»ã§ããããšãå¬ããæããŸãã
ãã¬ã€ã ã¹ãã£ãŒã«: ãã¹ãã¹ã¯ 2 ãšã¯äœã§ãã?
æç¶ãçã«çæãããè¿·è·¯ã§ç®ãèŠãããšãããã£ã«ã¿ãŒããšåŒã°ããæµå¯Ÿçãªååšãæ¯ã¿ãŒã³æœãã§ããå¯èœæ§ãããããšãæ³åããŠã¿ãŠãã ããã Flame Steel: Death Mask 2 ã§ã¯ãããªãã¯ã·ãŒã«ãŒã®åœ¹å²ãåŒãåããFlame Steel Engine 2 (Three.js ã°ã©ãã£ãã¯ã¹ ã¬ã³ããªã³ã°ã䜿çš) äžã«æ§ç¯ãããäžçãæ¢çŽ¢ããŸãã
äž»ãªæ©èœ
- ããã·ãŒãžã£ã«ãã³ãžã§ã³: ããããã®è©Šã¿ã¯ãŠããŒã¯ã§ãããµãŒããŒã¯ç§å¯ãšå±éºã«æºã¡ãæ°ããããããäœæããŸãã
- ã¿ãŒããã«: å®å šãªå¶åŸ¡ãåžæããå Žåã¯ãçµã¿èŸŒã¿ã®ã³ãã³ã ã©ã€ã³ ã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããŠã·ã¹ãã ãšçŽæ¥å¯Ÿè©±ããããšãã§ããŸããé«åºŠãªã¢ã¯ã·ã§ã³ã®å®è¡ããããã°ãã³ãã³ãã®éä¿¡ãªã©ãè¡ãããšãã§ããŸãã
- æŠéãšãµãã€ãã«: ãã£ã«ã¿ãŒãšæŠã£ãŠããããç²åŸããããã䜿ã£ãŠå®ç®±ãéããã¹ããŒã¿ã¹ãåäžãããŸããå¥åº·ã«æ³šæããŠãã ãããçåãä¿èšŒãããŠããããã§ã¯ãããŸããã
- å·¥æ¥çãªçŸåŠ: 巚倧ãªå·šå€§æ§é ç©ã®é«ã³ã³ãã©ã¹ãã®èŠèŠåãšç¡èçãªé°å²æ°
ãã¹ã¯ã®èåŸã«ãããã¯ãããžãŒ
ã²ãŒã ã¯ãã©ãŠã¶çšã«äœæãããŠããã以äžã䜿çšããŸãã
- ããã³ããšã³ã: ã¹ã ãŒãºãª 3D ã¬ã³ããªã³ã°ã®ããã®çŽç²ãª JavaScript ãš Flame Steel Engine 2 (Three.js ã°ã©ãã£ãã¯ã¹ ã¬ã³ãã©ãŒä»ã)ã
- ããã¯ãšã³ã: ãµãŒããŒåŽãå®è¡ããããã® Node.jsã
- ã€ã³ãã©ã¹ãã©ã¯ãã£: æ°žç¶çãªããŒã¿ ã¹ãã¬ãŒãžçšã® MongoDB ãšãªã¢ã«ã¿ã€ã ã®ç©ºéã€ã³ããã¯ã¹äœæçšã® Redis
-
ãŠã·ã¥ãã©ãžãª
Ushki-Radio ã¯ãã·ã³ãã«ããšèŽã楜ããã«éç¹ã眮ããŠäœãããããªã³ã©ã€ã³ ã©ãžãªçšã®ã¯ãã¹ãã©ãããã©ãŒã ã©ãžãª ãã¬ãŒã€ãŒã§ããäžèŠãªæ©èœããªãŒããŒããŒããããã€ã³ã¿ãŒãã§ã€ã¹ã¯ãªãã黿ºãå ¥ããŠèãã ãã§ãã

https://demensdeum.com/software/ushki-radioãã®ãããžã§ã¯ãã§ã¯ãªãŒãã³ãœãŒã¹ã® Radio Browser ã䜿çšããäžçäžã®äœåãã®ã©ãžãªå±ãã¢ããªã±ãŒã·ã§ã³ã§å©çšã§ããããã«ããŠããŸããååããžã£ã³ã«ããŸãã¯äººæ°ã§æ€çŽ¢ãããæ°ã«å ¥ãã«è¿œå ããŠããæ°ã«å ¥ãã®ã¹ããŒã·ã§ã³ã«ããã«æ»ãããšãã§ããŸãã
Ushki-Radio ã¯ããã¯ã°ã©ãŠã³ã ã©ãžãª ãã¬ãŒã€ãŒã®åœ¹å²ã«æé©ã§ããæåŸã®æŸéå±ãèšæ¶ããŠãããé³éãå¶åŸ¡ã§ããè€éãªèšå®ã¯å¿ èŠãããŸãããã€ã³ã¿ãŒãã§ã€ã¹ã¯ç°¡æœã§çè§£ããããã鳿¥œãäŒè©±ãæŸéã®éªéã«ãªããªãããã«ãã¹ãŠãè¡ãããŠããŸãã
æè¡çã«ã¯ããã®ãããžã§ã¯ã㯠React Native ãš Expo ã«åºã¥ããŠæ§ç¯ãããŠããããããã©ãŠã¶ãŒãšãã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ã§åäœããŸããå éšã§ã¯ãexpo-av ã䜿çšããŠãªãŒãã£ãªãåçãããŠãŒã¶ãŒèšå®ã¯ããŒã«ã«ã«ä¿åãããŸãããã·ã¢èªãè±èªãªã©ãããã€ãã®èšèªããµããŒããããŠããŸãã
Ushki-Radio ã¯ããªãŒãã³ã軜éãæ¡åŒµå¯èœããããŠäž»ã«ãªã¹ããŒã«çŠç¹ãåœãŠããææ°ã®ã€ã³ã¿ãŒããã ã©ãžãª ãã¬ãŒã€ãŒãã©ã®ãããªãã®ã§ãããã瀺ã奜äŸã§ãããã®ãããžã§ã¯ã㯠MIT ã©ã€ã»ã³ã¹ã«åºã¥ããŠé åžãããŠãããå人䜿çšã ãã§ãªãããªãŒãã£ãª ã¢ããªã±ãŒã·ã§ã³ã䜿çšããç¬èªã®å®éšã®åºç€ãšããŠãæé©ã§ãã
GitHub:
https://github.com/demensdeum/Ushki-RadioGoogleãã¬ã€:
https://play.google.com/store/apps/details?id=com.demensdeum.ushkiradio -
Glazki TV: ã€ã³ã¿ãŒããã ãã¬ãçšã®ææ°ãã¬ãŒã€ãŒ
Glazki TV ã¯ãReact Native ãš Expo ã«åºã¥ããŠæ§ç¯ããããã€ã³ã¿ãŒããã ãã¬ã (IPTV) çšã®ææ°ã®é«æ§èœãã¬ãŒã€ãŒã§ãããã®ãããžã§ã¯ãã¯äœ¿ãããããšé床ã«çŠç¹ãåœãŠãŠãããã¢ãã€ã« ããã€ã¹ãšãã©ãŠã¶ã®äž¡æ¹ã§ IPTV ãã£ã³ãã«ãèŠèŽããããã®äŸ¿å©ãªã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã
äž»ãªæ©èœ
- ãã£ã³ãã«ã®é²èЧ: ç°¡åã«ããã²ãŒã·ã§ã³ã§ããããã«åé¡ãããäœåãã®ãã£ã³ãã«ãé²èЧããŸãã
- æ€çŽ¢: å¿ èŠãªãã£ã³ãã«ãååã§ãã°ããèŠã€ããŸãã
- ãæ°ã«å ¥ã: ããã«ã¢ã¯ã»ã¹ã§ããããã«ãæ°ã«å ¥ãã®ãã£ã³ãã«ãä¿åããŸã (ããŒã¿ã¯ããŒã«ã«ã«ä¿åãããŸã)ã
- ãã£ãŒããªã³ã¯: èªåçã«éããã£ã³ãã«ãžã®çŽæ¥ãªã³ã¯ãå ±æããŸãã
- ããŒãã®ãµããŒã: ã€ã³ã¿ãŒãã§ãŒã¹ã¯ãã·ã¹ãã ã®æãããŒããŸãã¯æããããŒãã«èªåçã«é©å¿ããŸãã
- ãŠã§ã ãµããŒã: ãã¬ãŒã€ãŒã¯ URL åæã«ãããã©ãŠã¶ã§å®å šã«æ©èœããŸãã
ãã¯ãããžãŒã¹ã¿ãã¯
ãã®ãããžã§ã¯ãã¯ææ°ã®éçºããŒã«ã«åºã¥ããŠããŸãã
- ãã¬ãŒã ã¯ãŒã¯: React Native + Expo
- Video Player: expo-video (заЌеМа ÑÑÑаÑевÑÐµÐŒÑ expo-av)
- UI ããŒã«ããã: åå¿ãã€ãã£ãããŒããŒ
- ãã¬ã€ãªã¹ã ããŒãµãŒ: iptv-playlist-parser
ãŠã§ãç:
https://demensdeum.com/software/glazki-tv/Google Play ããŒãžã§ã³:
https://play.google.com/store/apps/details?id=com.demensdeum.glazkitv -
ãŒãã£ãŒã«1990

Zefir1990 – Ilia Prokhorovãç§ã¯åçšéçºã§ââ 15 幎以äžã®çµéšãæã€éçºè ã§ããã¢ãã€ã«ãWebããã¹ã¯ããã ã·ã¹ãã çšã®ã²ãŒã ãšã¢ããªã±ãŒã·ã§ã³ãéçºãã Demens Deum ã¹ã¿ãžãªã®åµèšè ã Android 2 äžã®æåã® 3D OpenGL ES 2 ã²ãŒã Mad Racer 㯠2010 幎ã«ãªãªãŒã¹ãããŸããã圌ã¯ãã®ãããžã§ã¯ãã«ããã°ã©ããŒå Œã²ãŒã ãã¶ã€ããŒãšããŠåå ããéçºã«ã¯äœæ²å®¶ã® Anton Dmitriev (coolspotdreamer) ãåå ããŸãããã²ãŒã ã®çºå£²ãæåããåŸã¯ããã«ã¿ã€ã ã®ã«ã¹ã¿ã éçºãšå¥çŽã«åºã¥ããããžã§ã¯ãéçºã«åŸäºããŸãããã¯ã©ã€ã¢ã³ãã«ã¯ DecathlonãPlayboyãFitbit ãå«ãŸããŸããç§ã¯ãœãããŠã§ã¢éçºãã²ãŒã ããã¶ã€ã³ ãã¿ãŒã³ãã¢ã«ãŽãªãºã ãAI ã«é¢ããèšäºã®èè ã§ãããããœãããŠã§ã¢ ãšã³ããããŒã«é¢ããæ¬ãæžãäºå®ã§ãã
æšå¥šããã°ã©ãã³ã°èšèª: ASMãCãC++ãObjCãPythonãKotlinãSwiftãJavaãRustãGoãTypeScriptãJavaScriptãC#ãDartãPHPã
LinkedIn: linkedin.com/in/zefir1990
GitHub: github.com/zefir1990
é»å ±: t.me/zefir1990
é»åã¡ãŒã«: ceo@demensdeum.com
Twitch: twitch.tv/zefir1990
YouTube: youtube.com/zefir1990













