2020/01/13

【アプリ紹介】好きカメラ

今日は 2020/1/11 に公開した「好きカメラ」の紹介です。



こんなアプリ


カメラに写っている被写体をタッチするとAIで検出したっぽい緑の枠が出てきて、その上に「好き」ラベルが現れます。

その状態でシャッターボタンを押すと、「好き」と緑の枠付きの写真を保存したり共有したりすることができます。

「好き」ラベルは好きなテキストに変えることができます。また、枠の位置や大きさも変更可能です。

既に撮影した写真に対しても説明を入れることができます。

推しを表現したり、ネタを作ったり、ご自由にお使いください。

というアプリです。



開発の経緯と今後


かわいさカメラ」 (※顔認識して全員「かわいい」と表示するアプリ) を作った後に、これ別に顔認識しなくて良くね?てか顔以外にも枠を付けたいし。と思ったので、枠の位置や大きさ、テキストを人間が指定できるアプリを作りました。

開発期間


2020/1/7〜1/10の4日間です。

カメラプレビューを常時表示したり、特定のタイミングでそれをUIImageに変換したり、フォトアルバムから画像を選択するコードを簡単に使えるようにすでにライブラリ化していたのと、スクリーンショット、PV、アイコン、ヘルプhtmlを自動生成する仕組みもあったのでそれをさっと使う感じで楽に作れました。


技術的な解説


カメラ映像を常時表示しておいて、画面がタッチされたら枠を追加する、テキストがタッチされたら編集する、枠がドラッグされたら移動やサイズ変更をする、シャッターボタンが押されたら写真と枠とテキストを合成して保存/共有する、という、まぁ普通な作りです。

ドラッグやタッチを検出していい感じに処理するあたりは状態管理が複雑なので毎回ちょっとハマる感じです。


以上、「好きカメラ」の紹介でした。

2020/01/12

【アプリ紹介】コマ撮りくん

今日は 2017/5/3 に公開した「コマ撮りくん」の紹介です。

こんなアプリ


コマ撮り、もしくはストップモーションアニメーションを作るアプリです。

画面をタッチすると1枚の写真が内部に記録されます。撮影対象を少しずつ変化させながらコマを記録していって、最後に保存ボタンを押すと動画がフォトライブラリに保存されます。

直前のコマが薄く表示されるので、撮影対象の位置合わせが簡単にできるのが特徴です。


開発の経緯と今後


分身カメラとか97daysとかで複数のUIImageから動画を生成するライブラリを開発済みだったので、そのライブラリを使ってなんか面白いことできないかな〜と考えていたらコマ撮りを思いついたので作りました。

今後としてはこのアプリと同様に「おれライブラリがあれば楽に作れる動画生成系」を模索することになりそうです。


開発期間


2017/04/29〜5/2の4日間。

5/1からはフィリピンのセブ島にバカンスに出かけたので、優雅にビーチで開発してました。

AppStoreのスクリーンショットはホテルの部屋に置いてあったオレンジとマンゴーを撮影したものです。


技術的な解説


カメラからの映像と直前に記録した画像を半透明合成して常時表示しておいて、画面がタッチされたらカメラからの映像をUIImageにして複数のUIImageから動画を生成するライブラリに渡す作りです。

おれライブラリを使ったので開発自体は軽めでしたが、途中、1024x1024のアイコンから各サイズの画像を含むxcassetを生成してcontents.jsonを生成するツールを書いたり、共通ライブラリを各アプリからcloneしてDropBoxに置いてたら.gitのせいで容量オーバーしたのでgitをやめるなど本質じゃないところに時間を割いたりしています。


以上、「コマ撮りくん」の紹介でした。

【アプリ紹介】レポーター俺

今日は 2016/10/31 に公開した「レポーター俺」の紹介です。

こんなアプリ


自撮り動画を撮るアプリです。

が、ただ撮影するわけじゃなく、「ユーザーはリポーターでありスタジオと中継がつながっている」という体で、アナウンサーの質問に答えてリポート動画を作るというアプリです。撮影中にボタンを押すと拍手や笑い声など効果音が鳴らせます。


開発の経緯と今後


各種スマホの標準カメラで普通に自撮り動画を撮影することはできますが、撮影中はカメラアプリ側としては特に何も起こらないわけです。あくまで撮影される側が全部考えろと。

ということは、アプリ側で少しお膳立てするスタイルの自撮りがあってもいいんじゃないか?ということで作りました。



開発期間


2016/10/25〜10/31の1週間ほど。


技術的な解説


画面にイラストやテキストや自撮り映像を表示しておいて、それを画面録画することで動画化しています。

昔の版ではReplayKitを使っていましたが、動作が不安定で困っていたんですね。そんなときにいつしかiOS側で画面録画ができるようになったのでReplayKitの使用は中止してiOSの機能を使って録画してもらうスタイルに変えました。

以上、「レポーター俺」の紹介でした。

...と思ったら昔「旅してQ!」という名前だったころに記事を書いていました。一応リンクしておきます。

【アプリ紹介】旅してQ!: スタジオと中継がつながっています


2019/12/31

2019活動まとめ

1. 馬場タクシー3D


9.9万ダウンロード(2019/12/31)


10 万ダウンロード達成...と思いきや、ちゃんと数えたらちょっと足りてませんでした😳😳。

バージョン5.5リリース(2019/8/29)




いろいろシンプルにしたり、改善したりしました。

iOS 本体で画面録画できるようになったので、不安定だった ReplayKit API の呼び出しを消せたのが良かったポイント。

リソースワークフローの改善


今回、外から見える機能の更新だけでなく、内部で使っているモデルやテクスチャ、各種マスタデータの生成部分もがっつり改善していい感じにしておきました。

勢いで作ってると、なんか似たような仕組みが複数できちゃったり、実はもう使ってないルーチンが残ってたりするんですよね。
しかも中間データの仕様とかなんでこの処理をしてるのかとかドキュメントになってないので、数年するとよく分からなくなっていたりして、ふとビルドしようと思うといつの間にか周辺ライブラリが更新されていて動かないみたいな。

というわけで、そのうち運転できるエリアの拡大もしたいのにこりゃいかん、ちゃんとしとこうということで Docker を導入して Blender や mathutils のバージョンを固定化したり、最低限の設計 doc を書いたりしました。

ビルデータやガードレールデータの生成に 25 分くらいかかっていたのを 4 分に高速化したりもしたので、今後の開発も楽になることでしょう。






2. ほかのアプリ


アップデート系


Apple から「おめーのアプリしばらく更新してないな。このままだと消すぞ」(意訳)と来ちゃったので「しょうがねーなー」と最新 SDK で
ビルドしてスクショとかも最新にして提出しました。

- iPhoneX, 11 など safe area があるデバイスに対応
- deprecated な API を呼んでたところの修正
- iOS 画面録画機能が使えるようになったので ReplayKit の廃止
- スクショ, PV の更新

なんだかんだで 13 アプリ x (lite版, pro版) で 26 バイナリ公開してるので、特に機能追加しなくても結構面倒です。

効率化系


しかもアプリごとにアイコンファイルや Info.plist の名前や置き場所がバラバラだったりしたので無駄に面倒だったわけですが、いい機会なのでアプリのディレクトリ構成を標準化することにしました。

アイコンなら APP_ROOT/app_icon/icon.svg から全サイズを生成するようにしたり、スクショは APP_ROOT/app_screenshot/screenshot.json から生成するようにしたりとかそんな感じです。

アプリのメタデータ(概要の文章、サブタイトル、プロモーションテキスト、ヘルプURL、及びその日本語/英語版)の管理も地味に面倒なのでスプレッドシートで管理するようにしました。

アプリごとに作るヘルプページもほぼテンプレなので、これを機に自動生成&自動アップロードするようにしました。アプリが数個程度ならコピペの方がトータルコストで安いわけですがさすがにこの数になると自動生成の仕組みを作ったほうが楽です。

さらに、スクショの生成には svg ファイルから各種デバイス向け用(iPhone 6.5 インチ, 5.5 インチ, iPad 第2世代, iPad 第3世代)の画像を自動で切り出すスクリプトを作って使っていたんですが、それでも svg ファイルを修正するのが面倒なので、さらに一歩進めて画像とキャッチコピーjsonから Imagemagick で自動でスクショ画像を生成してくれるスクリプトを書いて使うようにしました。




新規系


作りたいアプリのネタは2, 3個あるんですが今年は新規アプリは出せず。


広報系


作るだけじゃなくてちゃんと広報してかないといかんなということで、馬場タクの方と合わせてぼちぼち始めています

広報と言えばブログと個人portfolioページもSSL対応しました。独自ドメイン+SSLってなんかめんどくさそう〜と放置してましたがやっと対応です。




3. システムトレード


とあるロジックで実稼働させてかなりいい感じだったんですが、いろいろあって今は止めています。

こっちの研究開発もちゃんと時間を取ってやっていきたいところです。。

4. 絵本作家デビュー


pdf を入稿すれば安く印刷してくれる会社があるんで、1冊作ってみました。

絵は iPad + Adobe Photoshop Sketch で描いたものを Mac の Inkscape に貼り付けて、それをスクリプトで png にエクスポートしたあとに Imagemagick で pdf に変換して入稿、という流れです。

自称で良ければ何にでもなれる、いい時代になったもんです(笑)

5. バッティングセンター


これまでもよく行ってましたが、なぜか今年からホームランが比較的ポンポン出るようになりました。

コツは、狙って的に当てるのは無理、とにかくパワーで振り切る感じですw飛ばしてれば一定確率で当たる感じで。


6. 読んで良かった本


おすすめ順です。

身銭を切れ 「リスクを生きる」人だけが知っている人生の本質

反脆弱性[上]――不確実な世界を生き延びる唯一の考え方

反脆弱性[下]――不確実な世界を生き延びる唯一の考え方


FACTFULNESS(ファクトフルネス) 10の思い込みを乗り越え、データを基に世界を正しく見る習慣


ファスト&スロー(上) あなたの意思はどのように決まるか? (ハヤカワ・ノンフィクション文庫)


数学を使えばうまくいく ―アート、デザインから投資まで 数学でわかる100のこと―


サードドア: 精神的資産のふやし方


父が娘に語る 美しく、深く、壮大で、とんでもなくわかりやすい経済の話。

...

INSANE MODE

ピーター・ティール 世界を手にした「反逆の起業家」の野望





7. 買ってよかったもの


ダイニチ ハイブリッド式(温風気化+気化)加湿器 DAINICHI HD-LX1019-H
十分な加湿力と静音、これは満足です。
水のトレイにプラスチックの底敷きカバーがついてて、1 シーズン終わったらそのカバーを交換するだけなのが良いです。

ソニー SONY ワイヤレスポータブルスピーカー SRS-XB41
音楽に合わせて電飾がピカピカ光ったりするのが楽しい。

Anker PowerWave 10 Pad (改善版), ワイヤレス充電器


8. アルゴリズムコンテスト


ほとんど出てないです。たまに途中から ABC に出たりするなど。

自分にとってこういうコンテストは何か作りたいものをなるべく一瞬で作るための筋トレのようなものなので、これ自体が目的にはなりえないわけですが、まぁぼちぼち続けていくとは思います。

9. まとめ


もう何年もそうですが、1つ意識してるのは、「自分のプロダクトをちゃんと出していこう」ということですね。油断するとインプットばかりしてたり、会社での仕事で手一杯になりかねないので自分的には相当注意しています。

というわけで 2020 もアップサイドを狙いつつ楽しく活動していきたいと思っております。


2019/12/31 都内某所より。


2018/12/31

2018活動まとめ

1. 馬場タクシー3D


個人制作のタクシーゲーム です。

9.2 万ダウンロード (12/31)


次のマイルストーンは 10 万ダウンロード。
去年から 7000 ダウンロードくらい。あんまし伸びないのぅ〜。
Twitter 広告は単価を超安くして出すというやる気の無さで、広告露出はほとんどなし。
基本有料アプリですがたまに不定期で気まぐれ無料キャンペーンをやっています。



Android版移植PJ → Unity対応PJに変更


C++で書いた大量のコード + iOSにべったりな大量のコード + テクスチャやモデルを生成するための python で書かれたオフラインワークフローシステムがある状態から、

(1) JNI を使って C++ 資産を活かしつつ Android ならではの部分を書いて Android 対応とするプラン。面倒だがまぁ無理ではないかも。

(2) 思い切って全部 C# で書き直して Unity 対応するプラン。ゲームエンジンに乗っかることになるのでいろいろ根本的に見直す必要がある。豊富な Unity Asset を使って見栄えが良くできそう。

という 2 つの方向性がありました。

より現実的と思われる (1) の方針で途中まで進めたものの、想像以上に Android の細かいいろいろがめんどくさくて闇 & Unity の表現力が魅力的に見えてきたので、どうせやるなら (2) の方向でゲームデザインとかも見直して、改めて自分が欲しいものを作るほうがいいかな〜ということで方針転換。

引き続き、馬場タクの 100% オーナーということで好き勝手にやってきます。




2. システムトレード


特に公開するものはないですが、ガッツリ取り組んでいます。
トレード戦略を実装してバックテストして良さそうなら実戦投入、の繰り返し。
まずは BitMEX の BTCFX から始めて、ccxt 移行後は他の取引所の現物botも動かしたりしています。
やっすい VPS で docker を動かしてその中で安定運用放置中。ちゃんと API が公開されてる取引所は良いですね。


最近 XGBoost をかじってみたので機械学習と絡めてなんかやるのもいいなぁと思案中。


3. 暗号通貨


コインチェックGoxやしょうもないBCHハードフォークがあってなかなかアレでしたが、実世界における利活用という面では着々と進んでいるし、各国の財政規律がアレなので fiat 全般もテールリスクが増えててアレ、そのうち規制が整って CM 再開したり、ニュースの為替株価コーナーで暗号資産の価格を言い出したりするだろうから、また界隈も盛り上がるでしょう。


CC事件はマルチシグについてちゃんと調べるきっかけにもなりました。




ふるさと納税についてガッツリ調べたのでこちらもどうぞ。




4. CM デビュー


カスタムキャストで作ったマイキャラがCMデビューしました。






左下のここ↓(笑)



5. 読んで良かった本


このあたりですね〜。リスクについて考えが深まりました。大きな変化があったときに自動的に利益になるような立ち位置にいたいもんです。

反脆弱性[上]――不確実な世界を生き延びる唯一の考え方



反脆弱性[下]――不確実な世界を生き延びる唯一の考え方




番外編


. o O (仕事では相変わらず erlang とか書いています)

2016 のクリスマスに書いた記事のおかげで気づきにくいバグが世に出る前に修正できました。






というわけで 2019 もアップサイドを狙いつつ楽しく活動していきたいと思っております。

2018/12/31 都内某所より。