<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>RMMV on 格物漫筆</title><link>https://blog.uwspro.com/tags/rmmv/</link><description>Recent content in RMMV on 格物漫筆</description><generator>Hugo</generator><language>zh-tw</language><lastBuildDate>Sun, 19 Jul 2026 19:21:25 +0800</lastBuildDate><atom:link href="https://blog.uwspro.com/tags/rmmv/index.xml" rel="self" type="application/rss+xml"/><item><title>在 RPG Maker MV 上開發的自製插件 M3D 之開發血淚 (1)</title><link>https://blog.uwspro.com/posts/20260719-rmmv-m3d-plugin-1-devlog/</link><pubDate>Sun, 19 Jul 2026 19:21:25 +0800</pubDate><guid>https://blog.uwspro.com/posts/20260719-rmmv-m3d-plugin-1-devlog/</guid><description>&lt;h2 id="前言"&gt;前言&lt;/h2&gt;
&lt;p&gt;M3D 是一個給 RPG Maker MV 使用的第一人稱 3D 地圖插件，目標很直接：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;讓原本的 2D 地圖可以用第一人稱方式走進去。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;但「把畫面變成 3D」只是開始。&lt;br&gt;
真正花時間的，往往是那些看起來不應該困難的事情，包含但不限於：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一面牆應該畫在哪裡&lt;/li&gt;
&lt;li&gt;地板跟方塊頂面貼圖爲什麼會把 FPS 幹到剩不到 5&lt;/li&gt;
&lt;li&gt;低矮方塊的頂面為什麼會穿牆&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="早期開發"&gt;早期開發&lt;/h2&gt;
&lt;h3 id="傳統單檔開發模式"&gt;傳統單檔開發模式&lt;/h3&gt;
&lt;p&gt;早期的 M3D 主要依賴 Canvas 2D。&lt;br&gt;
它雖然不是最理想的渲染方式，但至少能正常進入地圖、處理玩家移動，也有一套已經驗證過的迷霧與牆面繪製邏輯。&lt;/p&gt;
&lt;p&gt;由於當時還在概念驗證階段，以及我注意到 RM 圈仍有很多人是單檔開發，我想入境隨俗，所以就在 ES5 的語法環境下硬幹出一個勉強能用的東西。&lt;/p&gt;
&lt;p&gt;然而，單一檔案很快膨脹到超過 70KB。&lt;br&gt;
所有事情都混在一起：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RMMV 的資料&lt;/li&gt;
&lt;li&gt;raycast&lt;/li&gt;
&lt;li&gt;投影&lt;/li&gt;
&lt;li&gt;貼圖&lt;/li&gt;
&lt;li&gt;迷霧&lt;/li&gt;
&lt;li&gt;最後把東西畫到畫面上的程式碼&lt;/li&gt;
&lt;li&gt;等等&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;繼續在同一個檔案裡加功能，速度會越來越慢，也越來越不敢改動舊邏輯。&lt;/p&gt;
&lt;p class="shortcode-emphasis is-bold is-big is-red"&gt;再不改架構我一定先瘋掉&lt;/p&gt;
&lt;p&gt;於是，我把整個專案以 &lt;code&gt;TypeScript&lt;/code&gt; 改寫，並以功能性拆成多檔，以 &lt;code&gt;Vite&lt;/code&gt; 打包，並加入版本控制，時爲 &lt;code&gt;v0.3&lt;/code&gt;。&lt;/p&gt;
&lt;figure class="post-media"&gt;
 &lt;video controls preload="metadata"&gt;
 &lt;source src="https://blog.uwspro.com/posts/20260719-rmmv-m3d-plugin-1-devlog/rmmv-m3d-plugin-v0.3.mp4" type="video/mp4"&gt;
 你的瀏覽器不支援 HTML5 影片播放。
 &lt;/video&gt;
 &lt;figcaption&gt;M3D 早期開發紀錄（所有貼圖均用 Canvas 繪製）&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id="改寫後首次碰壁"&gt;改寫後首次碰壁&lt;/h3&gt;
&lt;p&gt;就當我以爲一切都能舒服地開始後，沒過多久，第一個考驗就來了。&lt;/p&gt;
&lt;p&gt;我在內部版本迭代至 &lt;code&gt;v0.3.11&lt;/code&gt; 時發現，當我嘗試繪製地板與方塊頂面的貼圖時，本來就不樂觀的 FPS 會直接崩到難以操作（約 30 fps -&amp;gt; 5 fps）&lt;/p&gt;</description></item></channel></rss>