忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

今後はnoteに移行しようかと思います。
https://note.com/xxxx_kt_xxxx

今迄の記事も引っ越そうかと思ったのですが画像ファイルは引っ越し出来ないようで個別に設定する訳にもいかないのでこのまま置いておきます。

PR
Steamに登録する時に報酬の振り込み口座を登録するのですが、この口座は外貨受け取りが出来る口座じゃないと駄目なんです。
当初私はどんな銀行でも良いと思っていてペイペイ銀行で登録していたのですが、最初の報酬の支払いの時に入金に失敗したとメールが来たので調べてみるとペイペイ銀行は外貨受け取りが出来ない銀行だった事がわかりました。

外貨受け取りする為にはSWIFTコードを入力しないと駄目なのですが、ペイペイ銀行にもSWIFTコードはあったので大丈夫だと思っていたら国内の口座にある外貨を受け取るためで海外からの送金は出来ない模様。
そういう銀行は結構あるようなので最初の登録の時に良く調べておいた方が良いかもです。
ざっと調べてみた感じだと大手の銀行は大体大丈夫そうでしたが手数料が結構かかるなぁと言う印象でした(2000円~5000円程度かな?)

そんな事をTwitterで呟いていたら新生銀行が良いと教えて貰って調べてみると手数料は2000円か14ドルで新生銀行を給料の振り込み口座などにしておくと口座のステージが上がり手数料はキャッシュバックされる(実質無料)って感じでしたので早速口座を作って登録してみました。(口座を作った当初6か月間は自動的にプラチナステージなる模様)


受取人名:ローマ字で口座名を記入する
銀行名:SHINSEI BANK, LTD., HEAD OFFICE
銀行 SWIFT コード:LTCBJPJT
受取人の口座番号:***********(店番号と口座番号の10桁)
口座の種類:作った種類の口座
通貨:USD
銀行住所:2-4-3, NIHONBASHI-MUROMACHI, CHUOKU
銀行所在都市:TOKYO
銀行郵便番号:1030022
銀行口座開設国:Japan

新生銀行のHPにはこんな感じで説明されてました。


口座開設後にマイナンバーの登録も済ませておくと良いと思います。(外貨受け取り時に必要なようです)

新生銀行の場合はこれだけで良かったのですが、銀行によっては中継銀行も記入しないと駄目っぽいです。


と言う事で無事に入金されていました。
振り込み手数料は14ドル引かれていました。またドルから円に換金するのに1ドルにつき0.07円かかるようです。
結局、総売り上げからSteamに30%支払った残りより振込手数料14ドルが引かれた物が入金されました。


USドルで入金されていたので換金する時は出来るだけ円安の時に換金するのが良いのでしょうけど、ここ最近上下しまくってるのでタイミング難しすぎます。。。
曲線のプログラムを色々作ってみたものをTwitterにアップしたので忘備録としてまとめておきます。
制作に当たって下記のサイトさまを参考にさせて頂きました。
http://www.ne.jp/asahi/music/marinkyo/matematiko/kurbo.html.ja
https://r-dimension.xsrv.jp/classes_j/sine_cosine/

















Steamで実績を実装してみたので忘備録として書いておきます。
(書いてる筆者はド素人ですので色々間違っている可能性あります)
大前提としてSteamworks.NETをUnityにインストールしておいて下さい。
インストール方法は
https://ktstg.blog.shinobi.jp/Entry/1011/
で書いています。

当初は実績なんて無くても良いかなーと思っていたのですがゲームリリース後に実績目的で遊ぶ人もいるので実装した方が良いよとアドバス受け実装してみました。
ランキングと比べると実績の実装は簡単なのでやってみても良いと思います。
実装にあたり
Steam実績を実装する(Steamworks側設定編)
Steamの実績をUnityで実装する【Unity】【Steam】
コチラのサイトさんを参考にさせて頂きました。

まずはSteamworks管理画面のデータ&実績から実績を開きます。


実績にはクリアで達成などのオンオフのみで実装できる実績と、100万点とったら実績といった数値データが必要な実績があると思います。
これの数値データが必要な実績で何%まで達成みたいな表示を行いたい時は「データ&実績」のデータ画面でデータを先に作る必要がありますが今回は使わないので書きません。
(上記参考サイトさんで解説されています)
逆にオンオフのみで達成出来る実績の場合はデータを作る必要はなく実績の方だけ作れば良いです。

まずは実績アイコンを作ります。
実績アイコンは256x256のjpg画像が推奨されていますが実際に表示される時は凄く小さく表示されるので最少サイズの64x64くらいで表示されると思って作った方が良いです。
取得していない時のアイコンは取得している時のアイコンをモノクロにした物にします。

こんな風に作りましたが、実際の画面では全然文字が読めませんでした(笑)

実績画面で実績の項目を作っていきます。

新しい実績ボタンをクリックすると実績作成の項目が出てきます。
それぞれの意味は
API名:Unityでプログラムなどから指定する時の名前

進行状況:オンオフのみの実績なら「なし」最小値/最大値も0で良い。何%まで達成の表示を行うときはデータ画面で作成したAPI名を選択して最小値/最大値を入力する

ディスプレイ名:実績の名前。Steamクライアントなどで表示される実績名です。

説明:ディスプレイ名の下に表示させる実績の説明(「ステージ1をクリアした」みたいな感じ)

設定:データを修正できる人を設定
Client / ゲームアプリから更新(基本はコレを選択する)
GS / 自分でサーバーを立ててソコから更新する
Offical GS / Steamゲームサーバーから更新する

非表示?:獲得するまで表示しない(隠し実績)

達成アイコン:実績解除後のアイコン(カラー推奨)

未達成アイコン: 実績解除前のアイコン(白黒推奨)

以上をそれぞれ埋めていきます。アイコンは設定してもすぐに反映されません。途中で一度保存してから再度読み込むと上手くアップロード出来るようです。

@Unityへの実装
まずはスクリプトの最初にusing Steamworks;を記述します。Steamクライアントも起動させておかないとエラーになります。

実績解除の流れとしては
1.SteamManager.Initializedで初期化
2.SteamUserStats.RequestCurrentStats();でtrueが返ってくるか判別
3.SteamUserStats.SetAchievement("作成したAPI名");で実績解除
4.SteamUserStats.StoreStats();で解除を反映する(ポコンする)
と言った感じ

実際の実績解除はこんな風に書いています。


あと、すべての実績を解除した時の実績を作りたいなと思ったので
SteamUserStats.GetAchievement("作成したAPI名", out bool);で解除した実績を調べられる(trueだと実績を解除している)ので全ての実績を調べて解除するようにしました。


@実績のローカリゼーション
作った実績を色々な言語にローカリゼーションしたい時はSteamworks管理画面のデータ&実績から実績のローカリゼーションを選択します。


作成したい言語にレ点を入れて保存。


ALL Languagesを選択してローカリゼーションデータをダウンロードします。


ダウンロードしたデータをテキストエディタ等で開きます。

設定したい言語の所が空白になっているので埋めて上書き保存します。

保存したファイルを選択してアップロードすればOK


実績画面に戻ると言語が選択出来るようになっています。


これで上手く出来るはずなんですが自分の場合は日本語だったからか上手く反映出来なくて、結局実績を作成する画面のEditで一つづつ更新しないと駄目でした。
Steamでオンラインランキングを実装してみたので忘備録として書いておきます。


オンラインランキングを実装する流れとしては
①Steamworks管理画面にランキングを作成
②Steamworks.NETをUnityにインストール
③UnityにてオンラインランキングをC#で実装
といった感じになります。

実装にあたり
Steamのランキング(リーダーボード)をUnityで実装する【Unity】【Steam】
Unity製ゲームで、Steamのランキング実装をするには
コチラのサイトさんを参考にさせて頂きました。

①Steamworks管理画面にランキングを作成

Steamworks管理画面のテクニカルツールにあるSteamworks設定編集→データ&実績→ランキングを選択します。
ランキングを追加で任意の名前を付けて作成します。

パラメータの内容はSteamworksの説明から抜粋
*********************************************************************
名前-ここには、内部開発用に意味のある名前を設定します。
コミュニティ名-ランキングをコミュニティハブに表示する場合は、ここに一般公開用の名前を設定します。 名前が入力されていない場合は、ランキングは表示されません。
並べ替え方法-ランキングの並べ替え順序を設定します。 順位が基準のランキングでは昇順を使用し、 ハイスコアが基準の場合は、降順を使用してください。
表示タイプ-ランキングで表示するデータのタイプを決定します。 数値、秒またはミリ秒から選択します。
書き込み-これが「信頼済み」に設定されている場合、クライアントによってランキングスコアを設定することはできず、SetLeaderboardScore WebAPIによってのみ設定できます。 デフォルトでは設定されていません。
読み取り-これが「フレンド」に設定されている場合、ゲームはユーザーのフレンドのランキングスコアのみを読み取ることができます。すべてのスコアはWebAPIによって常に読み取り可能です。 デフォルトでは設定されていません。
*********************************************************************
書き込みと読み込みは特別な事をしない限りは設定する必要なさそうです。
並べ替え方法1位から順番に表示したい場合は降順にします。

実施したいランキングの数だけ作成します。
(例えばイージーとノーマルとハードに分けたかったら3個作る)
ランキングを作成したらココでの設定は終了です。


②Steamworks.NETをUnityにインストール
アセットストアにもあるみたいですが公式の?Githubからダウンロードするのが良さげ
Releases · rlabrecque/Steamworks.NET
ちょっと下にあるSteamworks.NET_20.1.0.unitypackageをダウンロードしてAssets→Import Package→Custom Packageでインストールします。

インストールしたらゲームプロジェクトフォルダの一番上の階層にsteam_appid.txtがあると思うので、それを開くのですがUnityからは見えないのでWindowsからテキストエディタで開きます。
初期は480?かと思いますので、自分のゲームのID(Steamworksに表示されているゲームタイトルの横にある数字)を入力して保存します。
保存したらココでの設定は終了です。


③UnityにてオンラインランキングをC#で実装
※オンラインランキングを使用するときはUnityと同時にSteamも立ち上げておかないとエラーが出るので注意が必要です。

ランキングを使用するスクリプトには一番初めに
using Steamworks;
を記述する必要があります。

ランキング送受信する時のC#スクリプトはこんな感じ

リーダーボードの取得


ランキングの取得


スコアの送信


流れとしてはリーダーボードを取得してランキング取得して表示もしくは送信を行うだけなので、ランキングの取得とスコアの送信が出来れば何とかなる感じです。
取得した順位はテキストなどに入れて表示すればランキング表が出来ます。

ただ、あまり頻繁に取得すると表示制限?が掛かるみたいで取得出来なくなるので、あまり更新頻度は上げない方が良さそうです。
Twitter
カレンダー
02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]