同人ゲームサークル reverse snare 開発ブログ

主に2DSTGを作ってる同人ゲームサークル reverse snareの開発記、イベント・作品宣伝を行うブログです。

Twitter連携の実装

ブログ中のDLリンク確認は完了して無効リンクの差し替えなど行いましたが、サムネ画像の差し替えがめんどくてやってない…結構な量あるよなぁ

では本題です。

RebRank製のTwitter連携ツールを使いたい

SimpleTwitterClient
https://www.rebrank.org/products/SimpleTwitterClient/

RebRankさんが公開している、ツイッターのアプリ連携を行うツールの存在を以前から知っていました。

GitHubで公開されており、MITライセンス内で使用できます。
RebRankさんのゲームはもちろん、∀kashicforceなどの他サークルの同人ゲームでも利用されているツールです。

こういうやつ

エゴサってあんまりやってないんですけど、これでタグ付けツイートさせれば感想とかたどりやすくなるんじゃないかなーという目論見で、去年の体験版の時点で実装したかったのですがTwitter側の設定がわからず実装をあきらめました。
つい先日思い立って設定を見直したら連携できたのでサクッと実装してみました。

Twitter側の設定

https://developer.twitter.com/

ここでdeveloper登録する。(1年前なので覚えてない)

アカウントを作ったら、連携するアプリケーションの情報を入力します。
右上の下矢印からApp
f:id:Y__revSD:20190630203444p:plain

右上のCreate an appで
f:id:Y__revSD:20190630203447p:plain

アプリケーションの情報入力画面に入ります。
f:id:Y__revSD:20190630203637p:plain

アプリ名はまあいいとして、

  • Website URL (required)
    開発者や製品ページのURLを記載します。
    ここに入力した内容がユーザーに表示され、連携設定を行う画面やTwitter設定内の「アプリと端末」内に表示されます。
    ほかのURL欄は入力しなくてもOKです。多分。

  • Application description (required)
    "ゲームプレイ結果をツイートします"など書いておきます。 これもユーザーから見えます。

  • Allow this application to be used to sign in with Twitter / Enable Sign in with Twitter
    Callback URLs
    チェックなしのURLなしでOKです。
    去年はここでやられてました。
    Enable...にチェックを入れるとCallback URLsがrequiredになります。

f:id:Y__revSD:20190630204814p:plain

f:id:Y__revSD:20190630204819p:plain

読み違えて「ログインが必要?そりゃそうだろうな…」でチェックを入れ 「このツール使ってるゲームではこのPIN画面が出るけど、ここのURLはどうやって調べるんだ!?」と去年は必死でググり混乱を重ねていましたが、
f:id:Y__revSD:20190701005314p:plain 別にチェックなしのURLなしでOKです。この画面が表示されるようになります。

入力が終わったらKeys and tokensタブでConsumer API keysAccess token & access token secret 両方を生成します。
Access tokenは不要かも?(よくわかってない)

SimpleTwitterClientを設定変更してビルド

https://github.com/Sheile/SimpleTwitterClient

ZIPダウンロード。
readmeどおりに進めていけばOK!

コマンド打って稼働確認しておきます。

--configで設定を行ったかどうかは、twitter-config.xmlが存在しているかを判定するとよいと思われます。

Unity/C#の実装方法を確認

  • exeを呼ぶには?
    System.DiagnosticsのProcessクラスを使用します。
void callSSTwitter(string currentPath, string arg) {
    var app = new ProcessStartInfo();
    app.FileName = currentPath + "sstwitter.exe";
    app.Arguments = arg;
    app.UseShellExecute = true;
    Process.Start(app);
}

引数に渡す文字列にはダブルクォートを忘れずに…(1敗)(最初のスペース以降すっぽ抜けた図)


public string getCurrentPath() {

    string FilePath;

#if UNITY_EDITOR
    FilePath = Application.streamingAssetsPath;
    FilePath = FilePath.Replace("Assets/StreamingAssets","");
#else
    FilePath = System.AppDomain.CurrentDomain.BaseDirectory;
#endif
    UnityEngine.Debug.Log(FilePath);
    return FilePath;
}

エディタでの動作確認はプロジェクトディレクトリ直下にsstwitter.exeを配置。
ビルドしたらゲーム本体exeと同じ階層に配置。

ツイート内容を考案

  • ゲーム名ハッシュタグ
  • キャラ
  • バージョン
  • スコア
  • 到達面
  • 設定で追加情報をツイートに含める
    • アイテム素点などスコア回りの内容

字数を稼ぐために半角英数でカバーしたい
(最近の文字数仕様だと全角文字だと140字、半角だと200?字で、混在してるとその間で文字数可変だったような気がする)

あと英語でもツイートできるようにしたい。

言語化対応

UnityのTextAssetを使った多言語対応(ローカライズ)の方法
https://taiyoproject.com/post-430
こちらの、Asset/Resourcesに言語別ファイルを置いて読み込む形式を使用。コピペして下さいとあるのでコピペする。

Dictionaryって処理・メモリ重いんじゃないかな?と思うけどツイートタイミングはゲーム終了時だしツイート時のみ言語別の文章を知ってればいいので、staticでないクラスにして必要な時だけ読み込み、解放するようにした。
ゲーム内容の多言語化はどうしようか。文章ボリュームの想定がつかないのでまた今度考える。

日本語と英語で文章構成が変わってくるので使用する単語置き換え用の単語を含んだ文章を書いておく。 $hennsuu 的な

多言語用ファイルの内容はこんな感じ。

tweet_ja.csv

HashTag  #ARCAIC_DEATH_BRINGER
Stage   ステージ
Boss    ボス
TrueBoss    真ボス
Reached $charaで$stageに到達!
GameClear   $charaでクリア!
DefeatedTrueBoss    $charaで真ボス撃破!!!!
UseContinue (Continue有)
Sies    シエス
Alsy    アルシィ
hogehoge    名称未設定
Seg セグ

tweet_en.csv

HashTag  #ARCAIC_DEATH_BRINGER
Stage   Stage
Boss    Boss
TrueBoss    True Boss
Reached $chara reached $stage!
GameClear   Game cleared with $chara!
DefeatedTrueBoss    $chara has Defeated True Boss!!!!
UseContinue (UsedContinue)
Sies    Sies
Alsy    Alsy
hogehoge    (unnamed)
Seg Seg

この短い英文でも怪しい…怪しくない?

Reachedの例で言えば、
1. ゲームで使用しているキャラの名称を取得。(ファイル後半の4項目)
2. ゲームの進行に合わせて、StageBossキーから単語を取得。
3. ステージ数はゲーム管理から取得してstringにする。
4. ステージ数とStage or Bossの単語を合成する
5. Reached文章を取得。
6. $hennsuuの文字列を用意したキャラ名、ステージ数に置き換え
7. シエスでステージ1に到達! Sies reached 1Boss!のような文字列が完成する。

追加情報をツイートに含める内容については、字数稼ぎのため英字で固定にする予定だけどハードコード脱却のためにあとで両方に同内容移すかも。

あと文字コードUTF-8で保存すること。

テストを書く

今までのゲーム、テストを全く書いていない
最近になって書いたほうがいいんだろうなと思いつつもゲームロジックはカウント多用や他オブジェクトとの会話が多めで書きづらいためできていない。

今回は動的な部分が少ないので、導入するきっかけにできた。

Unity Test Runnerを導入
https://docs.unity3d.com/ja/current/Manual/testing-editortestsrunner.html

public class TweetUtilTest {

    [Test]
    public void Test01_callTwitterConfig() {
        TweetUtil tu = new TweetUtil();

        tu.configTwitter();

    }

    [Test]
    public void Test02_stage1GameOver_Ja_Simple() {

        Settings.languege = Settings.Languege.Ja;

        TwitterSetting.enableAdditionalInfo = false;

        TweetUtil tu = new TweetUtil();

        StringAssert.AreEqualIgnoringCase(
            "\"#ARCAIC_DEATH_BRINGER " + Settings.version + " / シエスでステージ1に到達! Score:999,999\"",
            tu.Tweet(TweetUtil.Progress.St1, false, Player.NewGamePlayerBase.Chara.Sies, 999999, 123, 1.23f, 1, "hogehoge")
        );
    }

    [Test]
    public void Test03_1bossGameOver_En_Detail() {

        Settings.languege = Settings.Languege.En;
        TwitterSetting.enableAdditionalInfo = true;

        TweetUtil tu = new TweetUtil();
        StringAssert.AreEqualIgnoringCase(
            "\"#ARCAIC_DEATH_BRINGER " + Settings.version + " / Sies Reached 1Boss! (UsedContinue) Score:999,999 ITEM:+123 ElmMult:1.23 Orb:1 \"",
            tu.Tweet(TweetUtil.Progress.St1boss, true, Player.NewGamePlayerBase.Chara.Sies, 999999, 123, 1.23f, 1, "hogehoge")
        );
    }
}

StringAssert.AreEqualIgnoringCase
単純なequalアサートがないっぽい? 正規表現じゃないからisMatchじゃないし、containsも含むって変だなと思ったのでAreEqualIgnoringCaseにした。

完成! あと残作業

ヤッタネ!

  • C97版で画面遷移など整理しなおす予定なので正式な実装箇所にはまだ載せられない…
  • 設定画面で
    • sstwitter.exe 設定画面呼び出し
    • ツイート許可設定
      • twitter-config.xmlの存在を検知して設定変更 可/不可 を制御
    • 詳細を書く設定
  • ゲームオーバー処理でツイートする

うん、完成といえないのでは?

ブログお引越し

気分で移動してきました。

 Markdownが使えると聞いて飛んできました。

移転元:http://reversesnare.blog.fc2.com/

 

すごいお手軽に引っ越しできて驚いています。過去記事全部持ってこれると思ってなかった

一部gif画像が読み込めないので手修正か放置か、あと過去の作品リンクの死活確認を行う予定です。 サムネ画像のリンク先全部前ブログじゃないか?

  さて今年は冬のコミケ97と11月のデジゲー博に参加予定です。(夏はいつも通り出ません!)

AD体験版の予定ですが、洞窟面を捨て正式なstage1を実装して公開!できるといいね!! PGも音も画像も課題が山積みだぜ!!!!!!  

BOOTH Festival デジタルゲーム回 参加してました

事後報告ですが、イベントの終わった現在も販売継続しています。

アルカイック・デスブリンガー C95 体験版 (BOOTH更新版) [無料]

https://revsd.booth.pm/items/1275107

更新点は…

・エフェクトの追加

・疑似処理落ち、ヒットストップ等調整

・ボス体力表示

・ボス形態変化で錬金

・自機の攻撃、スコアシステム等調整

・自機の移動で任意縦スクロール

・敵の管理方法変更(見た目変化なし)

・一部的動作変更

…など

stolen explosive  [300円]

https://revsd.booth.pm/items/1274873

他DL販売サイトと同内容。値段は端数を減らしてちょっとお得

燗天 -KAN TEN- [無料]

https://revsd.booth.pm/items/1274801

以前ブログに置いていたものと同内容。

深夜に動画をこしらえている最中「新たに動画用意する必要あったのか」と疑問が沸き、ADは力尽きて動画作成していない。

アルカイック・デスブリンガー C95体験版 ダウンロードページ

DLカードには「省略リンクが嫌なら公式ブログを見ろ」的に書いてあったのにしばらく用意せずすいません

 

 

アルカイック・デスブリンガー C95体験版

 

DLリンク:以下のどちらかからzipファイルをダウンロードしてください。

 

頒布ファイルはzipで、AES-256で暗号化しています。

対応する解凍ソフト(7zとか)を用意しDLカード記載のパスワードで解凍してください。

 

20190626編集:リンク切れ&BOOTHで更新しているため、以降はBOOTHからDLしてください

revsd.booth.pm

 

 

 

最終更新:1/12

・起動時のロゴ表示

・warning画面のボタンスキップ

・スタートでコイン投入

・readmeに実装しているオプションの説明などの追記

・フルスクリーン対応

・キーコンフィグの設定後の表示崩れ修正

・キーコン未使用の4ボタン目の項目名変更

・リザルトボーナスの修正。ボスタイムは実装されていないため0点に固定

・一部状況でゲーム終了してもBGMなるのを修正

・たまにレーザー放してもレーザー移動速度になるのを修正

・レーザー開始アニメのタイミング修正

・PMAP権利表記追記

 

今回のバージョンは無料公開することはないです。

3月末にブラッシュアップしたバージョンを無料公開…できたらいいね!

 

 

おまけ

BGMの一部パートだけ抜き出し音源です。

 

ゲームに載せられなかった、Effekseerで作ったエフェクト2種。

スクロールついてくる仕組みを用意できなかったため今回の実装は泣く泣くあきらめた。

swing.png

剣振りエフェクト

rec_3_2.png

ボタン離しボム…の予定

 

サークルカットの子「サモナー

ザコキャラを複数考えて待機ポーズぐらいは書き上げてるけど待機アニメも攻撃も全く書いていないためほとんどのキャラが実装できない状態。

サモナーip

C95&12/29ラジオ会館同ソイベントの作品感想

ラジ館ゲームショウの作品から

DSM サークル名?DSM DEVELOP TEAMでググってもサークルページは見つからず。

https://kansai-doujingame.com/?p=2071

DSM_2.png

往年のアケシューな感じの手触りで、会場であそんでかなり気に入った作品。

ビジュアルもいいしブラウン管風の表示もオプションで細かく設定できて雰囲気がある。

敵がやや硬めな気がするけど配置や敵動作が王道という感じですごく好き。

作品や作者の情報が知りたい…

DSM.png

ボムを消費して、追尾弾などの敵弾の挙動を予測できる

グルーブコースターsteam版もそうなんだけどOSで縦画面にしないと縦表示できないヤツはデスクトップが汚れたりして面倒なのでできればソフト側だけで回転できるようにしたほうがいい(個人の感想です)

Rolling Gunner サークル:Project Rolling Gunner.

https://rollinggunner.wixsite.com/rollinggunner

RG2.png

見た目かなりケイブシューに近い、オプションのショット方向を自由に操作できるSTG

C93版でほぼ完成だったような気がしたけどメニュー画面かっこいい!発信シーンかっこいい!2ボスの曲変わってる!など変わってる箇所も多くみられた

RG.pngRG3_20190124234220c07.png

難易度は高い。全方位を攻撃できるとはいえ1面で前後から敵出すのってありなのか?でも全編にわたって複数方向から敵が出てくるので慣れるしかないのか。

キャラグラフィックや背景もすごい。switch版も楽しみ http://d-mebius.com/rolling_gunner/

Scarlet Gazers Trial ver.C95 サークル:エンドレスシラフ

http://endless-shirafu.com/

SG3.png

ゲームボーイ風の画面のSTG

readmeのQAに >普通のSTGすぎる…エンドレスシラフっぽくない… ってあるけど「ショットが十分強いんだから威勢のいい雑魚敵出してもいいよね」みたいな敵の挙動からシラフを感じる

SG2.png

SG.png

高ランク(赤)だけがハイスコアにかかわるというわけではないっぽいし、ただランク変動ボタン押せばいいってわけでもなさそう。

横帯の表示中に緑だと早回し敵が出るようなのでそのあたりがランク選択の肝なのかもしれない。

-----ここからコミケ-----

UnitedDirection C95 Trial ver. サークル:エンドレスシラフ

http://endless-shirafu.com/

UD.png

ラジ館では「やばいバグが見つかったので修正中」ということで見れなかった横スクアクションの作品。

まだまだアクションの基礎部分を作っている途中な感じ。

自作のアルデスも近接があるので、この作品の近接連撃のように1段ごとに効果音変えたほうがいいなーと思った。かっこいい

ネコミミホイールクロスデッカー C95体験版 サークル:アリスブレイズ

http://aliceblades.skr.jp/

NWCD_2019012423190589f.png

画面に積もっていく敵の残骸をボムでガリガリけずってくSTG

前回遊んだC93体験版(2面道中)から2ボスと3道中が追加されていた。敵の残骸があちこちに吹っ飛ぶので大変ハチャメチャです。

なかなかボムを残骸の塊にクリーンヒットさせるのは難しいが、大型的やボスにあてた時の爽快感がいい。海の面の残骸の挙動が独特。

NWCD2.png

NWCD3.png

BREAKPOINT V0.5(体験版) サークル:MagicalForest

http://magifore.blog.fc2.com/

BP2.png

人が飛んでる感じで弾消し錬金する縦STG。そうこのソフト側縦画面ね。

ラスボス?まで実装済みのバージョン。やっぱりエスプじゃねーか!と思ったら…?

BP4.png

前回C93版を遊んだ時も思ったけど、やはり背景が書き込まれていたり、建物の裏から出てくる敵など演出も凝っていてとてもいい。

後半面の水色背景で水色弾を出すシーンだけ結構見づらい…

(拙作も1面から緑背景で緑弾で自機キャラの頭が緑色とかやってるのであまり強くは言えない)

C93版のときまったく気づかなかったけどボムでかなり稼げるのね

BP3.png

例のアレ。最初は上下端までつかないのか~

Terra Arcadia v1.00 C95 製品版 サークル:MATYLA

http://matyla.info/contents/Terra.htm#Res

TA2.png

人が飛んでる感じで弾多めの縦STG

パッドを使うと上下入力が反転する…今後対応されるそうです。

TA.png

TA3.png

前半ステージは去年のバージョンと変わらず全方位や固定弾ばかりで窮屈だが、

後半面はバリエーションが増えたり自機狙いや自機見てる弾幕がいいバランスで出てきて面白い。

ほとんどの敵が弾撃ったら早々に帰ってしまう。全方位弾でもたついて対応に遅れると打ち込んでいる途中でお帰りになられるので少しもやもやする。

SUPERまてまてレーザー C95体験版 サークル:瞬殺サレ道?

https://ss-do.sakura.ne.jp/smmlc/ ここで過去のまてまてが遊べるのか

smml.png

https://ss-do.sakura.ne.jp/#/diary/91

今年で進展がありそうなので期待大です。

事象の地平メンダコ C95テスト版 サークル:VAGUES GAMES

http://www2.tba.t-com.ne.jp/vagues/

mendako3.png

左右移動のみのインベーダー系STG

スティックのみでショット/移動/しゃがみガードを操作するのが独特。

ゲームスピードは速くなく、敵の動きに対して撃つかよけるかガードするかを考えながら遊べる。

そんなゲームスピードに合わせたかなり重めのメタルがBGMでとてもいい。

mendako4.png

-------------------------

自機が画面端行ってたり弾に埋もれてたりスクショヘタクソマンですんません

遊んでて「それちゃんと作るの大変だしそうするよねー」とか「過去に自分も似たようなのやったけど、そうゆう方法もあるのか!」みたいな気付きがありました。

あれ、手に入れた作品これだけか…?少ない、少なすぎる。

徹夜作業や現地修正で大変だったけど、他サークルへのあいさつと作品の交換はするべきだった…

ラジ館でも見たブルーセイバーズも気になってたけど「今人いるし、コミケで買えばいいか~」とか言って結局コミケでもスルーしたし。

とはいえ遊ぶのはこの辺にして制作に戻りたいと思います。

ろくに制作に時間を当てれないまま1月も終わろうとしている…

なんていいつつへるしんかがBOOTHで出たので買ったり

https://tonnor.booth.pm/items/1187721

PS4ケツイも1クレ1週してないしサイヴァリアも年末追加されたモードまだ遊んでいない…時間が欲しい…

C95お疲れさまでした & 新年のご挨拶

新年明けましておめでとうございます。

今年も当サークルは活動を続けますのでよろしくお願いします。

そして、コミケ参加お疲れさまでした。

東京から地元に戻って早々に風邪ひいて上京時の荷物まとめてすらいない…週末やります

今回は友人に売り子を頼んだお陰で大変心強かった。

売り子と言いながらほとんどブースいてもらってなかったけど。

完徹でフラフラの自分を、初見の会場なのに引っ張ってくれたのは感謝としか言いようがない!

展示用のモニタを運ぶのを代わってもらったり、所謂ファンネルしてもらったり。

これまでの上京も基本一人だったんで周りを見る余裕ができたり自分では気づかないことを言ってもらえたり。

ひたすらに感謝!!!!

前回冬に続き近隣のサークルとなったアリスブレイズさん、MATYLAさんありがとうございました。

準備時間中にまじかるふぉれすとさんが挨拶にいらしてもう死ぬほどうれしかったです。ありがとうございました。

やはり準備時間のうちに挨拶回りを済ますべきだと思ったんですけど、

完徹で判断力が鈍ってる中で、

デモ放置で発生するバグの修正やら作成途中で半端だった機能の削除

というのを朝やってました。

昼過ぎの撤退前に友人にブースを任せいくつかのサークルさんに挨拶させていただきました。

それでも挨拶したかったサークル全部回れてなかった。

憧れの古川もとあきさんがすごく近い配置だったけど話しかける気力が持たなかった。

次回は…少なくともホテルで完徹作業は控えよう!

去年「遠征勢でCD当日焼きとか無理っすよHAHAHA」とか言ってたのが見事にDLカードで完徹かつ現地作業までしていたというフラグの拾いっぷり

上のツイートで今後の目論みを出してますが、まずは今週の金~土でC95体験版の修正を行いリリースします。

以降すぐに3月の公開に向けて製作を進めていきたいと思います。

あと、今年は製作中の作品を公開する機会を増やしたいと思っております。

動画の投稿やpixiv垢作ってドット絵紹介なんかをやっていきます。

それでは皆さん、本年もよろしくお願いします!!

C95受かりました 日曜日東地区 "チ " 44a

コミケ受かりました

現状の画面こんなんですけど

20181103_01.png

20181103_02.png

背景、UIともにUnityデフォだしエフェクト類全くないので作りこみはこれからです

半年前から製作記もさぼってたのでtwitterからいくつか

アイテムの光。あとアイテム画像はblenderでモデル作って回した。アイテム感ある

カメラ制御させるほど背景作りこめるかな…?

敵配置エディタ。

20181103_03.png

自機アニメ。ぬりおわらねえ

20181103_04.png

当日までにどこまでできるか…頑張ります。