なぎなぎブログ
Twitter YouTube

フリーズ将棋アプリベータ版公開! 個人開発!

2021-08-18 18:00:00
日記

フリーズ将棋アプリベータ版公開! 個人開発!

フリーズ将棋という変則将棋のアプリケーションを個人開発で作成しました。
オンラインで対局もできます。

今回はベータ版公開ということで一旦区切りがついたので、個人開発でアプリ作成を行った感想などを書いていきたいと思います。

目次

今回作った将棋アプリ

今回作ったフリーズ将棋のアプリの紹介動画を作っているのでこちらを見てください。

フリーズ将棋画面

ちなみに今は正式公開に向けてFANBOXの支援者限定での公開となっています。

【お知らせ】フリーズ将棋アプリベータ版公開! 事前周知|凪なぎさ|pixivFANBOX

フリーズ将棋とは

そもそも、フリーズ将棋が何なのか存じない方もいると思うので、軽く説明を書いておきます。

フリーズ将棋は、「フリーズ○○」といって、次の相手の手番で指定されたコマは動かせないというルールです。
例えば「フリーズ歩」といえば次の相手の手は歩は動かしたり、打つことはできない。

細かいルールは下記を参照(を公式サイトから引用) フリーズ将棋のルール : フリーズ将棋公式サイト@綾瀬綾

Freeze!将棋(フリーズ将棋)のルール

・先手が「フリーズ銀!」と言って指すと後手は次の一手は銀を動かせない
(駒台からも打てないよ)

・フリーズは相手の全ての駒にできるよ

・王手放置はできないよ
※フリーズを使っても王手放置はNGよ

・駒と成り駒は別物よ
(例 飛車と龍は別物)

・打ち歩フリーズ詰めはオッケー
(歩1枚で大逆転のチャンス!)

・フリーズ返しはNGよ
先手がフリーズを使ったら
後手はフリーズを使えない
(フリーズ直後の一手は普通に指してね)

・連続フリーズはオッケーよ

・フリーズを使えるのは一局中3回までよ
(フリーズは大事に)

技術スタック

この記事では、あまり詳しく技術については書きませんが、後々触れる話に少し出てくるので、使っている技術についてだけ書いておきます。

  • ゲームエンジン: Unity
  • マルチプレイ用バックエンド: Photon
  • ユーザ管理,データ管理: PlayFab

ゲーム開発の難しさ

私はプログラミングはできますが、ゲームプログラマというわけではないので、ゲームプログラミングはほぼ初めてでした。
どちらかというと私の得意分野は、バックエンドやWebプログラミングでゲームプログラミングに関してはさっぱりです。
プログラミングができると言っても分野が違えば作り方や必要な技術はかなり異なってくるんですよね。

ただ、もともとプログラミングはじめたきっかけがゲームを作りたいという動機で、それは今も抱いているものなので折角の機会なのでゲームアプリ開発をはじめました。

今回は、変則将棋という動きの少ないボードゲームなので、派手に動くようなゲームゲーム?した感じではないですが。

はじめに苦労したのはUnityでのプログラムの書き方ですね。

どうやったらきれいに書けるのか、そういうことを考え始めるとなかなか進まなくなります。

Unityからプログラミングを始めた人であれば、入門書参考に作るでしょうから、あんまりそこでは詰まることはないのかもしれませんが、
私は他でプログラミングを知っているがゆえ、ある程度きれいに、保守性のあるコードを書きたいと思ってしまい、ここにかなり時間をかけた気がします。

別にこの判断は間違っていたとは思っておらず、よくわからないまま開発を続けて、ぐちゃぐちゃになったコードを継ぎ接ぎ頑張っていくよりかは、良かったと思います。

その代わり出費もかなり有りました.
この手の話は通常入門書には載っていない、この辺りの本を買いました。

これだけで1万5000円以上の出費ですね。なかなか勉強代が高かったです。

というわけで、Unityに慣れるまでがなかなか難しいと言うのが有りました。

個人開発のモチベーションの維持の難しさ

ゲーム開発でも、Webサービスでも個人開発をするときに問題になってくるのはモチベーションの維持です。

正直個人でやってると、モチベーションの維持がかなり難しいです。

私の場合下記でモチベーションが維持できていたように思えます。

  • Twitterで進捗をアップして、その反応を得る
  • FANBOXで支援を募る

Twitterで進捗をあげて、反応を得る

幸いVtuber活動をしているのもあって、フォロワーが結構いるので、Twitterに進捗を上げると結構反応が来ます。

作成途中の動画を上げたツイートで10件以上RTをもらったりしました。

RTやいいねもそれなりにされるので、次も頑張ろうっていう気持ちになりますね。

FANBOXで支援を募る

FANBOXでフリーズ将棋アプリ開発の支援プランを用意しました。

最初に支援プランの記事を投稿したところ数名の方が支援をしてくださいました。

実際に支援を貰えると、応援してくれる人がいるんだなと感じるのと、
現金な人かもしれませんが、流石にお金をもらってしまうとやんなきゃいけないという気持ちになるので、かなりモチベーションの維持に繋がりました。

個人開発の面白さ

  • すべて自由に決められる
  • ユーザからの反応が嬉しい

すべて自由に決められる

何から何まで全部自由です。

  • 要件
  • 利用技術
  • デザイン・イラスト
  • 効果音・BGM

要件なども自分で決めて、不要なものは作らないでもいいですし、こんな機能増やしたいと思ったら自由に増やせます。

仕事とかではこの資料意味あるの?みたいな 形骸化した資料作ったりすることもあるかもしれませんが、そういうストレスが一切ないです。

純粋にものづくりを楽しめるという気がしています。

ユーザからの反応が嬉しい

モチベーション維持のところでも書きましたが、Twitterなどで反応があると嬉しいです。

もちろん仕事などでも自分が関わったものでユーザの声を聞くことはできますが、それはあくまで会社のプロダクトに対してであります。

ゼロから自分が作ったものに対しての反応があると、仕事などで間接的に関わったものよりも、嬉しさは段違いです。

逆に辛辣な意見があると辛いことはありますが

さいごに

正式リリースでは、Android, iOSで出そうと思うので、それまでまだまだ開発続きますが、良いものが作れるようにしていきたいと思います。

ときどき開発配信などもしているので、よければYoutubeのチャンネル登録などもしていただけると嬉しいです!

凪なぎさ /NagiNagisa - YouTube

Duolingoで中国語を100日勉強!どこまでできるようになる?

2021-05-29 00:00:00
日記

Duolingoで中国語を100日勉強!どこまでできるようになる?

中国語学習のできるアプリのDuolingoで中国語を100日間勉強しました!どのくらいできるようになったのかを、中国語を話せるようになったのか?ということについて記載します。

duolingo100日

キャプチャ画像は100日の時を取り忘れたので101日になってしまいました。

目次

Duolingoって?

Duolingoは中国語に限らずいろいろな言語を勉強することができるサービスです。
PCからWebからの学習や、スマホアプリで勉強することができます。

広告などは表示されますが、無料でも利用できるので新しい言語をちょっと勉強してみたいというときにおすすめのサービスです。

結論!どれくらい話せるようになる?

語学でどのくらいといっても、モノサシがないと伝えづらいのですが、

日本でよく受けられている中国語検定(HSK)のレベルで言うとギリギリ2級合格レベルにはなれたかと思います。

HSK の公式サイトでチェックで各級の例題を受けられるのですが、なんとか2級までは合格圏内でした。
レベルチェックテスト | HSK 日本で一番受けられている中国語検定

HSKは1級、2級、3級、4級、5級、6級と 級位が上がるごとに難しくなります。他の日本の検定とは逆なので注意。

この2級レベルですが、HSKのサイトにはこう書かれています。

筆記2級について | HSK 日本で一番受けられている中国語検定

「身近な日常生活の話題について簡単で直接的な交流ができ、初級中国語の上位レベルに達している」

ビジネス会話は無理ですが、「あそこに○○があります」とか「私は何々がしたいです」といった簡単な意思表示や説明で日常会話を行う事ができる程度かと思います。

Duolingoをどのくらいすすめたのか?

この100日間で得た経験値は5881XPでした。
Duolingo経験値

1日あたりにすると58XPですね。1つのレッスンあたり10~15XPもらえるので、だいたい毎日4レッスンくらい進めていた感じですかね。

コースの進捗としてはこんな感じです。

Duolingo進捗

チェックポイント3以降は実は始めた頃はまだレッスン自体がなくて、最近追加されたレッスンになります。

ちょうどすべてのレッスンが終わりそうだったので、新しいレッスンが増えてくれてよかったです。

学んだ単語数

Duolingoの中国語のコースでチェックポイント3あたりまでで学んだ単語数は315語でした

Duolingo単語数

HSK2級の単語数はだいたい300語と言われているので、ちょうどそのあたりの学習語数ですね。

300語程度の常用単語と文法知識を習得している者を対象としています。

Duolingoで学んでよかったところ

音声があるので中国語の発音が身につく

中国語は声調などもあり発音がかなり大事になってくると思います。

Duolingoではリスニングの問題でなくても、毎回中国語を発音してくれるので、発音を覚えるのにはかなり役立つと思います。

書籍などのテキストだけではこのあたりは身につかないので、Duolingoの良いところですね。

反復練習が自然とできる

スマホやPCで選択肢を選ぶだけなので、簡単に続けられてなおかつ反復練習ができます。

一度最後までやったレッスン? しばらくすると、下の画像のように壊れた感じになって、再度レッスンを行うことを促してくれます。
Duolingoレッスン

私の場合本のテキストだとなかなか本を開くのが億劫になってしまうのですが、スマホやPCはよく触るので空き時間に暇つぶし感覚でやれるのも良いところです。

Duolingoの物足りない点

ピンインや文法についての説明がない

Duolingoの日本語で受けられる中国語のコースは文法についての説明が一切ありません。

特に始めは中国語はpinyinというのを使って読み方を表記しますが、こちらもDuolingoには説明がないです。

大体はローマ字読みっぽい感じで何となく発音わかるとは思うのですが、中国語は発音が大事な部分だと思うのでこのあたりは別の教材で学ぶ必要があると思いました。

私の場合Youtubeなどでピンインの発音方法などは学びました。

文法に関しては実は、日本語で中国語のコースを受けるのではなく、英語で中国語のDuolingoのコースを受けると、軽く文法の説明が合ったりするようなので、英語がある程度できる方はそちらで勉強しても良いかもしれません。

さいごに

100日間自分のペースでやってみて、100日間やっているだけ合って始めた頃よりは少しは中国語ができるようになっているとは、実感しています。

ただ、実際使われている会話を聞き取ることや、会話をするというレベルにはまだまだほど遠いです。

せっかく100日間続けてきたので、もう少しDuolingoでの学習も続けてみようかと思います。

Webカメラだけで全身トラッキング! ThreeDPoseTracker! Vtuberになろう!

2021-01-21 22:30:00
VTuber

Webカメラだけで全身トラッキング! ThreeDPoseTracker! Vtuberになろう!

Vtuberをやりたい!もしくはVtuberをやっていると、やはり自分のモデルの全身を動かしたくなってきますよね?

というわけで、今回はWebカメラだけでフルトラッキングができるThreeDPoseTrackerというソフトについて紹介します。

全身フルトラッキングというとVIVEなどのモーションキャプチャ用のトラッカーが必要となりますが、実はWebカメラだけでも全身トラッキングができます!

最近ではGoogleからMediaPipeなどのライブラリも出てWebカメラだけでもハンドトラッキングや全身トラッキングができる時代になって来ているのではないかと思います。

目次

Webカメラだけでフルトラッキング!

全身フルトラッキングというとVIVEなどのモーションキャプチャ用のトラッカーを装着してバーチャルモーションキャプチャーなどを使って全身トラッキングをしたりというのが考えられますが、
トラッカーだけでもかなり高いですし、ベースステーションの設置も必要で、部屋の環境なども制限されてきます。

個人Vtuberなどでやってる人にはそんなに高い機材は変えないし、もっと気楽にやりたいですよね。

実はWebカメラだけでもフルトラッキングができます!

それが次に紹介するThreeDPoseTrackerというソフトです。

ThreeDPoseTracker

USBカメラモーションキャプチャーThreeDPoseTrackerの説明 - Qiita

Webカメラの映像の情報から姿勢推定をしてVRoidの3Dモデルに反映してくれます!

しかも無料で使える!本当にありがたいですね。Licenseやソフトのダウンロードのリンク先があります。

使ってみる

ダウンロード

最新版が更新されていることがあるので下記の記事からたどって最新版をダウンロードしてください。 (2021年1月21日時点の最新はv0.3.0)

USBカメラモーションキャプチャーThreeDPoseTrackerの説明 - Qiita

Zip形式なので、解答して中にある実行ファイルを起動するだけでアプリケーションを使うことができます。

使い方

VRoidなどで自分で作ったモデルを読み込むときはAdd Avatarから追加します。

読み込めるのはVRMファイルになります。

Add Avatar

VRM Fileのところで自分VRMファイルを選択します。 Addを押すと追加されます。

アバター追加

ウェブカメラを使ってトラッキングするには、「Source Dvice」のところから、自分の使っているWebカメラを選択します。

Webカメラを使う

その後「Start Cam」をクリックするとトラッキングが開始されます

Webカメラを使う2

使ってみた感想

Webカメラ1台だけということで、精度などが気になるところでしたが、全然使えます!

後ろ向いたりとかも普通にできます!

紹介の動画にあるように、環境が良ければ踊ったりも十分できそうです。

配信などでOBSで使う

OBSで取り込むときはThreeDPoseTrackerはグリーンバックになっているので、それをウィンドウキャプチャで取り込んで、グリーンバックを透過すればよいです。

OBSのソース=> 「ウィンドウキャプチャ」を選択

OBS設定1

任意の名前(ここではThreeDPoseTrackerとします)を入力してOKをクリックします。

OBS設定2

ウィンドウにThreeDPoseTrackerが選択してください。
事前にThreeDPoseTrackerは起動しておく必要があります。

キャプチャ方法をはWindows10以降であれば Windows Graphics Captureにしておくとよいと思います。

そのままOKをクリックします。

OBS設定3

グリーンバックを透過させるためにフィルターを追加します

ソースの先程追加した「ThreeDPoaseTracker」を右クリックして「フィルタ」を選択

OBS設定4

エフェクトフィルタのところで「+」ボタンを押してカラーキーのフィルタを追加します。

OBS設定5

類似性と滑らかさを調整してモデルに緑の縁残らないようにして閉じるをクリックします。

上のバーのところは透過されず残っていますが、後でクロップ、トリミングするので問題ありません。

OBS設定6

ソースの「ThreeDPoseTracker」をクリックするとOBSの画面上でウィンドウキャプチャしてる範囲が赤い枠で表示されています。

赤い枠を「Alt」キーを押しながらドラッグすることで表示範囲をトリミングできます

OBS設定7

これでOBSに背景を透過させてモデルだけ表示させることができました。

OBS設定8

Webカメラだけでトラッキングができる時代

ここからは少し余談になりますが、技術的な話になります。

上記のThreeDPoseTrackerではディープラーニングを利用して、自前で姿勢推定モデルを作成されているようですが、以前GoogleからMediaPipeというライブラリが公開されました。

google/mediapipe: Cross-platform, customizable ML solutions for live and streaming media.

MediaPipeはストリーミングメディア向けの、パイプライン推論を行うライブラリです。

上記のgithubを見てもらえばわかるように、リアルタイムで顔認識やハンドトラッキングを行うサンプルなどもあります。

  • 顔検出
  • ハンドトラッキング
  • 姿勢推定
  • 物体検出
  • アイトラッキング

などなど

MediaPipeにこういったモデル自体も含まれているので、誰でも簡単にWebカメラだけでトラッキングが試すことができます。

ハンドトラッキングといえばLeapMotionが有名ですが、Webカメラだけでもハンドトラッキングもできるようになりそうですね。

こういったライブラリが公開されると、トラッキングソフトなども作りやすくなるので、これからどんどんWebカメラだけでもトラッキングできるソフトが増えてくるのではないかと思います。

全身トラッキングも、ハンドトラッキングもすべてWebカメラだけで完結して、簡単にフルトラッキングでVtuberになれる時代が来るのではないかと思います。