
皆様、こんにちは!

こんにちは~!
こんにちは。

10/16にSteam公式で実績システムの大型アップデートがありました!

今回は、これを機に導入に挑戦し、無事に出来たため共有したいと思います!

制作過程と、Steam実績を導入するための手順を書いていきます!
一部が簡単になったとはいえ、それでも少し手こずったからね。
📝【共通項目】作品に関する事や直近の活動報告
本来は2Dアクションゲームの制作過程から投稿を始めるつもりでしたが、下記のような内容を記録に残しておきたく、RPG作品の話から始めることにしました。
①現在の制作の進捗状況を共有
②ネタバレしない程度に内容を紹介
③その他、共有したい事を書く
などなど、思い付いた事を書いていきます!
🎮Steam実績の導入について

実は発売から適用はしたかったんだけど・・・正直、導入までが難易度が高いって思ってました。

Electronだとか、GreenWorksだとか、色々新しい言葉も出て来たり・・・

正直調べても出来るものでは無いとも思っていました。
本当に独自で導入するならプログラミングなども必要だからね。

そこで今回は、プラグインを使って導入する事にしました。ツールは「RPGツクールMZ」です。

それでも、制作時に何故か上手く出来ず理解出来なかったのですが、お問合せして修正などして頂きながら導入をしました。
今だったら少しは簡単に導入できると思うわよ。これまでの過程を書いておくわね。
- 変数を使用した進捗の同期も可能に。
- CSVで実績データ名などを一括で登録が可能に。
- ゲーム内に実績の整数設定や解除を組み込む。
- 有償の暗号化ソフト「CookTool DX」も使える。

注意点としては、プログレスバー付きの実績の場合、私が設定した限りではゲーム終了時に反映される事です。

本作品でのアップデート反映予定日はこちらです。
- DLSITE版:別のプラグイン等々で再利用が出来ないか検討中です。
- Steam版:2026/10/26に反映済。

設定する時のプラグインの順番とか、細かいルールもあるので、それは手順を説明する時に書いていきます。
🎮導入のために使うプラグイン

まず、導入に使うファイルからダウンロードしましょう。今回は猫学園のMirai様(中国のプラグイン制作者様)のプラグインを使います。

猫学園 Mirai様の自己紹介
兔子茶會的團隊發起人。
米拉其實有三個型態喔,大家都有見過嗎?
主要在寫RPG相關的插件和教學,也偶爾會製作自己的小遊戲。
(※公式サイトより引用しています)
まずはプラグインのダウンロード場所を貼るわね。
こちらがSteam実績から整数の取得や設定をしたりする物になります。
ダウンロードしたファイルの中から必要な物を使います。
こちらはSteam実績を使うために必須のファイルとなります。
最新版をダウンロードして下さい。

ダウンロードが出来たら導入へ進みます!
🎮導入手順

プラグインの順番などもあるため、間違えないように導入していきましょう。

まずは必要なプラグインからです。今回の場合は以下の2つです。まずはプラグイン2つをプロジェクトファイルの「js → plugins」にコピーします。


次にリリース用のファイルです。これは最後に使いますので、ファイルの場所を覚えておいて下さい。


Steam SDKのファイルも、ゲームをデプロイした後で大丈夫です!

こちらは順番がありますので、下記画像を参考に導入して下さい。

この順序じゃないと使う時にエラーが発生するわよ。間違えないようにね。

こちらはSteamWorks側の設定になります。アプリデータ管理にデータ&実績がありますので、まずは実績を開きます。


今回、こちらの「実績グループを試す」から実績の登録を行いました。

上は「ベースゲーム」で、本番用です。「開発者専用」で作成した実績を、後から丸ごと移動できます。

下の開発者専用は、実績を作成した上でゲーム本体をアップロードしなくても実際にテストプレイする事が出来ます。


では設定項目について説明します。

まず、アイコンの推奨サイズは「256×256」の「jpg」が推奨されています。
画像を見ると分かると思いますが、未開放の場合は白黒で統一しました。
- API名:「どの実績か」を特定するための固有識別コードです。
- 設定:基本「クライアント」で大丈夫です。
- 進捗状況:プログレスバーの進捗表示をしたい実績に使用します。
- 表示名:「実績名」です。例えば上の画面で言うと「証明された光の絆」の部分です。
- 説明:Steamのゲームのライブラリ画面やポップアップ時などに表示される説明です。
- セット内:開発者専用を選択します。
- ネタバレ:チェックすると「秘密の実績」で非表示となり、解放されると表示される仕組みです。

実際に入力してみた実績です!セット内がベースゲームになってるけど、開くと開発者専用の選択肢があります!


テストで1つ作成したら、公開処理をします。

プログレスバーを使わない実績なら凄い簡単です。


この「Prologue_End」が、先ほどの「API名」です。
プラグインコマンドでアンロックを入れるだけで終わりです。
※プログレスバー付きの実績を作成しない方は「STEP8」へ進んで下さい。

プログレスバーは数字の進捗を追加表示して、進捗度を伝えらえるのがメリットです。

下記は実績のページを開いた時に表示されますが、今は0/100となってます。

カウントで数字が増えていくけど、ゲーム終了時に反映される仕組みのため注意してね。

実装に当たり、まずは「データ&実績」の中の「データ」を開き、統計データを作成します。

この統計データは先ほどの睡眠バトルの実績用です。必要な項目だけ説明します。

- タイプ:数値を表すデータ型の事です。中にはFLOAT、AVERAGEなどありますが、今回は整数なのでINT。
- API名:自分が分かり易い名前を付けて下さい。実際の名前や注意点は下記で説明します。
- 設定:クライアントを選択します。GSなどはゲームサーバーを意味します。
- 最小値、最大値、デフォルト値:こちらは先ほどの「0/100」を基準に設定します。
- ディスプレイ名:Steamコミュニティで表示される文章です。入力しなくても問題ありません。

入力したら、saveで保存します!

先ほど作成した統計データを用いて設定します。

「新しい実績」から下記の様にメニューが展開されますので、必要な項目の入力とアイコンをアップロードして保存します。

ここで、「進捗状況」を選択するのは、先ほど作成した統計データです。
ご自身が分かり易い名前で作るのがおすすめです。
大型アップデート直後という事もあり、挙動が変なのかもしれませんが共有しておきます。
左側にカラーのアイコンをアップロードした時に、右側(未開放画像)を白黒で自動設定してくれた事があります。
何故なのか分かりませんが、別の画像を使いたい場合は選択アップロードすれば上書きされます。

こちらが少しだけややこしい部分ですが、いくつかパターンがあります。まずは基本的な設定のみから。


まずこちらの実績の前提として、遊ぶ中で1カウントずつしか上がらない処理になります。

まずはSteam側の統計データを代入するために、837番の変数を0にしておきます。
- まずはSteam側の統計データを代入するために、837番の変数を0にしておきます。
- 保険として別の変数866番でも、1カウントずつ増やしておきます。
- このプラグインコマンドは、Steam側の現状の数値を837番に代入しています
※(代入する数字は、先ほど作成した「RD_Sleep_Count」の数字です)。 - 取得した数字を「加算」で+1にします。Steam側の統計が27の時は、+1で28になります。
- ここで、100以上か未満かで、+1か=100にするか、保険として組んでいます。
※万が一、+2で101以上で設定した時はエラーになるため。 - Steam側へデータを送信します。送信する変数は837番です。
- 最後に、先ほど保険で作った変数が100以上になったら、実績をアンロックします。
STEP4と同じやり方で、API名の指定を変更するだけです。
(※注意点として、この処理はコモンイベントで毎回処理が入るため、実績解除と同時にスイッチを押して解除後は処理を飛ばすようにしています)。

デプロイメントした後は、下記2つのファイルを全てコピーして上書きします。
Build-Windows(release)の中身をCtrl+Aで全選択してコピーし、デプロイメントしたフォルダへ上書きします。


次に、SteamSDKです。
win64の中に「.dll」のファイルがあるので、これもデプロイメントしたフォルダの直下に格納します。


最後に、デプロイメントしたファイルの直下に、テキストファイルを1つ作成します。
SteamのアプリのIDだけを入力し保存します。
- ファイル名:steam_appid


先ほどのSTEP8で全コピーしたら上書きされているはずなので、メモ帳などで編集します。

- name:ご自身のゲームを英語名で入力
- title:ウィンドウ画面で設定する名前と同じにする
- サイズ2つ:システム設定で設定しているサイズと合わせる

このツールで暗号化しているのですが、フォルダを指定すると、下記を求められます。
この4つのファイルは「Engine」にして下さい。


因みにCookToolを使う場合、NWのバージョンは「55.0」で暗号化するように設定します。
現在、最も安定して動作するのが「55.0」です。
暗号化後、CookToolの場合は「Steamout」というフォルダが出力されます。

もし別の方法での暗号化や、公式の暗号化を使っている場合は、公式マニュアルを参照してください。

ご自身のゲームのライブラリ画面を開き、今回はCookToolで出力されたファイルでゲームを起動すると、プレイのボタンが「停止」に変わり、リリースした状態でテストプレイが出来ます。


実際にテストプレイをしてみましょう!
📝実績の作成:応用編①|乱数を用いた場合の注意点

応用にもなるのですが、1つ注意点があるため解説します。
まず下記の処理ですが、1ずつ増加するのではなく、2~4と毎回違う数字が加算されます。



統計データも実績も、設定は最小値0、最大値は1000で合っているように見えるわね。
けど、ここで本当に注意してほしい事があるわ。
この統計データは0~1000までの数字しか扱わないので、-1とか1001以上で設定をした時に、ゲーム画面でエラーが発生するわよ。下記がそのエラー発生時ね。


だったら、どちらかの最大値を上限解放すれば良い!という訳でもありません。
- 実績側を開放した場合:その実績の最大値が上限解放され、クリア不可になる。
- 統計データを開放した場合:最大値の相違があるため、-1以下と1001以上でエラー発生。
- 両方を開放した場合:そもそも実績で求める数値では無くなる。

このエラーは、この実績で簡単に要約すると「0以上、1000以下でなければいけません」という事です。
例えば、これが0~5,000,000と設定した実績なら、0以上、5,000,000以下でなければいけません。と要約します。

この実績なら、1000以上になったら実績を解除する様にしているので、上記の画像での対策処理を簡単に説明すると・・・
- 整数データの取得:Steamから取得。数値が「999」と仮定。
- 汲み上げの数:今回は「3」と仮定し、999 + 3で1002となる。
- ——— この状態でSteamへ送信するとエラー発生 ———
- 対策:変数837番が「1000以上」なら、「1000」を代入。
- 整数データを設定:「1000」でSteamへ送信、実績解除(アンロック)。

達成できる数字に合わせて送信すれば問題ないので、送信前に必ず代入しましょう。
📝実績の作成:応用編②|進捗の通知を表示させる

これは、とある一定の数値で右下のポップアップを出す機能です。

頭の中では毎回通知を出す予定だったのですが、通知しすぎも煩いと感じると思ったので、一定範囲、または不要と考えました。

大体下記のような考えで、今回実装しました!
- 0~100の実績:不要
- 0~1,000の実績(泉の実績):+2~4の事から、250区切りで進捗を通知
- 実績によっては・・・:増加した時のみ進捗を通知
では、同じ泉の処理で見ましょうか。青い選択部分を下に追加した処理よ。


変数837番で全て取得や送信をしているので、再利用して250、500、750の時に進捗通知を追加しました。

ゲーム終了時には更新されて増えますが、区切りの良い所で何回か通知するのは、良い体験を提供出来るかなと考えてます。

通知したらスイッチONにして、そもそも処理をしない様に組みましょう!
📅今後の活動スケジュール

これまではSteam実績などを実装してきましたが、今年はまだもう少し実装する予定があります。
- 今年中:DLSITE版の実績の実装方法を検討、また英語公式サイトの記事翻訳化
- 上記が終わり次第:2Dアクションのツール勉強、プロトタイプ制作

今回ですが、資金などの問題もあり2Dアクションは1作目のように大作にはせず、小規模作品にします。

大分珍しい構成にはなりますが、構成のベースはアイデアを練った状態です!
まずはプロトタイプでお披露目出来ればと思いますので、制作までお待ちくださいませ。
📢フォロー・応援について

ダイスクリエーションの今後の活動を応援してくださる方は、SNSをフォローして頂けると嬉しく、更新の励みになります!

フォローしてくれたら嬉しいな。更新もスピード意識して届けるから、よろしくね~!

ダイスクリエーションの最新情報は公式サイトにて公開しております。
公式サイトの更新情報やお知らせは、下記の公式SNSでも案内しているわよ。




