検索
ハートフルRPG「地図の時間」

地図の時間スピンオフRPG「影泥棒と魔法の手記」

リソース管理ダンジョンRPG「琥珀の道具士」

現代SFRPG「重力ルーペ/探求リバーブ」

ドラマティックRPG「バンドワゴン」

ビジュアルノベル「日向と香水」

ノベル×ADV「ストーリーテラー」 title1_2.png
カテゴリ
リンク集
【スポンサードリンク】

【ゲーム】




【創作】






シナリオ制作


設定作り


最近読んでよかった本五選





創作意欲を掻き立てる本


自己管理術


クリエイター向けノウハウ

2020年08月02日

Steam works APIをRPGツクールMVで実装する方法

Steam works APIをRPGツクールMVで実装する方法


この記事は書きかけです。試し次第追記します。

Steam works API……Steamのオーバーレイ表示やWorkShop機能を使うためのAPI。
私が着目したのは、Steamの実績機能が利用できるということ。

steam_200802_1.png

実績機能をストーリーラインに組み込めば、プレイヤーさんのn%が到達したという情報が得られます。
この情報は作者にとってゲームの改善点に役立ちそうです。

既にSteamworksの他設定を済ませている方は、こちらを参照なさってください。

参考資料)Steamworksドキュメンテーション データと実績
https://partner.steamgames.com/doc/features/achievements

実装方法

RPGツクールMV標準(HavaScript,HTML5)では対応していません。
次の2種類の方法で設定を受け渡す必要があります。

1.Greenworks
https://github.com/greenheartgames/greenworks

Green worksはnode.jsの拡張するライブラリ。
node.jsはコマンドラインで操作する設定アプリケーションのイメージ。
RPGツクールMVをスマホビルドした経験のある方なら、プログラムの検索でnode.jsで検索するとインストールされているはずです。

2.海外プラグイン「Visustella_Steamworks_Release_Build」利用
Steam works に渡すコールバック(実績解除などのシグナルを渡す処理)をプラグインコマンドやメモ欄で実装するプラグイン。

https://archeia.itch.io/steamworks-for-rpg-maker-mv-161

この記事を書いている時点でSteamSDK1.42に対応。
記述例はこんな感じ。

steamworks activateachievement THE_BEST_ACHIEVEMENT_EVER
steamworks giveachivement WHAT_IS_MOE_BABY_DONT_MOE_ME_NO_MOE
StEaMwOrKs grantachievement BY_THE_POWER_OF_MEMES

詳細はプラグイン内の説明文にて記述されています。

必要なもの

・実績アイコン(実績獲得済み用と獲得済み前の画像)
 サイズは64x64 px JPG
 実績用のアイコンは、獲得済みのアイコンには色を使用し、獲得済みでないアイコンには白黒を推奨とのこと

アイコン作成はYEP icon generatorの機能を使うと、フレーム素材が使える、64×64サイズで出力できるので便利。PNG出力なのでJPG変換は自分で。
http://yanfly.moe/2016/04/01/yanfly-icon-generator-rpg-maker-mv/

----
Steam works apiについては以下参照。

Steamworks API概要
https://partner.steamgames.com/doc/sdk/api#callbacks

----
memo:
オレンジブラッドはGreenworks式。
wwwフォルダ直下にgreenworks.jsがあることで判断。
ぶきあつめ(英題:The World is Your Weapon)は判断できず(Greenworksだと思いますが)。
少なくとも方法2のプラグイン式は両作品とも使用しておらず。
----
Steamworksでの実績設定方法

1.Steamworksにログイン
2.アプリとパッケージ→Steamworks管理
200802_11.png
3.データ&実績→実績→新しい実績
200802_12.png

4.この画面で実績について設定する
・API名(初期値:NEW_ACHIEVEMENT_1_0)
 APIで実績にアクセスするために使用される文字列
・ディスプレイ名(初期値:NEW_ACHIEVEMENT_NAME_1_0)
 クライアントの通知ポップアップやコミュニティで表示される実績の名前です。 ローカライズ可。
・説明(初期値:NEW_ACHIEVEMENT_DESC_1_0)
 コミュニティで表示される実績の説明です。 ローカライズ可。
・進行状況
 この実績に対してコミュニティ上でプログレスバーとして使用されるデータを指定します。 データがアンロック値に達すると、実績も自動的にアンロックされます。
・最小値
 このデータが受け入れる最小値を表します。 初期値では、最小値は基となる数値タイプの最小値になります(INT_MIN、またはFLT_MAX)。
・最大値
 このデータが受け入れる最大値を表します。 初期値では、最大値は基本的な数値タイプの最大値になります(INT_MAX、またはFLT_MAX)。

・設定(Client、GS、Official GS)
 実績をアンロックできる人を設定。 初期値は、クライアントに設定されています。
 ※クライアントでいいでしょう
 ゲームサーバー統計データを使った仕組みもできるとのこと(プレイヤーがn人どうしたとか)
参考)
https://partner.steamgames.com/doc/features/achievements#game_server_stats

・実績達成用のアイコン、未達成のアイコン(64×64のjpeg)

設定サンプル画像
achievements_spacewar.png

参考資料)Steamworksドキュメンテーション データと実績
https://partner.steamgames.com/doc/features/achievements



具体的にどのように実装するかは、今後、私自身の体験をもって記載したいと思います。
作品を完成させ、組み込む段階になったら検証し、この記事記事を更新します。

※そもそもリリースを優先させて、後でSteam works api利用を考えた方がいいかもしれません

作品の制作日誌はこちら。応援よろしくお願いします。
https://ci-en.net/creator/4244
posted by tabirpglab at 17:59 | Steam展開ノウハウ