【制作日誌 Vol.010】Steam実績に対応!応用編や注意点も含めた導入方法もご紹介

ダイス
ダイス

皆様、こんにちは!

セレナ
セレナ

こんにちは~!

リーラ
リーラ

こんにちは。

ダイス
ダイス

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

ダイス
ダイス

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

セレナ
セレナ

制作過程と、Steam実績を導入するための手順を書いていきます!

リーラ
リーラ

一部が簡単になったとはいえ、それでも少し手こずったからね。


📝【共通項目】作品に関する事や直近の活動報告

この日誌のコンセプト

本来は2Dアクションゲームの制作過程から投稿を始めるつもりでしたが、下記のような内容を記録に残しておきたく、RPG作品の話から始めることにしました。

①現在の制作の進捗状況を共有

②ネタバレしない程度に内容を紹介

③その他、共有したい事を書く

などなど、思い付いた事を書いていきます!


🎮Steam実績の導入について

ダイス
ダイス

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

セレナ
セレナ

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

ダイス
ダイス

正直調べても出来るものでは無いとも思っていました。

リーラ
リーラ

本当に独自で導入するならプログラミングなども必要だからね。

ダイス
ダイス

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

セレナ
セレナ

それでも、制作時に何故か上手く出来ず理解出来なかったのですが、お問合せして修正などして頂きながら導入をしました。

リーラ
リーラ

今だったら少しは簡単に導入できると思うわよ。これまでの過程を書いておくわね。

  • 変数を使用した進捗の同期も可能に。
  • CSVで実績データ名などを一括で登録が可能に。
  • ゲーム内に実績の整数設定や解除を組み込む。
  • 有償の暗号化ソフト「CookTool DX」も使える。
ダイス
ダイス

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

セレナ
セレナ

本作品でのアップデート反映予定日はこちらです。

  • DLSITE版:別のプラグイン等々で再利用が出来ないか検討中です。
  • Steam版:2026/10/26に反映済。
ダイス
ダイス

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


🎮導入のために使うプラグイン

ダイス
ダイス

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


プラグイン制作者様
猫学園 Mirai 様

猫学園 Mirai様の自己紹介

兔子茶會的團隊發起人。
米拉其實有三個型態喔,大家都有見過嗎?
主要在寫RPG相關的插件和教學,也偶爾會製作自己的小遊戲。

(※公式サイトより引用しています)


リーラ
リーラ

まずはプラグインのダウンロード場所を貼るわね。

猫学園様のプラグイン

こちらがSteam実績から整数の取得や設定をしたりする物になります。

ダウンロードしたファイルの中から必要な物を使います。


SteamWorks SDK

こちらはSteam実績を使うために必須のファイルとなります。

最新版をダウンロードして下さい。

ダイス
ダイス

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


🎮導入手順

ダイス
ダイス

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


猫学園様のプラグインをプロジェクトに導入する
ダイス
ダイス

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

プラグイン2つ
ダイス
ダイス

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

セレナ
セレナ

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

プラグイン管理から導入する
ダイス
ダイス

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

プラグインの順序
リーラ
リーラ

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

実績を開放するためのデータを設定する
ダイス
ダイス

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

SteamWorksの画面
ダイス
ダイス

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

ダイス
ダイス

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

ダイス
ダイス

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

ダイス
ダイス

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

ダイス
ダイス

まず、アイコンの推奨サイズは「256×256」の「jpg」が推奨されています。

画像を見ると分かると思いますが、未開放の場合は白黒で統一しました。

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

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

ダイス
ダイス

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

プロジェクト内で実績の追加処理をする
ダイス
ダイス

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

ダイス
ダイス

この「Prologue_End」が、先ほどの「API名」です。

プラグインコマンドでアンロックを入れるだけで終わりです。

プログレスバー付きの実績を追加する①

※プログレスバー付きの実績を作成しない方は「STEP8」へ進んで下さい。

ダイス
ダイス

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

ダイス
ダイス

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

リーラ
リーラ

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

ダイス
ダイス

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

ダイス
ダイス

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

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

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

プログレスバー付きの実績データを作成する
ダイス
ダイス

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

ダイス
ダイス

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

リーラ
リーラ

ここで、「進捗状況」を選択するのは、先ほど作成した統計データです。

ご自身が分かり易い名前で作るのがおすすめです。

余談

大型アップデート直後という事もあり、挙動が変なのかもしれませんが共有しておきます。

左側にカラーのアイコンをアップロードした時に、右側(未開放画像)を白黒で自動設定してくれた事があります。

何故なのか分かりませんが、別の画像を使いたい場合は選択アップロードすれば上書きされます。

プログレスバー付きの実績処理をツクールMZ内で追加する
ダイス
ダイス

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

ダイス
ダイス

まずこちらの実績の前提として、遊ぶ中で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
package.jsonの中身を編集する
ダイス
ダイス

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

  • name:ご自身のゲームを英語名で入力
  • title:ウィンドウ画面で設定する名前と同じにする
  • サイズ2つ:システム設定で設定しているサイズと合わせる
(余談)CookTool DXで暗号化する場合
ダイス
ダイス

このツールで暗号化しているのですが、フォルダを指定すると、下記を求められます。

この4つのファイルは「Engine」にして下さい。

ダイス
ダイス

因みにCookToolを使う場合、NWのバージョンは「55.0」で暗号化するように設定します。

現在、最も安定して動作するのが「55.0」です。

暗号化後、CookToolの場合は「Steamout」というフォルダが出力されます。

セレナ
セレナ

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

Steamでライブラリのページを開き、ゲームを起動する
ダイス
ダイス

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

ダイス
ダイス

実際にテストプレイをしてみましょう!


📝実績の作成:応用編①|乱数を用いた場合の注意点

ダイス
ダイス

応用にもなるのですが、1つ注意点があるため解説します。

まず下記の処理ですが、1ずつ増加するのではなく、2~4と毎回違う数字が加算されます。

応用編の処理①
Steamの統計データ
Steamの実績データ
リーラ
リーラ

統計データも実績も、設定は最小値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でも案内しているわよ。

~公式SNSリンク集~
ダイス
ダイス

Xは下記になります!


リーラ
リーラ

ブルースカイはこちら。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です