さけのさかなのブログ

同人ゲーム開発やってます。Unity使ったりする。

個人でSteamに開発者登録する

概要

 Q. Steamって個人でもリリースできるの? A. できます

 Steamの開発者向けドキュメントが公開されているので、これに沿って登録手順を説明する。

partner.steamgames.com

参照ページ

 ここにすべて書いてある。

Onboarding (Steamworks Documentation)

1.会社情報の登録

 個人で登録する場合にはこのように記述されている。

個人でコンテンツを所有している場合、Sole Proprietorshipと入力し、会社名には本名を記入してください。 通称やニックネームなどは入力しないでください。

2.支払い情報の登録

Steam での売上に基づく支払いの送金先となる銀行情報 (ルーティング番号、口座番号、銀行の住所等) が必要です。

 つまり、Steamからの外国送金を受け取る銀行口座が必要。そのSWIFTコードや店名、所在地のアルファベット表記を要求される。「銀行名、SWIFTコード、外国送金」あたりで検索すれば出ると思う。

 例えば三菱UFJ銀行にはこのように案内がある。

外国送金のお受け取り | 三菱UFJ銀行

 ちなみに、銀行の登録をミスっても次回の支払いに繰り越されるだけなので死なない(一敗)

3.税金情報の登録

米国と租税条約を結んでいる国の個人と法人は、W-8BEN フォームと同様の情報が必要です。

 ここでマイナンバーを使えるらしい。らしいというのは私はEINで登録してしまったので、実際にマイナンバーを使ってはいないから。「W-8BEN マイナンバー」 あたりでググるとそれっぽい記事が出るのであとは各自で判断して……。

 EINの取得は時間や労力がかかるのでお勧めしない。

4.100ドル支払う

 ちょっと記憶があいまいだけど、登録する前にまず100ドルの支払いが必要だったはず。これはゲームの売り上げが1000ドルを超えると回収できるようになるアプリ登録料というもので、ようするに回収さえできればチャラ。

Steam App Fee (Steamworks Documentation)

 よくわからんままいきなり支払いを要求されるのはギョッとするけど、とかく手続きに関してはどこで時間をとられるか分からないので、土壇場になる前に済ませておくことをお勧めします。

あとは

 ゲームごとの個別設定になる。ここまでくればあとは大したことは……あー、アップロードツールはちょっとだけ使いづらいかもしれない。きがむいたらかく。

東方遊宴雀2のこと

yuenjaku.com

 来たる23日、遊宴雀2にサークル参加します。スペースは雀-17。

store.steampowered.com

 出し物はEthanol in dungeonというゲーム。アクションゲームなんですが難産していて、どれぐらい難産かというと例大祭でリリースするつもりが伸びてまだ完成していない。ひどいな!

 具体的な進捗としてはいまSteamのレビュー待ち。レビューが通ればリリースできるんですが、通らなければ間に合わない可能性がある……。ひょっとするとリリース前のゲームのSteamカードが机に並んでいる可能性。そんな感じの瀬戸際です。ひっでえな!

 値段は300円の予定ですが、リリース間に合わなかったら金額は下げるかも。

夏コミのこと

 落選。

megabitconventionのこと

megabitconvention.com

 サークル参加申し込みした。スペースがもらえるかどうかは分かんないけど、もらえた場合は当日は取材類を拒否する予定。めんどくさいけどこれはあとでかく。

【Unity】onValueChangedを発火させずにSliderの値を変える

 Unity2019.1でSetValueWithoutNotifyメソッドが追加された。

slider.SetValueWithoutNotify(value);

// normalizedValueには対応してないのでこう書く
slider.SetValueWithoutNotify(Mathf.Lerp(slider.minValue, slider.maxValue, normalizedValue));

// toggleにも似たようなのがある
toggle.SetIsOnWithoutNotify(true);

以前は

 こう書くととりあえず動く

var tmp = slider.onValueChanged;
slider.onValueChanged = new Slider.SliderEvent();
slider.normalizedValue = value;
slider.onValueChanged = tmp;

コード

bitbucket.org

【Unity】Packageを自作する

 Unityのpackageはgithubリポジトリを参照することができる。ということで自分用のpackageを作ってみる。

github.com

github.com

f:id:enuenupi:20190529073957p:plain

 汎用的に書けてる部分ということでさしあたりコレクションと数学まわり。ファイルやインプットまわりもいけそうだけど、コンシューマ機のコードが入るので、公開リポジトリに置くとアカンのだ。

メモ

  • packageにはAssemblyDefinitionを置かないといけない。
  • packageリポジトリにpushがあってもバージョンアップを検知してくれないっぽい? つらい。

【Unity】範囲が無制限な二次元配列

やること

 負の方向にも要素を持てて、リサイズ可能な(というか勝手にリサイズされる)二次元配列を実装する。

 やりたいこととしてはDictionary<Vector2Int, T>でいいんだけど、パフォーマンス的にもうちょいマシなものを目指す。

コード

gist.github.com

こうやって使う

var array2 = new UnlimitedArray2<string>(0, 0, 8, 8); // 8x8サイズの配列
var array2[1, 2] = "hoge"; // 二次元配列感覚で使う
var array2[50, 50] = "fuga"; // 範囲外にアクセスしても勝手にリサイズされる
var array2[-1, -1] = "piyo"; // 負の値を入れても動く

// 要素をなめる。
// この場合、i : [-1, 50], j : [-1, 50]の範囲をとる。
for (int i=array2.MinX; i<=array2.MaxX; ++i)
{
    for (int j=array2.MinY; j<=array2.MaxY; ++j)
    {
        Debug.Log(array2[i, j]);
    }
}

なお

 リサイズが起こるSetを連発されると辛くなるのは見えてるんだけど、そのへんは生成時のサイズ指定で良い感じの値を入れておいてほしい。(Listみたいに多めにキャパシティを獲得しておく手はあるんだけど、二乗で利くのでさすがに怖い)

過去作をブラウザで動くようにする

enue.github.io

ナニコレ

  • もともと2015年の例大祭で出したゲームです。
  • HDDの肥やしになってたのでせっかくだからブラウザで動くようにした。
  • 元ネタのゲームの都合で、キャラがファイヤーとかボンバーとか言う。
  • 勢いで作ったゲームなので色々アラはあるけど、今回は単にブラウザ移植ということで変更は最低限にしてあります。
  • (でも弾幕部分は意外とそれっぽくできてるな?)

技術的なあれこれ

 Unityのバージョンで言うと5.1から2019.1.2への移行。

修正点

  • Application.CaptureScreenshot -> ScreenCapture.CaptureScreenshot
  • Graphics.DrawProceduralIndirect -> Graphics.DrawProceduralIndirectNow
  • Camera.hdr -> Camera.allowHdr
  • フォントがArialだったのをNotoFontに差し替え
    • これは元々の作りが悪くて、フォントはインポートしたものを使うべきだった。
  • EventSystemオブジェクト作り直し
    • どこかでフィールドの追加があったっぽくて、オブジェクトを作り直さないと動かなくなってた
  • BaseVertexEffect -> BaseMeshEffect
  • 文字のグラデーションがおかしくなったので手動で直す

【Unity】Tilemapの拡張機能を導入する

やること

 UnityのTilemapは機能が物足りなくて、たとえばアニメーションするタイルが使えない。

 が、github2d-extrasリポジトリ拡張機能が公開されており、アニメーションタイルなんかもこれで使えるようになる。この記事はこれの導入方法について。

手順

 PackageManagerに登録する。

 やり方としては、プロジェクトのPackages/manifest.json

"com.unity.2d.tilemap.extras": "https://github.com/Unity-Technologies/2d-extras.git#package",

を追記すれば良い。

 こんな感じ。

f:id:enuenupi:20190508065414p:plain

 するとこうなる。

f:id:enuenupi:20190508070056p:plain

リポジトリ

 ぜんぶここにかいてある

github.com