ほげほげー

C#メインにプログラミング周りから日常のあれこれとかを不定期に書いていきます。

Stone Story RPG で利用できる Stonescript のまとめ

最近 Stone Story RPG という放置系のゲームを少しやってまして。 普通にプレイするだけだとまぁ普通によくある放置ゲーなんですが、ゲーム内言語の Stonescript に手を出したら案外面白い。 しかしながら、よく使う処理系のまとまった日本語の記事が見つからなかったので備忘録がてら書き残しておくことにしました。

基本的にはプログラムを少しでも齧ったことのある人向けの話になります。

今回は Script の解説と、実際に使える簡単なスクリプトの紹介のみです。
時間ができたら実用編も書いておきます。

iOS (無料)

Stone Story RPG

Stone Story RPG

  • Martian Rex, Inc.
  • ゲーム
  • 無料
apps.apple.com

Android(無料)

play.google.com

Steam(3400円)

store.steampowered.com

続きを読む

Unity 2020 + M1 Mac + Monterey の組み合わせで Scene View がちらつく時の対処法

試そうとしたら Scene View がちらついて気になって仕方がなかったので。

環境

M1 MacBookAir macOS Monterey Unity 2020.3.21

対処法

色空間を Gamma から Linear に変更するだけ。

具体的には Edit > Project Settings を開き、PC の設定から Other Settings > Rendering > Color Space の設定を Gamma から Linear に変更するだけ。

改善方法があってよかったものの、Unity が正式対応するまではまだまだ不安定なのかな。

Windows で git へのコミット時に実効権限(Permission)を付与する

Windows で作業して Jenkins 上でビルドする、とやっているとたまに権限がダメで毎度毎度やり方をググっているので備忘録に。

背景

Linux 系の上で作業している場合は chmod を追従してくれるようなので問題ないが、Windows 上で作業した場合はその限りではなく、git コマンドを使って Permission を指定する必要がある。
未指定の場合は 644 となり、実効権限が無い状態となるため、.sh 等の実行ができない。

git for Windows のデフォルトでは filemode 設定が false となっているはずなのでチェックアウトするだけで差分が出る、といったことはありませんが、もしチェックアウトするだけで権限の差分が出る場合は以下のコマンドで filemodefalse にしましょう。

# 現在の filemode 設定を確認する
git config core.filemode

# true になっていた場合は false に設定する(必要に応じてオプションを global にする)
git config --local core.filemode false

基本的にこの設定は Windows 以外で使うことは無いと思いますので、MacLinux 等で作業している場合は true で良いはず。

git 上に保存されている状態を確認する

ls-files-s オプションを利用する事で確認できる。

git ls-files -s [target file path]

[target path] を省略すると現在のディレクトリ以下のファイルの状態が再帰的に全て列挙される。

git に Permission 情報をコミットする

update-index--chmod オプションを利用します。

git update-index --chmod=+x [target file path]

これで実効権限が付与された状態で stage されるので、後は commit したら対応完了。

なお、このコマンド自体は chmod の名に反して細かい権限設定はできず、実効権限の +x -x しか指定できません。

GMS が搭載されていない Android でプッシュ通知を受け取る

とある記事でできる旨が書いてあったので試してみたところいくらか詰まりポイントがあったので忘れないように覚書。

前置き

Q: GMS が搭載されていない技適の付いている Android は存在するのか?

A: 存在する。

日本には技適という仕組みがあり、基本的には海外から輸入したスマートフォンタブレットは特殊なルートを通らない限りは使えません。

基本的に国内で流通している Android スマートフォンタブレットには GMS が搭載されています。

が、一部例外もあり、有名どころでは Kindle Fire タブレットがあります。

他に、HUAWEI の Mate 30 以降に発表された端末はすべて GMS 非搭載となっています。

本記事ではその一つ Mate 30 Pro で設定を進めていきます。

プッシュ通知が届かない

GMS が搭載されていない端末では、一部を除いて、プッシュ通知の受け取りができません。

それはプッシュ通知を GMS に乗っかって利用している事が多いためです。

FacebookGMS に依存していないため、プッシュ通知は特に何もしなくても届きます。

プッシュ通知を受け取るには

microG を利用する事で、GMS の入っていない端末でもプッシュ通知を受け取ることができるようになります。

これの挙動に少し癖があったのでそれを含めて以下に導入方法としてまとめます。

microG を導入する

  1. ここから Services Core と Services Framework Proxy をダウンロードする
  2. それぞれインストールする
  3. microG設定 アプリを開く
  4. Googleバイス登録を ON にする
  5. Cloud Messaging を ON にする

これで導入は完了です。

プッシュ通知を使用するアプリ一覧が更新されない

ですが、これだけだとプッシュ通知を使用するアプリ一覧は更新されず、アイテムが無いと言われます。

ここがちょっと癖のある挙動で、microG がインストールされた後にインストールしたアプリしか一覧追加されません。また、実際にプッシュ通知も届きません。

そのため、一度アプリの再インストールをする、もしくはアプリのアップデートがされるのを待つ必要があります。

すると、Cloud Messaging のプッシュ通知を使用するアプリ一覧に対象のアプリが表示され、プッシュ通知が正常に届くようになります。

それでもやっぱり届かないアプリがある

諦めましょう。

こちらでは Chatwork でその現象を確認しています。

恐らくは実装側で Google Play 開発者サービスが起動していない端末ではプッシュ通知周りの処理をしないようなコードになっているんだと思います。

そもそも起動しないアプリはどうしたら

諦めましょう。GMS の載っていない端末を使っているような人が他の端末を持っていないわけがないので素直に GMS が載っている端末 OR iOS を使いましょう。