Greenworksを利用して、Steamの以下機能を利用します。
- Steam実績の達成
- セーブデータのSteamクラウド保存と読み込み

経緯
雲海のフロンティアのSteam版を販売するに当たり、Steamの実績機能を実装することにしました。しかしながら、ツクールMZ作品に関する情報が少なく、実装は困難を極めました。
当初はElectronを経由して実績機能を呼び出していたのですが、Electronでパッケージ化した状態でテストしていると動作が謎に重くなることがあるという現象に見舞われてしまいました。
※普段は軽快に動作するのですが、なぜか時々重くなります。一度、重くなるとアプリを再起動しても直らず、しばらくそのままになります。挙動からGPU関連っぽい気がするのですが、詳細は不明です。 結局、問題を解決できずに他の方法を模索したのですが、結果的に落ち着いたのがGreenworksを使う方法です。
そんなわけで、当プラグインの目的はSteamの機能を使うに当たって、Electron以外の選択肢を掲示することです。Greenworksを利用して、Steam実績の達成やクラウドセーブを実装します。
※この方法に限らず、各自で相性の良い方法を選択してくだされば幸いです。例えば、Electronにはパッケージ化できるメリットがあります。つまり、jsonなどファイルの中身がユーザに見られません。
Greenworksの場合は元のツクールMZの仕組み(NW.js)をそのまま利用するため、挙動の変化が少ないというメリットもあります。 利用にはGreenworksのセットアップが必要です。この記事では導入の手順を細かく解説していきます。
なお、Steam以外の環境では、これらの機能は無効化されます。
当然ながら、Steamworksに登録していることが前提になります。
Steamに作品を登録して、App IDを取得してください。
目次
導入方法(Install)
以下のファイルをダウンロードし 、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
※このプラグインはMZ専用です。 NRP_Steamworks.js ver1.00(2026/06/10)
また、当プラグインを利用するには別途Greenworksの導入が必要です。
詳細は
Greenworksの導入・NW.jsの更新をご覧ください。
更新履歴(History)
2026/06/10(ver1.00)
Greenworksの導入・NW.jsの更新
まず、Greenworksを導入し、それに合わせてNW.jsを更新します。
Greenworksの導入
以下のリリースページからGreenworksをダウンロードします。
https://github.com/greenheartgames/greenworks/releases ※Windowsの場合は、greenworks-vX.XX.X-nw-vX.XX.X-win-64.zip というファイル名になります。NW.jsの更新
GreenworksとNW.jsのバージョンを合わせる必要があります。
NW.jsの公式サイトからDLしてください。
※過去バージョンは『Previous releases』からDLできます。 https://nwjs.io/downloads/ NW.jsの差し替え手順は以下の記事(Mac向けですがWindowsも大体同じ)が参考になります。
https://rpgtkool.hatenablog.com/entry/2024/10/23/140944 ※nwjs-winのバックアップは必ず取ってください。テストプレイが起動しなくなった場合は元に戻してください。 色々試した結果、作者環境では以下の組み合わせで動作を確認しました。
Greenworks v0.17.0 for NW.js v0.89.0
https://github.com/greenheartgames/greenworks/releases/tag/v0.17.0 https://dl.nwjs.io/v0.89.0/ ※Windowsの場合は以下の2ファイルが必要です。
・greenworks-v0.17.0-nw-v0.89.0-win-64.zip
・nwjs-v0.89.0-win-x64.zipSteamworks SDKの導入
SteamworksのパートナーサイトからSteamworks SDKをダウンロードしてください。
※作者環境ではsteamworks_sdk_v1.64で確認しています。バージョンによってはGreenworksとの相性がある場合があります。プロジェクトのデプロイとファイルの配置
デプロイ
当プラグインを導入し、通常通りプロジェクトをデプロイします。
※プラットフォームはWindows(またはmacOS)を選択してください。
※事前に上記のNW.jsの更新をする必要があります。ファイルの配置
1.Greenworksのzipを解凍し、デプロイ済みのプロジェクトフォルダに配置します。
2.Steamworks SDKのzipを解凍し、以下の2ファイルを『greenworks/lib』フォルダ内に配置します。
[steamworks_sdk]\redistributable_bin\win64\steam_api64.dll
[steamworks_sdk]\public\steam\lib\win64\sdkencryptedappticket64.dll
3.テキストファイル「steam_appid.txt」を新規作成し、プロジェクトフォルダに配置します。中身にはSteam App IDのみ記載してください。
フォルダ構成
ゲームフォルダ/
├── Game.exe
├── package.json
├── js/
│ └── plugins/
│ └── NRP_Steamworks.js
├── greenworks/
│ ├── greenworks.js
│ └── lib/
│ ├── greenworks-win64.node
│ ├── steam_api64.dll ← Steamworks SDKから
│ └── sdkencryptedappticket64.dll ← Steamworks SDKから
└── steam_appid.txt ← Steam App IDを記載(例: 1234567)
ここまでの設定が完了していれば、SteamのAPIが有効になります。
Steamクライアントを起動した状態でGame.exeを実行することで、実績の達成が有効になります。
Steamオーバーレイの設定
上記の状態では、まだSteamオーバーレイ(F12によるスクリーンショットなどSteamの各種機能)は有効になりません。
package.jsonの編集
package.jsonをテキストエディタで開き、「chromium-args」の行に以下の2点を加えてください。
--in-process-gpu --disable-direct-composition
実際には元ある記述と合わせて、以下のようになるはずです。
"chromium-args": "--force-color-profile=srgb --disable-devtools --in-process-gpu --disable-direct-composition",
Steamクライアントからの起動
この状態でSteamクライアント上からゲームを起動すると、Steamオーバーレイが有効になります。
※ゲーム開始時にSteamオーバーレイの通知が表示されれば成功です。
ゲームのアップロード
なお、Steamクライアント上でゲームを起動するには、Steamworksにゲームをアップロードする必要があります。
アップロードにはSteamworks SDK付属の「SteamPipeGUI」が便利です。
[steamworks_sdk]\tools\SteamPipeGUI.zip
使い方は以下の記事が参考になります。
https://kan-kikuchi.hatenablog.com/entry/Steam_Upload_Windows ※Steamworksから直接Webアップロードもできますが、失敗することが多くて面倒でした……。 あるいは「ゲーム>非Steamゲームをマイライブラリに追加」でSteamクライアントにプロジェクトを取り込む方法もあります。
ポイント
これまでに作成したpackage.jsonやsteam_appid.txt、greenworksフォルダは別途保管しておくことをオススメします。デプロイする度にコピペするだけで済みます。
※ただし、package.jsonにはゲームタイトルも含まれるので注意です。バージョン名などを含む場合はきちんと更新する必要があります。 また、SteamPipeGUIはexeファイルのパス毎に設定を記憶しているようです。体験版と製品版など複数プロジェクトを管理する場合は、SteamPipeGUI.exeを別にコピー&リネームしておくと便利&安全です。
クラウドセーブの設定
Steamクラウドセーブを利用するには、Steamworksの管理画面で設定が必要です。
1.Steamworksの管理画面で「アプリデータ管理 > Steam クラウド」を選択。
2.Steam 自動クラウド設定のルートパスを設定。
・ルートを「アプリのインストールディレクトリ」に設定
・サブディレクトリを「save/{64BitSteamID}」に設定
・パターンを「.rmmzsave」に設定
※{64BitSteamID} はSteamのユーザIDに自動変換されます。 Steamworksの「共有クラウドストレージ」を設定することで、体験版から製品版へ自動でセーブを引き継ぐこともできます。
※共有クラウドストレージは体験版側に設定するのが基本っぽいです。 なお、製品版と体験版のセーブデータは双方向で反映される仕様のようです。わざわざやるプレイヤーはあまりいないと思いますが、製品版でセーブしたデータを体験版でロードするとエラーになったりします。
特にアクターの画像ファイルがないとロード画面の時点で落ちます。
気になる方は製品版のセーブデータは体験版で、ロード禁止にするなどの制御をしてください。Steam実績の達成
プラグインコマンドの
「Steam実績を達成」を呼び出し、Steamworksの管理画面で事前に登録した実績のAPI名を指定してください。
上述の
「プロジェクトのデプロイとファイルの配置」まで設定が終わっていれば、実績が達成されるはずです。
Steam実績の削除(テスト用)
テスト時に達成した実績を消去したい場合は、以下の手順で行います。
1.ブラウザのURL欄に「steam://open/console」と入力し、Steamクライアントのコンソールを開きます。
2.コンソールに以下のコマンドを入力します。
個別の実績を消去する場合:
achievement_clear [Steam App ID] [実績のAPI名]
(例:achievement_clear 9999999 STAGE_1_CLEAR)
全実績をリセットする場合:
reset_all_stats [Steam App ID]
※実行した直後は表示が反映されていないように見えますが、実際には反映されています。
※ちなみに、steam.exeのリンク先の末尾に「 -console」を付けておけば、コンソールが最初から表示された状態になるので便利です。プラグインコマンド(Plugin Commands)
Steam実績を達成(ActivateAchievement)
指定したSteam実績を達成します。
Steam以外の環境では何もしません。
実績名(AchievementName)
達成する実績のAPI名を文字列で指定します。
SteamworksのダッシュボードでAPI名として登録した文字列と一致させてください。
Steam判定スイッチ(SetSwitchIsSteam)
現在Steamビルドで動作しているかを指定のスイッチに反映します。
SteamビルドであればスイッチをON、そうでなければOFFにします。
スイッチ(SwitchId)
Steam判定を反映するスイッチのIDを指定します。
>RPGツクールMZ&MV目次に戻る