非表示?達成アイコン/未達成アイコンまとめ前書きSteamの実績を実装する方法はいろいろなサイトに載っているのですが、今後も同様の作業をすると思うので自分なりにかみ砕いてSteamの実績を導入する方法を残しておこうと思います。今回はSteamworks.NETの導入から先の手順についてになります。Steamworks.NETの導入が終わってなくても実績の設定はできますが、いずれにせよ必要になるのでSteamworks.NETの導入が終わってない方は第1回の記事も参考にご確認ください。Steamの実績を実装する方法はいろいろなサイトに載っているのですが、今後も同様の作業をすると思うので自分なりにかみ砕いてSteamの実績を導入する方法を残しておこうと思います。参考にしたのは以下のサイトになります。大まかに作業...aquaregia31.com2024.03.10また、Steamの実績導入のために参考にしたのは以下のサイトになります。大まかに作業する工程UnityでSteamの実績を実装する工程としては簡単に以下3つになります。Steamworks.NETをUnityに導入する(個人的にここが一番の詰まりました)Steamworksで実績の設定を行う2.で設定した実績を読み込む実装をする今回は「2.Steamworksで実績の設定を行う」について説明をしようと思います。こちらについてはSteamworskのWebサイトから実績を設定することになるため比較的簡単な作業になると思いますのでサクサク説明していきたいと思います。設定することができます。実績を設定するときに「データ」と「実績」の2つの項目がありますが設定したい実績によって設定の有無が変わってきますのでそれぞれ説明していきたいと思います。データについてデータの使われ方としては「設定された項目」が「どのくらいの進捗まで進んだか」を判断するために使われます。「敵を100体中何体倒した」とか「ゲームの進捗が50%まで進んだ」などON/OFFではなく、「目標値に対してどのくらいまで値が設定されたのか?」を判断して実績を設定したい場合にデータを設定します。各項目について簡単に説明していきます。IDSteamworksが自動で設定する値です。実装上でも特に使う値ではないので無視してもらって大丈夫です。タイプ取得する値の型を決めます。INT、FLOAT、AVGRATEの3種類があります。自分がよく使うのはINT型(小数点なしの整数値を取り扱う)で、主に敵の倒した数や取得したポイントの数など小数にならないようなときに使用しています。いまのところINTしか使ったことがないのでAVGRATEがどういった機能を持つかわからないのですが、「移動平均」の値を扱いたい場合はAVGRATEを使うみたいです。実装時に呼び出す名前になります。ここで設定したAPI名をソースコード上に記載する必要があります。GSの3種類があります。Steamworksドキュメントを見ると「ゲームサーバーと公式ゲームサーバーの違いは、公式ゲームサーバーはあなたがホストし管理するサーバーであるという点です。」と、言うことでサーバを立てることでサーバによってデータの管理ができるようです。基本的には「クライアント」にしておいて、ゲームを起動したプレイヤーのプレイ状況を見て実績を発生させる方式でいいかなと思います。増分のみ?設定される値が増加する場合のみに限定するかどうかを設定します。ゲームのクリア回数やいままでの敵を倒した数など減ることのない項目の場合が該当すると思います。設定される項目の値が取り得る「最大変化/最小値/最大値」を設定します。最大変化:1(ゲームクリアは1回ずつでしか増えないため)最小値:0最大値:100になるかなと思います。ウィンドウ項目としてあるのですが、設定できないため無視します。最初に設定される値です。上記例のゲームクリア回数で言うとデフォルト値は”0′′になるかと思います。ものによってはデフォルト値が”0′′じゃないこともあり得るので、項目によって適宜値を設定してください。集計ここにチェックを入れることで、プレイヤー全員の総数を保管するようSteamに指示することができます。「ボスを倒したプレイヤーの数」といったプレイヤー全員に関わるものを設定したい場合は設定することになるかと思います。ディスプレイ名ゲーム上に表示するための名前になります。データの設定項目については以上になります。続いて実績の設定について説明していきます。実績についてここでゲーム上に表示するアイコンなどを設定します。先ほど作成したデータを使って実績に反映するのもこの画面上で行います。データと同様にそれぞれの設定項目について説明していきます。空欄は進行状況を使わないときに呼び出すAPI名になります。→こちらは「データを用いないで実績を表示したい場合のAPI名」を設定します。進行状況すぐ下の空欄は”データ”で設定したAPI名を設定します。合わせて、進捗の最小値~最大値を設定し、最大値に達した場合に実績が表示されます。→こちらは「データを用いた時の実績を表示したい場合のAPI名」を選択します。特定のAPI名を指定して実績を解除する特定のAPI名の進行状況を満たしたら実績を解除するの2つがあります。1.の場合はAPI名を指定して実績解除の指示を出した瞬間に実績が解除されるため進行状況などはありません。2.の場合は値を積み重ねていって一定の進行状況を超えたら実績が解除されるため進行状況などがあります。ひとつ注意としてはAPI名は必ずユニークな名前にする必要があるため、API名と進行状況のAPI名が重複した場合、エラーになります。以下のようにSteamの公開に失敗し、エラー終了します。エラー内容を見てみると分かるのですが“データ”で設定したAPI名と”実績”で設定したAPI名が重複しているためエラーになっていることが分かります。そのため、API名は”データ”と”実績”それぞれでユニークな名前を設定する必要があります。逆に言うと、“データ”と”実績”それぞれでユニークな名前を設定すればフラグが有効になった場合に実績を解除しつつ、進行状況によって実績を解除する2通りの方法での実績の解除を設定することもできます。上記の設定であればエラーになりません。On」のAPI名で実績を解除する条件を作りつつ、「10000Coins」の進行状況によって実績を解除する条件を作り出すことができます。以下が実績を解除した時に出てくるポップアップになります。ディスプレイ名は「1000ポイント」の部分が該当し、説明は「おめでとうございます!あなたは「1000ポイント」を達成しました!」の部分が該当します。説明:どういった理由で実績を解除したのかこういった形で実績を表記していることが多いかなと思います。他のゲームの実績を参考に作ってみるのがいいかなと思います。実績を解除する人を指定します。GSになるかと思います。非表示?実績が解除されるまで実績欄に表示しないこともできます。実績が事前に表示されるとネタバレになったりする場合はここにチェックを入れておくのがいいかと思います。達成アイコン/未達成アイコンゲーム上やSteam上で表示するためのアイコンを設定します。Steamworksとしては「獲得済みのアイコンには色を使用し、獲得済みでないアイコンには白黒を推奨しています」となっているので、未獲得のアイコンについては白黒にするのがいいかと思います。Steamworksで実績を設定する方法は以上になります。実績など修正すると以下のように「これらの変更を提出するには「公開」タブの公開ツールを使ってください。Steamの更新)を行わないと設定した実績が反映されず、ゲームから読み取ることもできないため変更があったら忘れずSteamに公開をしてください。かみ砕いて説明していきましたが詳細について知りたい場合はSteamworksドキュメントに記載があるため気になる方は確認をしてみてください。Documentation)partner.steamgames.comまとめ今回はSteamworksで実績を設定する方法について紹介しました。SteamworksのWebサイト上でポチポチやりながら設定できるため比較的簡単な作業だと思います。設定したAPI名やアイコンなども手軽に直すことができるので、とりあえず枠組みだけ用意しておいて後で修正することも簡単です。「データ」と「実績」の2つがあり、どっちで実績を作ろうかな?っと悩むと思うのですが、実装的にもフラグのON/OFFで出来る「実績」が簡単に感じています。最初は「実績」で作っておいて慣れてきたら「データ」で作るといいかなと思います。次回はSteamworksで設定した実績をどのように実装するのかを説明していこうと思います。Steamの実績を実装する方法はいろいろなサイトに載っているのですが、今後も同様の作業をすると思うので自分なりにかみ砕いてSteamの実績を導入する方法を残しておこうと思います。Saleが行われています。便利なアセットが安くなっていますが、自分が使ってみて便利だった、役に立ったというアセットを紹介していこうと思います。通常、ボタンが押下された時に処理を実行する場合はインスペクターから設定することが多いのですが、ボタンのイベントはスクリプトからも設定することができます。Steamの実績を実装する方法はいろいろなサイトに載っているのですが、今後も同様の作業をすると思うので自分なりにかみ砕いてSteamの実績を導入する方法を残しておこうと思います。2023年現在、3作目を制作中です。道半ばですがちょっとしたゲーム開発状況について紹介していこうと思います。UI周りの修正を行っている所です。Unityの使い方について紹介していこうと思います。今回紹介するのは「ParticleにColliderを付与する方法」になります。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。最近のコメント表示できるコメントはありません。免責事項等ホーム検索トップサイドバータイトルとURLをコピーしました。