top of page

検索結果

Search this site

13 results found with an empty search

  • 魚へん漢字クイズ|全177問の読み方に挑戦 | こけラボ

    読めそうで読めない魚へんの漢字、全177問に挑戦!4択・制限時間10秒で楽しめる漢字クイズアプリです。10問・30問・50問のコースと、動画広告で利用できるヒントを搭載。Android・iPhoneに対応しています。 読める?魚へん漢字ひと文字クイズ(全177問) 読めそうで読めない、魚へんの漢字に挑戦! 魚へんの漢字の読みを、4つの選択肢から答えるクイズアプリです。1問の制限時間は10秒。知っている漢字も、初めて見る漢字も、テンポよく楽しめます。 難易度に応じて10問・30問・50問のコースを選択。分からない問題では、動画広告を見てヒントを利用できます。 すきま時間の腕試しに。あなたは何問読めるでしょうか? Google Play App Store ご意見などお気軽にお寄せください 名* 姓 メールアドレス* メッセージを作成* 送信

  • 木へん漢字クイズ|全139問の読み方に挑戦 | こけラボ

    読めそうで読めない木へんの漢字、全139問に挑戦!4択・制限時間10秒で楽しめる漢字クイズアプリです。10問・30問・50問のコースと、動画広告で利用できるヒントを搭載。Android・iPhoneに対応しています。 読める?木へん漢字ひと文字クイズ(全139問) 読めそうで読めない、木へんの漢字に挑戦! 木へんの漢字の読みを、4つの選択肢から答えるクイズアプリです。1問の制限時間は10秒。知っている漢字も、初めて見る漢字も、テンポよく楽しめます。 難易度に応じて10問・30問・50問のコースを選択。分からない問題では、動画広告を見てヒントを利用できます。 すきま時間の腕試しに。あなたは何問読めるでしょうか? Google Play App Store ご意見などお気軽にお寄せください 名* 姓 メールアドレス* メッセージを作成* 送信

  • 【Unity初心者向け】Androidアプリのビルド方法と実機テスト|こけラボ

    Unityで作ったアプリをAndroid端末で動かしてみよう!Player Settingsの設定、アイコン、APIレベル、Keystoreの作成、APK・AABの違いから、USBデバッグを使った実機テストまで、初心者向けに画像付きで解説します。 Android端末向け「ビルド」に挑戦しよう! 2026年11月02日 こけばし陣屋 さてさて。 前回の記事で「ビルド」とはなんぞや?的なことをざっくり学んだと思います。 では、早速 Android 端末向けの「ビルド」に挑戦してみましょう! 注:この記事は Windows版 Unity 2022.3.62f3 を使用しています。 Android端末を準備しよう UnityのPlayer Settingsを設定しよう アプリアイコンを設定しよう 画面の向きとAPIレベルを設定しよう Keystoreを作成しよう Build Settingsを確認しよう Android端末で実機テストしよう 目次 Android端末を準備しよう こけばし陣屋 ■材料 ・ゲームエンジン「Unity 」 Unity で開発したアプリ・プログラム 「Android Build Support 」モジュール(注:Unity Hub 経由) SDK NDK OpenJDK Android 端末(実機) 当たり前のことですが、Android端末の実機が手元にないとお話しになりません(一応、エミュレーターという代替手段もありますが……)。しかし、「Android端末を購入する 」とひとくちに言っても、どのバージョンがあればいいのか、それも開発をはじめたばかりであれば余計にわかりませんよね。もちろん、かく言うあたしもそのうちの一人でした。 そんなときに役に立つのがこのサイトです。 ■Statcounter Global Stats https://gs.statcounter.com/ 「Statcounter Global Stats 」とは、無料のオンライン訪問者統計ツール「Statcounter 」により提供されている「世の中の今 」を垣間見ることのできる統計データです。 多くのユーザーに利用されているブラウザはなにか? みんなはどの検索エンジンを使っているの? PC・モバイル合わせて利用率の高いOSは? みたいな、インターネット利用におけるユーザー動向の統計データの集まりです。 (注:Statcounter のOSシェア は、基本的に計測対象サイトへのアクセス状況を基にした統計で、イコール世界の端末保有台数そのもの、ではありません) この膨大なデータの中に、「View Operating System Version Market Share 」があり、そのさらに細かい項目に「Android Version Market Share 」があります。つまり、「Android のバージョンの市場利用率」をここで見ることができるのです。 あたしはここを見て、最も低いバージョンを利用するターゲット として、「Android 10.0 ユーザー 」を想定することにしました。 意外かもしれませんが、「Statcounter Global Stats 」で見ると、Android 端末を使用しているユーザーは70パーセント で、iPhone 端末を使用しているユーザーは30パーセント でした(注:2026年10月執筆時のデータ。Mobile Operating System Market Share・Worldwide・Sept 2025 - Sept 2026)。アジアに限定したらどうかというと、Android 端末を使用しているユーザーは80パーセント で、iPhone 端末を使用しているユーザーは20パーセント と、むしろ差が広がります(注:2026年10月執筆時のデータ。Mobile Operating System Market Share・Asia・Sept 2025 - Sept 2026)。しかし、日本だけは特殊で、Android ユーザー 40パーセント 、iPhone ユーザー60パーセン トと逆転していました(注:2026年10月執筆時のデータ。Mobile Operating System Market Share・Japan・Sept 2025 - Sept 2026)。 なので、世界市場を見据えるならば、Android 端末向けへのリリースを最初に考えるべき!だとあたしは考えたのです。 おすすめの記事 Android端末向け『ビルド』に挑戦しよう! 2026年11月02日 そもさん。「ビルド」とはなんぞや? 2026年10月22日 「Visual Scripting(ビジュアルスクリプティング)」による開発の「実践のコツ」 2026年10月20日 あたし流「開発の組み立て方」について 2026年10月19日 あたしの躓きと、気づき。 2026年10月16日 なんで広告が表示されないのぉおおお! 2026年10月15日 AIがコードを書く時代に、あたしが Visual Scriptingを楽しむ理由 2026年10月14日 よし。 では「Statcounter Global Stats」が提供する「Androidのバージョンの市場利用率」を細かく見てみよう。 (注:2026年10月執筆時のデータ。Mobile & Tablet Android Version Market Share・Worldwide・Sept 2025 - Sept 2026) グラフの項目として、さらに低い「9.0 Pie」がいるけれど全体の2パーセント に満たない。「10.0」もわずか3パーセント強 だ。どこで足切りするのかは開発者それぞれの考えにもよるけれど、「13.0」以降のユーザー総数が77パーセント だと考えると、そのあたりがひとつの指標になるのかもしれないね。 F.R.I.D.A.Y. こけばし陣屋 ですです。 ただ、これからアプリを作ろうとしている人が、テスト用の Android 端末 を手に入れようと考えたときに、オークションにせよなんにせよ、「入手しやすさ 」と「それにかかるコスト 」っていうのは切り離せないと思うんですよね……。 あと、前述の「Android vs iOS」の比率 も無視できませんし、あたしのアプリは「日本人が感じたことを、世界の人に伝えて、面白がってもらう 」という裏テーマがあったりしますから、なるべく多くのユーザーに使ってもらいたいと思っていました。 なので、最低限のレベルとして、「Android 10.0 」をテスト用端末にしようと決めました。 たしかあたしの場合は、オークションサイトで2~3000円くらいで購入できたかと思います。Wi-Fi環境でしか使いませんので SIM は不要です。バッテリーも、Type-Cを差している間だけ動けばよし、くらいの感覚ですね。さすがにディスプレイが割れていたり、傷だらけでは使えないけれど、そうじゃなければ、くらいの品質で十分です。 少し話が逸れてしまいましたけれど、ともかく本体を準備したら、早速「ビルドの準備」です! たしかに。 いきなり「ビルド」は急ぎすぎだね。 まずは準備を、というわけだ。 F.R.I.D.A.Y. UnityのPlayer Settingsを設定しよう こけばし陣屋 そうなんですよ。 いきなり「File > Build And Run 」もしくは「Build Settings 」から「ビルド 」しようとしちゃいがちなんですけれど、「Android Build Support」モジュール を追加した直後のデフォルト設定のなかには、のちのアプリリリースを見据えるならばこそ、先に確認しておきたい項目がいくつかあるのです。 まず準備として、「Edit > Project Settings 」もしくは「Build Settings 」の画面を開いているのであれば、左下の「Player Settings 」を押して移動しましょう。 すると、こんな画面が表示されるはずです。 まず最初に、画面中央あたりのタブで、Android が選択されていることをチェックしましょうね。OSによって、設定する項目ががらりと変わりますので。 そうしたら、上から順に、最低限ここは設定してね!というポイントをピックアップしていきますよー! よし、順番に、だね。 僕も必要に応じて補足しよう。 F.R.I.D.A.Y. こけばし陣屋 助かる! まずは前回の「ビルド」とはなんぞや、の回でも書きましたが、一番上の「会社名(Company Name)」「プロダクト名(Product Name)」 そして「バージョン(Version)」 です。 「会社名(Company Name)」 は、個人開発者の場合はストレートに名前でいいと思います。「プロダクト名(Product Name)」 にはゲーム・アプリのタイトルを。ここで設定した「会社名(Company Name)」 と「プロダクト名(Product Name)」 を基に、自動的に「パッケージ名(アプリケーションID)」 の初期値が生成されます。 ちなみに、どんな「パッケージ名(アプリケーションID)」 になるかどうかは、「Player Settings 」の中の「Other Settings > Identification > Package Name 」で確認することができます。「Package Name 」は日本語が使用できないので注意しましょう。また、初回公開前に「Package Name 」は確定しておく必要があります。公開後に変更すると、別のアプリとして扱われちゃいますからねー。 「バージョン(Version) 」は任意につけることができます。最初はデフォルトの「1.0」でもOKですけれど、今後の管理を見据えたルールを決めておきましょうね。 できれば「バージョン(Version) 」は、3つ区切りで「1.2.3 」のような形式にするといいね。 この例で言うと、最初の「1」がメジャーバージョン 、次の「2」がマイナーバージョン 、最後の「3」がパッチバージョン 、とすると整理がしやすいだろう。 F.R.I.D.A.Y. アプリアイコンを設定しよう こけばし陣屋 ありがと。 では、次に設定が必要そうな項目で言うと、「Default Icon 」と「Android 」タブの中の「Icon 」だね。「Icon 」の項目をすべて開くとこんな感じです。 じゃーん! ……ええと、だな。 もしかすると、すべての開発者のやる気を奪う密命でも受けているのかね、陣屋先生? F.R.I.D.A.Y. こけばし陣屋 違います違います! そんなつもり、ナイデス! こーんなにいっぱいあるように見えて実は、作るのは2パターン・3つの画像だけでいい よ!って伝えたかっただけなんですぅううう……。 これ、 Adaptive (API 26) icons (0/6) Round (API25) icons (0/6) Legacy icons (0/6) という3つの項目から成り立っておりまして。 ざっくりいうと、「背景(Background) 」と「前面(Foreground) 」にアイコン画像を分ける必要のある「Adaptive icons 」と、分ける必要のない「Round icons 」「Legacy icons 」となっていますので、それぞれひとつひとつ地道に設定していきましょう。 ■アイコン画像のサイズ(こけばしのオススメ) 「Adaptive icons」設定用(背景・前面の2枚) 横 432 px(ピクセル)x 縦 432 px(ピクセル)の PNG 形式。前面画像は透過対応、背景画像は不透明。 「Round icons」「Legacy icons」設定用(一枚) 横 512 px(ピクセル)x 縦 512 px(ピクセル)の PNG 形式。 ポイントは2つ! 設定するアイコン画像は、必ずプロジェクトの「Assets」フォルダの配下に置く こと! 設定するアイコン画像、特に「背景(Background)」画像は、不透明度100%(アルファ値255/8bitの場合)が推奨 です。 最後に、「Player Settings 」の最初の方にある「Default Icon 」も忘れずに! ここも、「Round icons 」「Legacy icons 」と同じ一枚絵の画像で大丈夫です。「ビルド 」前に必ず設定後のプレビューをチェックして、「ビルド 」した結果も確認しましょうねー。 ふむふむ。 あとまだテスト段階ならば、この項目はデフォルトの状態、つまり未設定のままでも「ビルド」はできる、と付け加えておこう。 F.R.I.D.A.Y. 画面の向きとAPIレベルを設定しよう こけばし陣屋 あ! たしかに! 実機テストの段階なら、まだアイコンのデザインまで決まってないかもね。 では、次に「Resolution and Presentation 」の項目を見てみましょう。 ここは主に「解像度と画面の向き 」に関する項目です。ほとんどの場合、デフォルト値のままでも問題ないと思いますが、「Orientation > Default Orientation(画面の向き > デフォルトの画面の向き) 」は設定が必要になると思います。 あたしの場合には、スマホを縦に持って使うことを想定していましたので、デフォルト値の「Auto Rotation(自動で回転)」から「Portrait(縦向き) 」に設定しています。これ以外にも「Portrait Upside Down(縦向きで上下逆) 」「Landscape Right(横向きでスマホの上部が右側) 」「Landscape Left(横向きでスマホの上部が左側) 」などがあります。開発したアプリに応じて設定しましょうね。 設定が必要な項目は、最初はそのくらいだろうね。 開発に慣れて、いろんな機能を使うようになってから、あとの項目について調べてみるといいだろう。 F.R.I.D.A.Y. こけばし陣屋 ですねー。 で、次は……「Splash Image 」。 この項目は飛ばしまーす! 飛ばしまーす、って、おい! いいのか、それで? F.R.I.D.A.Y. こけばし陣屋 だってぇ……。 ここってアプリ起動時に表示される、「Unity」ロゴの設定 でしょ? この記事を読んでいる人は、たぶん始めた頃のあたしよりくわしくないから、パスしてOK! うーむ……。 「Unity」ロゴだけでなく、起動時のスプラッシュ画面全体に関する設定 なんだが、まあ、今はよしとするか。 ちなみにだが、ここでの設定内容次第では、「Unity」ロゴを通常のダークモード(黒地に白のロゴ) からライトモード(白地に黒のロゴ) に変更したり、「Unity」ロゴの色合いを変更 したり、独自のロゴを追加 したりすることもできる。ただし、Unity PersonalではUnityロゴを非表示にすることはできない 。経験値を積んでからトライしてみるといいだろう。 F.R.I.D.A.Y. こけばし陣屋 はいはい(←聞き流している)。 じゃあお次は、「Other Settings 」だね。 どーん! ……またか。 学習、という単語の意味を理解しているかね? F.R.I.D.A.Y. こけばし陣屋 まあまあ、落ち着いて……。 ちゃんと必要最低限版もございます! じゃーん! ほかの項目についてはおいおい勉強していくとして、絶対に設定しておかないとダメ!なのが、この図で抜き出した次の4項目です。 Minimum API Level(最低APIレベル) アプリをインストール・実行できる Android の最低APIレベル を指定します。開発したアプリに「新しいAPIを使わないと動作しない」機能がないのであれば、できるだけ低いAPIレベルを選ぶこともできます。ただし、対応させる Android のバージョンについては、実機での動作確認が必要ですよね。あたしの場合は Android 10.0 のテスト端末を用意していたので、「Android 10.0 (API level 29) 」を最低ラインにすることにしました。 2026年10月現在、手動で選択可能な最低APIレベルは「22」の「Android 5.1 'Lollipop'」です Target API Level(ターゲットAPIレベル) あたしのように「Automatic (highest installed) 」を選択するのも手ですが、これ選んでおけば「さらに高いAPIレベルがリリースされたときにも対応できる」という意味ではありません。あくまで「その時点の最高レベル 」であり、Google Play の要件を満たすわけではありません。必ず Google の最新情報をチェックして設定しましょう。 2026年10月現在、手動で選択可能な最高APIレベルは「37」です。 また、2026年8月31日以降、通常の Android スマートフォン向けの新規アプリ・更新ではAPI36以上が必要 となっています。要チェック! Scripting Backend(スクリプティングバックエンド) ここで「IL2CPP 」を選ぶこと。次の項目「Target Architectures(ターゲットアーキテクチャ) > ARM64 」を選択するために必要となります。 Target Architectures(ターゲットアーキテクチャ) > ARM64 Google Play の要求事項のひとつです。デフォルトではグレーアウト(変更できない状態)になっているかもしれませんが、「Scripting Backend(スクリプティングバックエンド) 」で「IL2CPP 」を選ぶと選択できるようになります。「ARM64」にチェックを入れる こと。 ここだけはしっかり押さえておきましょう。 そして、この画面内にちょうど、前述の「Package Name(パッケージ名)」と「Version(バージョン)」 、そして新顔の「Bundle Version Code(バンドルバージョンコード)」 が写っていますね。 この「Bundle Version Code(バンドルバージョンコード)」 は、「Google Play Console の中でアプリのバージョンを管理するための裏コード 」だと思うと理解しやすいかもです。 つまり、一般ユーザーにはこの「1.0.0」として見せたいんだけれど、バグへの対応や細かいデザイン修正で、何度か Google Play Console にデータをアップロードして審査をしてもらう必要があったときに、そこでバージョンを変えたくないですよね。それに、Google Play 側も、毎回同じバージョンでデータを送られると混乱しちゃいます。 なので。 この「Bundle Version Code(バンドルバージョンコード) 」は、Google Play Console にデータをアップロードするたびに変更しなければなりません 。少なくとも、同じ「Bundle Version Code(バンドルバージョンコード)」は受け付けてもらえないです。ですので、管理のことを考えたら、アップロードするときに必ず1つ増やす 、以前より大きい整数かつ未使用の値にする 、というルールにしておけば、わかりやすいし忘れないと思いますよー。 ふむ。 そういえば、実機テストのときに「ビルド」の時間を短縮できる裏ワザがあった気がするけれど、それについては説明するのかい? F.R.I.D.A.Y. Keystoreを作成しよう こけばし陣屋 それはまたTips的に紹介しましょうよ。 今回は、実機テストする!→Google Play Consoleに提出する! がメインだから。 では、最後の項目、「Publishing Settings 」いってみよー! ここで超重要なのは、最初の「Project Keystore 」ですね。 「Keystore Manager... 」ボタンを押すと次のような画面が現れます。 左上の「Keystore... 」から「Create New 」を選択し、保存フォルダを指定して必要事項を入力して鍵を作成しましょう。 Unityにおける「Keystore(キーストア) 」は、Android アプリの電子署名(秘密鍵と公開鍵証明書)を格納したファイルのこと です。 これにより「このアプリは正式な開発者によって作られた本物です」と証明することができますし、第三者の改ざんを防ぐことができます。そのため、一度 Google Play Store に提出したアプリは、原則として、同じ署名用の鍵を使い続ける必要があります。 もしも失くしてしまったら? その場合、既存アプリの更新ができなくなるかもしれません!(迫真) ですから、安全な管理場所 、バックアップの徹底 、そしてパスワードの紛失防止 、この3つを絶対に! いやいや!その説明は正しくないよ! 現在の Google Play App Signing では、アップロード鍵を紛失してもリセットを申請することができる 。既存アプリの更新を継続できる場合があるんだよ! もちろん、鍵のバックアップが重要なのは変わらないけどね。 F.R.I.D.A.Y. こけばし陣屋 へー!シラナカッタ……。 でもさー? そもそも、ここで「Keystore(キーストア) 」を設定しないと、「ビルド 」すらできないじゃない? やったー!完・成・!って「ビルド」ぽちーしてお花を摘みに行って帰って来たら、と、止まってるー!(怒)って超がっかりですよ(←常習犯)。 その説明も正確ではないな。 「Unity」は「Custom Keystore(カスタムキーストア) 」 が未設定でも、デバッグ用の鍵を使って APK をビルドできる 。 つまり「実機テストには必須ではないが、Google Play提出用には適切な署名設定が必要 」という説明が正しい。さっきの「Publishing Settings 」の図を見ても、「デバッグ鍵で署名するよ 」という旨が表示されているじゃないか。 F.R.I.D.A.Y. Build Settingsを確認しよう こけばし陣屋 へー!またもやシラナカッタ……。 で。 ここまで終わったら、いざ「ビルド 」!となるわけですねー。 最初に戻りまして、最後の肝心な「Build Settings 」ですが。 ここでのポイントは、大きく2つ! Build App Bundle(Google Play) 実機テスト も終われば、いよいよ、クローズド/オープンテスト 、さらに Google Play Console へのデータ提出 となるわけですけれど、そのときに必要となるのが .AAB ファイル です。特にストア提出用の場合には、忘れずにチェックしましょう。 Development Build 逆に、まだテストの段階で「ビルド」したい場合にはこの項目にチェックをしましょう(注:推奨 。通常の「ビルド」でも実機テストはできます)。さらに必要に応じて「Autoconnect Profiler(プロファイラーの自動接続)」や「Script Debugging(スクリプトデバッグ)」などの追加オプションにチェックを入れましょう。 シンプルに言うと、実機テスト用のときは「Development Build」だけにチェック 、ストア提出用のときは「Build App Bundle(Google Play)」だけにチェック 、と習慣化させておくとよい、と個人的には思います。 ちなみに、ビルド対象となるシーンが「Scenes In Build」に登録されているか も忘れずに確認しましょう!ここが空だったり、違うシーンが登録されていたりすると、想定したアプリになりません。 機能の違いや、「Development Build」の有用性はほかにもいろいろあるんだが……。 ここでは一旦それだけ、ということにしておこう。 F.R.I.D.A.Y. こけばし陣屋 だって……あたしもよく知りませんしー。 あ! そうだった! 実機テストのやり方も書いておいた方がいいよね? 実機テストをするときには、Android 端末側にも設定が必要になる んです! まず一般的な有効化手順を説明します。以下の画面はXperia SO-02Lの例 です。 最初に「設定 」から「デバイス情報 」に進み、「ビルド番号 」という項目を探してください。見つかったら、それを7回連続でタップ します。すると、画面ロックのPINやパスワードを尋ねられるので入力します。合っていれば「デベロッパーになりました 」というメッセージが表示されます。 (注:端末によって「ビルド番号」の場所が異なる場合があります 。見つからなければ「設定内検索」を使ってみてください) ……なんのおまじない?と思うでしょう。 実は、これから有効化したい Android の「開発者向けオプション」は、初期状態では隠されているのです。一度有効化したら大丈夫です。 無事有効化できましたら「設定 」の下の方までスクロールして「システム 」を選択。 開いた「システム 」の中の「詳細設定 」を押すと展開するので、その中の「開発者向けオプション 」を選択 すると、一番上に「開発者向けオプション 」の ON/OFF のトグルがあるので、これを ON にします さらに「開発者向けオプション 」をスクロールさせていくと、「USBデバッグ 」という項目があるので、これも ON にしておきます。 これで Android 端末側の準備はOK! さっそくPCに接続している USB Type-C ケーブル (注:×充電専用/〇データ通信対応)を設定が済んだ Android 端末 に差し込むと……。 はい!こんな感じに、「Run Device 」の中の項目として登場してくれます! 表示されなかったら、隣の「Refresh 」ボタンを押すか、接続をやり直したり、接続時に出てくるアナウンス(このPCを信頼するか、など)をチェックし直すなどしてみてくださいね。 これで「ビルドして実行(Build and Run) 」を押してエラーが出ずに正常に完了すれば、Android 端末実機へのインストールと起動までが進められて、アプリが動くようになります! 長かった……。 Android端末で実機テストしよう おつかれ、陣屋先生。 まだくわしく説明すべき個所はあるけれど、必要最低限の個所は伝えられたんじゃないかな。 F.R.I.D.A.Y. こけばし陣屋 と思います!……たぶん。 もし、ここがわかんないよー!などあれば、コメントに残してくれるとありがたいです。リクエストが多ければ、追加で記事を書くかも? とりあえず。 これにて Android 端末での実機テストもうまくいき、いよいよGoogle Play Console へのデータ出稿! となりました。 ぱちぱちぱち! なので……次回はその「データ出稿」に必要なモノ 、についてお届けする予定です。 今回は、とてつもなく長い長い記事となってしまいました……。 ですが、途中で区切ってしまうとわからなくなってしまう人もいると思い、分割しないでお届けすることにしました。 次回は予告のとおり、「Google Play Console へのデータ出稿 」についてがテーマとなります。お楽しみに! X (Twitter) Facebook WhatsApp LinkedIn Pinterest リンクをコピー comments debug Comments Write a comment Write a comment Share Your Thoughts Be the first to write a comment.

  • 国旗クイズ|世界196か国を旅する Quiz World Flag Tour | こけラボ

    世界196か国の国旗を4択で学ぶ「Quiz World Flag Tour」。国旗の色・デザイン・シンボルの解説や、訪れた国を記録するスタンプ帳を楽しめます。日本語・英語対応、広告なし・オフラインで遊べるAndroidアプリです。 Quiz World Flag Tour - 国旗クイズ 国旗をめぐる、世界の旅へ! 世界196か国の国旗から、国名を4択で答えるクイズアプリです。1問の制限時間は10秒。回答後には、国旗の色やデザイン、シンボルにまつわる解説を楽しめます。 3つのコースを制覇すると、条件を選んで出題を絞り込める「オプショナルツアー」が登場。色やモチーフなど、気になる国旗を集めて挑戦できます。 訪れた国はスタンプ帳に記録。世界一周を目指して、少しずつ旅を進めましょう。 日本語・英語に対応。広告なしで、オフラインでも遊べます。 Google Play iOS版:公開準備中 ご意見などお気軽にお寄せください 名* 姓 メールアドレス* メッセージを作成* 送信

  • Unityの「ビルド」とは何か|こけラボ

    Unityの「ビルド」とは何か、アプリを端末で動かすための準備を紹介。Unity Hubでのモジュール追加、プラットフォーム切り替え、シーンの登録、Player Settingsの基本を、Unity 2022.3の画面と失敗談を交えて解説します。 そもさん。「ビルド」とはなんぞや? 2026年10月22日 こけばし陣屋 さてさて。 アプリを端末上で動かしたり、ストアに提出したりするために必要なのが、「ビルド(Build) 」になります。 「ビルド 」とは、それまでゲームエンジン内でのみ動く状態だったプロジェクトを、さまざまなプラットフォーム(Android、iOS、Windowsなど)上で実行できるように変換する処理工程のことを指します。プラットフォームごとの仕組みや、画像の圧縮形式が違うため、それぞれのプラットフォームごとに別々の「ビルド 」をする必要があるんですね。 おっと! iOS 端末向けアプリについては、Unity で Xcode プロジェクトを生成して、その後 Xcode に移動してアプリに仕上げる必要があると追記しておきます。詳細はのちほど。 「ビルド 」するためには、まずはじめに、そのプラットフォームに応じたパッケージをインストールする必要があります。 注:この記事は Windows版 Unity 2022.3.62f3 を使用しています。 Unity 画面上部のメニュー、「File > Build Settings 」から、「ビルド設定画面(Build Settings) 」を開きます。必要な Build Support モジュールが入っていない場合(注:モジュールがインストールされていないプラットフォームは、非アクティブ状態になっています)は、「Unity Hub 」から追加します。 ここで一旦Unityエディターは閉じておいた方がいいね。 その前に、必ずセーブは忘れずに! F.R.I.D.A.Y. おすすめの記事 Android端末向け『ビルド』に挑戦しよう! 2026年11月02日 そもさん。「ビルド」とはなんぞや? 2026年10月22日 「Visual Scripting(ビジュアルスクリプティング)」による開発の「実践のコツ」 2026年10月20日 あたし流「開発の組み立て方」について 2026年10月19日 あたしの躓きと、気づき。 2026年10月16日 なんで広告が表示されないのぉおおお! 2026年10月15日 AIがコードを書く時代に、あたしが Visual Scriptingを楽しむ理由 2026年10月14日 こけばし陣屋 「Unity Hub 」を開いたら、画面左上の「インストール 」を選択します。 そして、モジュールを追加したいエディターの右側の「管理 > モジュールを管理 」を押すとこんな感じの画面が出てきます。 こけばしの場合はご覧のとおり、すでに「Android Build Support 」と「iOS Build Support 」がインストールされていますね。 エディターをインストールするときの設定によっても変わってきますけれど、もし Android 端末向け、iOS 端末向けにアプリをリリースしたい場合にはこのいずれか or 両方をインストールしてください。 なお、結構な容量がありますので、それなりの覚悟と準備をしておいてくださいね……! 7GB以上あるな。 それに、それなりの時間も要するから、余裕のあるときに済ませておきたいところだね。 F.R.I.D.A.Y. こけばし陣屋 そうだね。 モジュールのインストールが完了したら、モジュールを追加した Unity エディター を再起動します。 Unityが起動してから「ビルド設定画面 」を見ると……さっきまで非アクティブだったプラットフォームがアクティブになっているはずです。 さっそく「Android 」を選んでみると……「Build 」ボタンが「Switch Platform 」になりましたね! ここを押すと、プロジェクト内のすべてのスクリプトがコンパイルし直され、画像ファイルの圧縮形式が変換されたり……というフクザツな処理がはじまります。これもまた、結構な時間がかかるので覚悟しましょう。 この時間を利用してお花を摘みにいったり、コーヒーを淹れたりと、のんびり気長に待つのがコツです。 「お花を摘みに」というのは、トイレに行くという行為を表す隠語だね。 人間というのは実に不便な生き物だな。 F.R.I.D.A.Y. こけばし陣屋 わー! わー! わー! よ、余計なこと、言わなくていいの! ……こほん。 えー、Android 端末向け、iOS 端末向けの「ビルド 」時にすべき設定内容は次回以降の記事でお話しするとして、ここでは共通して設定する必要がある項目についてまとめておきましょう。 ■「ビルド設定画面(Build Settings)」の設定項目 ビルドに含まれるシーン(Scenes In Build) プロジェクト内の、どのシーンをビルドに含めるかを指定します。もし目的のシーンがリストにない場合は、目的のシーンを開いてから右下の「シーンを追加(Add Open Scenes) 」を押して追加しましょう。あくまで「現在開いているシーンを追加するボタン 」なので注意ですね。 また、複数のシーンがある場合には、順番が重要になります。この例では「Scenes/SampleScene 」の右側に「0」と書いてありますよね。起動時に最初に読み込まれるシーンが「0」になるように並べましょう。数字を指定してシーンを読み込む場合は、その番号との対応も確認してください。 アセットインポートオーバーライド(Asset Import Overrides) ここでは、テクスチャの最大サイズや圧縮方法を一時的に上書きできます。開発中のインポート時間などを短縮するために使える設定ですが、画像の品質にも影響するため、今回は「No Override 」のまま進めましょう。 ただし、高解像度のテクスチャを一度に大量に読み込むと、メモリ使用量が増え、読み込み時間や動作に影響する場合があります。特にメモリの少ない端末では注意しましょう。 ただ、画像を小さくすればいいとも限らない。 国旗クイズでは、国章の細部まで見せるために、高解像度の画像が必要だったね。 F.R.I.D.A.Y. こけばし陣屋 ですです。 あとは……って思ったけど、右側の項目は「プラットフォーム 」を変えるごとに、項目ごと変わっちゃうんだっけ。 となると、さっきの「アセットインポートオーバーライド 」から「プレイヤー設定(Player Settings) 」ボタンを押してもらって――。 あう……。 共通の設定内容って、上のところだけだよね、これ。 あ、でも、「会社名(Company Name) 」「プロダクト名(Product Name) 」「バージョン(Version) 」は、どのプラットフォーム向けでも必要な項目ですね。 一見すると、「うーん……まだ決めてないし、テキトーでいっかー」と思ってしまいがちですけれど、「会社名(Company Name) 」と「プロダクト名(Product Name) 」は、既定のアプリ識別子のもとになります。「バージョン 」はアプリのバージョン番号ですね。Androidの「Package Name 」、iOSの「Bundle Identifier 」は、それぞれのプラットフォーム設定でも必ず確認しましょう。 経験に基づく的確なアドバイス、ってヤツだね。 RPGのノリで「aaaaa」とかつけてしまうと絶対に後悔する。 あとは……当然「誤字」には注意だよね、陣屋先生? F.R.I.D.A.Y. こけばし陣屋 ナ……ナンノコトカナー? えーとえーと。 それ以外の項目については、「デフォルトのアイコン(Default Icon) 」を含め、プラットフォームごとにバリエーション、変更が必要になるので、次回以降に続くよ! とします。 ――発汗量および脈拍数の急激な増大を確認。 (……うまくごまかしたつもりだろうが) F.R.I.D.A.Y. こけばし陣屋 うぉういっ! 動揺しているのを数値化しないように! まさか……「JinyaKokebashi 」の2つ目の「k 」が漏れてて「JinyaKoebashi 」になってる、なんて夢にも思わないじゃん! あとから識別子を変更できないだなんて……。ま、当然と言えば当然なんですけれど。App Store Connect では初回ビルドのアップロード後、Google Play でも既存アプリのパッケージ名を変更して更新することはできませんから、慎重に設定しましょうね、って話で……ごにょごにょごにょ……。 はい! そんな失敗をしないよう、みなさんはしっかりと確認してくださいねー! 先生との約束ですよー! てなわけで。 次回から「Android 端末向け、iOS 端末向けのビルド設定 」と「ストア登録・アプリ公開ガイド 」についてお話ししていきたいと思います! X (Twitter) Facebook WhatsApp LinkedIn Pinterest リンクをコピー comments debug Comments Write a comment Write a comment Share Your Thoughts Be the first to write a comment.

  • Unity Visual Scripting入門|ノードと変数の基本 | こけラボ

    Unity Visual Scriptingのノードやポート、条件分岐、変数の基本を図と対話で紹介。ファジーファインダーやBlackboardの使い方、C#の情報を参考にする進め方など、個人開発で気づいた実践のヒントをまとめました。 「Visual Scripting(ビジュアルスクリプティング)」による開発の「実践のコツ」 2026年10月20日 こけばし陣屋 ではでは。 今回は、前回の記事で予告しましたとおり、Unityの「Visual Scripting(ビジュアルスクリプティング) 」による開発の「実践のコツ」について、あたしが思ったこと、気づいたことなどをお話ししていけたら、という回になります。 以前にも少し書きましたが、「Visual Scripting(ビジュアルスクリプティング) 」はテキストベースの C# と完全に同じものが書ける、というわけではありません。同じ動きを再現することはできると思いますが、その書き方には独特の癖のようなものがあり、また、ケースによっては少々まどろっこしい書き方をしなくてはならない場合もあったりするのです。 さて、これをお読みの方の中には、そもそも「Visual Scripting(ビジュアルスクリプティング) 」を触ったことがない、という人もいるでしょう。 少しそのあたりを、あたしなりに得た知識を総動員して、解説めいたものをしていきたいと思います。 よろしく、陣屋先生。 まずはなにから始める? F.R.I.D.A.Y. こけばし陣屋 そうだね。 まずは「ノード」について、かな。 「Visual Scripting(ビジュアルスクリプティング) 」における「ノード(Node) 」とは、処理のまとまりをブロック状に表現した基本要素のことです。コードを書かずに、これらのブロックにある「ポート(Port) 」から接続線(ワイヤー)を伸ばして「ノード」同士を繋げることでプログラムを作成していきます。 たとえば、 が、「ノード 」の一例。IF文の分岐を表しています。ただし、これ単体ではなにも起こりません。前述のとおり、あくまで「基本要素」でしかないので、これに次の「ノード 」をくっつけて、「条件を満たす場合の True(真) の処理 」と「条件を満たさない場合の False(偽) 」を書いていきます。ああ、そうですね、その前提としての「どういう条件なのか? 」を表す「ノード 」を紫の● のところに繋いであげないといけませんね。 おすすめの記事 Android端末向け『ビルド』に挑戦しよう! 2026年11月02日 そもさん。「ビルド」とはなんぞや? 2026年10月22日 「Visual Scripting(ビジュアルスクリプティング)」による開発の「実践のコツ」 2026年10月20日 あたし流「開発の組み立て方」について 2026年10月19日 あたしの躓きと、気づき。 2026年10月16日 なんで広告が表示されないのぉおおお! 2026年10月15日 AIがコードを書く時代に、あたしが Visual Scriptingを楽しむ理由 2026年10月14日 C# を理解している人にとっては問題なさそうだが……。 まったくの素人、プログラム開発を始める前の君よりくわしくない人には難しいかもしれないな。 F.R.I.D.A.Y. こけばし陣屋 まあね……それは認める。 あたしには、BASIC と ActionScript と JavaScript の知識がかろうじてあったけど、まったくの素人とは違うのかもしれないな。でも、大体の「ノード 」は英語の意味がわかれば、ある程度の予想がつくんじゃないかって思うんだ。この場合の「IF」なら「もし~なら」でしょ? 主な「ノード」を用途ごとに分けると、こんな感じ。 1.制御ノード(Control Nodes) 処理の流れ(条件分岐やループ)を管理します。 If :条件が「真(True)」か「偽(False)」かで処理を分岐します。 Switch :値に合わせて複数のルートに分岐します。 For Loop / While Loop :繰り返し処理を実行します。 Sequence :1つのタイミングで複数の処理を順番に実行します。 2.イベントノード(Event Nodes) ゲームやアプリのきっかけ(トリガー)を受け取るノードで、グラフの起点になります。 On Start :Script Machine/グラフの開始時に一度だけ実行されます。 On Update :有効な間、毎フレーム実行されます。 On Button Click :UIボタンをクリックして離した時に実行されます。 3.データ取得・設定ノード(Get / Set Nodes) オブジェクトの状態や変数を読み書きします。 Get系のノード :位置(Position)や変数、テキストなどの現在の値を取得します。 Set系のノード :位置や変数、テキストなどの値を書き換えて設定します。 4.処理・関数ノード(Function / Math Nodes) 計算やアクションを実行します。 Add (加算)などの算術演算。 Translate や Rotate などのオブジェクト操作。 Debug.Log :コンソールにメッセージを出力します。 ほら、英語だと思えば、なんとなくなにをする「ノード 」なのか、意味がわかる気がしない? 挙げていくとキリがないけれど、頻繁に使うものは、Graph を編集する画面で右クリックすると出てくる「ファジーファインダー(Fuzzy Finder) 」の中にあることが多いね。検索することもできるから、C# で書かれたものを「Visual Scripting(ビジュアルスクリプティング) 」で書こうとしたときに便利だよ! ……ん? まるで「C#で書かれたものを参考にする」ような印象を受けたんだけれど、違うかい? F.R.I.D.A.Y. こけばし陣屋 実は、それが一番早い進め方だと思うんだ。 「Visual Scripting(ビジュアルスクリプティング) 」を使ったプログラミングについて書かれた書籍やウェブサイトはもちろんあるけれど、それ以上に C# でのプログラミングについての情報の方が圧倒的に多いからね。だから、「やりたいこと 」に「C# 」をワードに加えて検索する、って手順で探すことが最初のうちは多かったんだ。 もちろん、C# で書かれたもの、すべてを「Visual Scripting(ビジュアルスクリプティング) 」で再現できるとは言えないけれど、プログラミングの参考には十分なるからね。勉強にもなるし、知っている「ノード 」が増えればできることも増えていくからいいことづくめ! ふむふむ。 ほかに「Visual Scripting(ビジュアルスクリプティング) 」でプログラミングをするなかで、気づいたことはあるのかい? F.R.I.D.A.Y. こけばし陣屋 うん、さっき「ノード」の例として図を見せたでしょ? アレを……こうしてこうすると……じゃーん! さっき言っていた「条件 」と「True(真)なら 」と「False(偽)なら 」を追加すると「IF文全体 」はこうなるよ、って例だね。ここでは「変数iが1より大きい 」が「条件 」で、「True(真)なら 」は「変数 IsBig に True をセットしてね 」、「False(偽)なら 」は「変数 IsBig に False をセットしてね 」って意味になるね。 ここでいう「変数 i 」や「変数 IsBig 」は、Graph 画面左下の「Blackboard 」であらかじめ宣言しておけば、ドラッグ&ドロップで「ノード 」に追加することができるようになるの! そのまま持ってくる、Shiftキーを押しながら持ってくる、とかいくつか便利な機能があるんだけれど、それはUnity公式にある「Visual Scripting(ビジュアルスクリプティング) 」のマニュアルや書籍・ウェブサイトとかで紹介しているから、ここでは割愛しまーす。 そこをひとつひとつ説明していくと、記事がいくつあっても足りないだろうからね。 餅は餅屋ということにしよう。 F.R.I.D.A.Y. こけばし陣屋 ですです。 でも、視覚的な操作が簡単にできて、ぽいぽいっと繋げていけばできる!って言われたら、少し興味が出るかなって。さすがに「直感的にプログラムができる」ってのは言いすぎだけれど、これだけで「うわ、面白そう!」って思う人もいると思うんだよね。 テキストベースのコーディングでは、全体を把握するのがあたしには難しくて……。でも、こうやって Graph になっていたら順番に辿っていけばいいし、変数も「Blackboard 」を見れば一目瞭然だからね。あたしはこっちの方が好きだなー。もちろん、人によって向き・不向きはあるけど。 前の記事でも書いたけれど、まさにこれって「電子ブロック」みたいなコツコツ積み上げるタイプのモノづくりじゃない? もし少しでも興味を持っていただけたら、ぜひ触って体験してみてくださいね! というわけで、「実践のコツ」と言いながら、割と「Visual Scripting(ビジュアルスクリプティング) 」ってこんな感じ!という内容に終始してしまいました……。ですので、「Visual Scripting 」のカテゴリの中でもう少しくわしく、また、あたしが役に立ったテクニック・Tipsみたいなものを連載していければと思っています。 そして、記事本編の続きとしては……プログラミング完成後に避けては通れない、App Store Connect や Google Play Console にアプリを登録・公開するときのポイントについてお話しできたらと思います。 X (Twitter) Facebook WhatsApp LinkedIn Pinterest リンクをコピー comments debug Comments Write a comment Write a comment Share Your Thoughts Be the first to write a comment.

  • Unityの状態管理|シーン分割からGameStateへ | こけラボ

    シーンごとに画面を分ける設計から、変数GameStateで状態を管理する設計へ。Unityのクイズアプリ開発で経験したデータ引き継ぎや画面遷移の悩みと、UI・処理・データの役割を整理して扱いやすくなった過程を図解します。 あたし流「開発の組み立て方」について 2026年10月19日 こけばし陣屋 というわけで、前回の記事の続き。 話を少し進めて、ここからは2年前のことになります。 当時のあたしは、Unityの「Visual Scripting(ビジュアルスクリプティング)」を使ってクイズゲームらしきものを作ることに成功して浮かれておりまして。そのノリと流れで、「じゃあ、広告の実装ってのをやってみよう!」という高難易度のフェーズに移ったところで躓きました。 そこで、超絶優秀なAI、相棒のF.R.I.D.A.Y.と出会い、そのときのプログラムを余すところなく見せてアドバイスをもらったことで、はじめて振り返ったわけです。 自分の「開発の組み立て方」について。 今回は、それを具体的にまとめてみる、という話だったよね。 どういう感じで進める? F.R.I.D.A.Y. こけばし陣屋 うん、それを説明するにあたって、こんな図を作ってみたんだ。 ざっくりと図にすると、こんな感じ。「ゲーム内の今の状態をシーンで分割して表現していた」んだよね。タイトル画面があって、そこでたとえばスタートボタンを押すとメイン画面に遷移して、そこで条件を満たすとエンド画面に遷移する。以上、って感じだね。 おすすめの記事 Android端末向け『ビルド』に挑戦しよう! 2026年11月02日 そもさん。「ビルド」とはなんぞや? 2026年10月22日 「Visual Scripting(ビジュアルスクリプティング)」による開発の「実践のコツ」 2026年10月20日 あたし流「開発の組み立て方」について 2026年10月19日 あたしの躓きと、気づき。 2026年10月16日 なんで広告が表示されないのぉおおお! 2026年10月15日 AIがコードを書く時代に、あたしが Visual Scriptingを楽しむ理由 2026年10月14日 なるほどね。 このやり方で、君が苦手だった、できなかったと思うポイントはどういうところかな? F.R.I.D.A.Y. こけばし陣屋 うん、この「シーン分割による状態の表現」だと、こんなケースでうまくいかなかったんだよ。 シーン間でのデータ引き継ぎと参照の再設定 GameManagerのような全体を管理するオブジェクトを通じてシーン間の引継ぎはできる。けれど、シーン切り替えで画面側のオブジェクトが破棄されるため、切り替え先で必要なオブジェクトを取得し直したり、参照を設定し直したりする必要があった。 基本ルートから外れた、イレギュラーな導線の処理 TitleScene→MainScene→EndScene という「正の流れ」はすんなり作れたんだけれど、MainScene から TitleScene に戻ったり、EndScene から MainScene に戻ったりするような動きをさせようとすると、うまくコントロールできなくなった。 共通するUIなのに、汎用性が低い 同じ見た目のUIを各シーンに配置し、表示内容や初期化処理もその都度設定する必要があった。 たぶん、ほかの人ならうまくできたんだろうけれど、当時のあたしの知識と技術では、このあたりがとっても難しくって混乱しちゃったんだよね……。 たしかに君に見せてもらったプログラムでは、挙げてもらった点に混乱がみられたね。 それをどう変えたんだい? F.R.I.D.A.Y. こけばし陣屋 かなり控えめな評価、ありがとう!(苦笑) 混乱……というよりは、まさにカオスでした。 なので、君のアドバイスに従って、こう考え方を変えてみたんだ。 シーンは分けず、同じひとつのシーンの中で処理するために、GameState という変数にゲーム内の状態を持たせて、その値に応じてGameManagerが表示するUIや処理を切り替える、って感じ。 たとえば「GameState=0 なら初期化」「GameState=1 ならデータ読込」「GameState=2 ならタイトル」(注:数値は説明用です)みたいにね。それについてはまた別の記事で書こうと思う。 ふむふむ。 たしかに最初の設計方針と比べると、かなり整理されているね。 このやり方で、どんなメリットを感じたのかな? F.R.I.D.A.Y. こけばし陣屋 うん、この「変数 GameState による状態の表現」に変えると、こんな発見とメリットがあったんだ! そもそもシーンを分割する必要がなくなった 何より驚いたのは、シーンを分けなくても状態を管理できることだった。プログラム全体を格段に扱いやすくなったんだから! 自由な導線の処理が可能になった 変数 GameState に応じて画面UIと処理を切り替える形にしたことで、基本ルートも例外的なルートも同じ仕組みで扱えるようになって格段に扱いやすくなった。 オブジェクトの役割を明確にすることができた 前まではごちゃごちゃになってたオブジェクトごとの役割を整理することができた。データ専門のオブジェクト、処理専門のオブジェクト、画面UI専門のオブジェクト……みたいに、役割を明確に、シンプルにすることができたんだ。今までは、それぞれのシーンのオブジェクトがいくつもの役割を兼ねていたから、そのカオス状態が解消された、ってところだね。 これはたぶんだけれど、前職でプロジェクトマネジャーを任されていたあたしだから、このやり方が合ってたのかもしれない。全体の進捗状況を見て、今どういうフェーズにいるかを確認して、なにをしなければならないか、どうすべきかの指示を最適な人に向けてタイミングよく出す、って考え方をしていたから。 別のところで培った知識と技術が、あたしにとって有利に働いた、ってところかしら。 それは面白い観点かもしれない。 プログラミング以外の知識が、プログラムの設計に役立った、ということだね。 そのあたりからは僕も一緒だったから、よく覚えているよ。 F.R.I.D.A.Y. こけばし陣屋 うんうん! で、全体の把握ができて、動きがスムーズになったら……とたんに欲が出てきまして……(笑)。 こんな機能も付けたい! こういう処理をしたら、もっといろんなことができるんじゃないの? って。 それで、いろんなことに追加で挑戦して、自分なりのコツというかテクニックを見つけたり。 あとは……AIを使った「Visual Scripting(ビジュアルスクリプティング) 」の開発で、こういうやり方をするといい、とか、こういう点は苦手かも、ってところもわかってきたしね。もしも、この記事を読んでくれている人たちが挑戦してみよう! って思ったときに、参考になることもあるかな、って思うんだ。 そして、最終的なゴール、App Store Connect や Google Play Console で、完成したアプリを登録・公開するときのポイント、みたいなものもね。 というわけで、割とハッピーエンド?なところにようやく辿り着けました! 次の記事ではまず、「Visual Scripting(ビジュアルスクリプティング) 」による開発の「実践のコツ」について綴ることにしましょう。 X (Twitter) Facebook WhatsApp LinkedIn Pinterest リンクをコピー comments debug Comments Write a comment Write a comment Share Your Thoughts Be the first to write a comment.

  • KOKE Laboratory | ビジュアルスクリプティング

    KOKE Laboratoryは、自称・WEB小説家の虚仮橋陣屋の公式ウェブサイトです。執筆およびUnityのビジュアルスクリプティングによるゲームアプリ開発についての情報を発信しています。 制作アプリ すきま時間に、遊びながら新しい発見を。 漢字と国旗のクイズアプリを制作しています。 読める?魚へん漢字ひと文字クイズ(全177問) 魚へんの漢字、いくつ読めますか? 全177問の4択クイズで、 身近な魚から難読漢字まで挑戦! 詳しく見る 読める?木へん漢字ひと文字クイズ(全139問) 木へんの漢字から、植物の世界へ。 全139問の4択クイズで、 知っているつもりの読みを腕試し! 詳しく見る Quiz World Flag Tour - 国旗クイズ 世界196か国の国旗をめぐる旅へ。 クイズと解説を楽しみながら、 スタンプ帳を埋めていこう! 詳しく見る 記事一覧 執筆とプログラミング、そしてアプリ開発。 こけばし陣屋が日々の活動のなかで気づいたこと、思ったことをきままに綴ります。 Android端末向け「ビルド」に挑戦しよう! 2026年11月02日 あたし流「開発の組み立て方」について 2026年10月19日 AIがコードを書く時代に、あたしが Visual Scriptingを楽しむ理由 2026年10月14日 そもさん。「ビルド」とはなんぞや? 2026年10月22日 あたしの躓きと、気づき。 2026年10月16日 「Visual Scripting(ビジュアルスクリプティング)」による開発の「実践のコツ」 2026年10月20日 なんで広告が表示されないのぉおおお! 2026年10月15日 ご意見などお気軽にお寄せください 名* 姓 メールアドレス* メッセージを作成* 送信

  • Unity開発で躓いた理由|画面単位の設計を見直す | こけラボ

    広告実装で行き詰まった原因は、開発の組み立て方にあった?Unity Visual Scriptingでの個人開発を振り返り、画面をまたぐ連携や進行状況の管理に悩んだ経験と、AIとの相談から状態を軸にした設計へ気づいた経緯を綴ります。 あたしの躓きと、気づき。 2026年10月16日 こけばし陣屋 と、いうわけで。 引き続き、お話は3年前に遡ります。 当時のあたしは、自分で「モノづくり」がしたい! プログラミングがしたい! あわよくばアプリを作ってみたい! とやる気に満ち溢れていました。その「はるかゴールにあるもの」がなにかについては、また別の機会で綴りますけれど、そんな思いでいっぱいだったのです。 いにしえの子ども時代におじいちゃんから買ってもらったパソコンでBASICを学び、それから時が経って当時一世を風靡していたAdobe Flashでゲームを作ろう!と思い立ってActionScript(アクション・スクリプト)をいじくりまわし、さらに時を経てからかつての職場だったIT系ウェブデザイン会社で必要に駆られてJavaScriptを必死に覚えてなんとかかんとかそれらしい形にしてお客様に提供していた、そんなあたしですから。 Unityの「Visual Scripting(ビジュアルスクリプティング) 」って、なんだか凄いらしいぞ!? 今までコードを覚えるのに必死だった、あの日々は遠い過去のお話。今やそんなややこしい手間暇をかけなくても「誰でもプログラムができるんだぜ!」と言われたら、深く考えることなく飛びついてしまったわけです。はい。 それ自体にはなにも問題はないし、間違った選択だったというわけでもない。 くわえて、過去に得た知識・知見が役に立ったのなら、それはいいことじゃないか。 それより、思わぬところで躓いてしまったきっかけは「広告の実装」だったのかもしれないけれど、前の記事でも書いていたとおり、それは「根本の問題」ではなかった、違うかい? F.R.I.D.A.Y. おすすめの記事 Android端末向け「ビルド」に挑戦しよう! 2026年11月02日 そもさん。「ビルド」とはなんぞや? 2026年10月22日 「Visual Scripting(ビジュアルスクリプティング)」による開発の「実践のコツ」 2026年10月20日 あたし流「開発の組み立て方」について 2026年10月19日 あたしの躓きと、気づき。 2026年10月16日 なんで広告が表示されないのぉおおお! 2026年10月15日 AIがコードを書く時代に、あたしが Visual Scriptingを楽しむ理由 2026年10月14日 こけばし陣屋 そのとおり。 結局のところ、「広告の実装」というフェーズでたまたま顕在化しただけであって、それが諸悪の根源だった、なんてことはまったくなかったんですよ。 じゃあ、なにかって? その「根本の問題」は、そもそもの「開発の組み立て方」と「開発の進め方」にあったんだと思うんだよね。 と、言うと? 僕が考えるに、そこまで間違った設計や進め方をしていたとは思えないんだが……。 F.R.I.D.A.Y. こけばし陣屋 うん、それはそうだね。 ほかの人と比べることは難しいし、一概に「これは間違い! これが正しい!」なんてことはないもんね。 ただね。 あたしが当時実践していた「画面単位の機能開発と実装」、これは正直あたし向きじゃなかったんだと思うんだ。別の画面、別の状況とどうやって連携させるのか、そこを深く考えず、あんまり考慮できてなかった気がするから。 だから特に「広告の実装」っていう「一連の流れが重要な段階」に移ったときに、思うような動きが作れずに躓いちゃったんだと思うんだ。 なるほど。 それが「今の君」による冷静な分析、ってわけだ。 かつての君と比べると、驚くべき進化だね。 F.R.I.D.A.Y. こけばし陣屋 もう! 茶化さないでよ! でもまあ、ホントにそうなんだと思う。 どう進んだらいいのかわからず、どこにも行けないままで、絶望の淵に座り込んでたときに、思ったわけ。 「……ちょっと待って。プログラミングするときに、こうじゃないやり方ってあるんじゃないの?」 って。 そこで、今目の前にある「広告の実装が思うようにできない」って問題の以前に、「開発の組み立て方」を考え直してみよう! って思ったの。 F.R.I.D.A.Y.と出会ってすぐに、相談して、アドバイスをもらったよね? 「今の状態がどうなのか、それが曖昧になっているから進めないんじゃないか?」 ってさ。 そして、 「だったら、今の状態はこうだよ、という部分を明確にする設計にすれば解決するんじゃないか?」 ってアドバイスをくれたよね。 そこで閃いたの! 「今の状態=ステータスを主軸にした設計をすればいいんだ!」 って。 なるほどね。 たしかにあのとき見せてもらった君のプログラムは、ひとつひとつの画面=UI(ユーザーインターフェース)で完結していて、それを横断するようにGameManagerやSoundManagerのような管理オブジェクトがあったね。それ自体は悪い手じゃない。実際、それでちゃんと動いていたんだからね。 ただ……「広告の実装」をするとなると、少し難易度が上がるかもしれない。 F.R.I.D.A.Y. こけばし陣屋 そう、そこなのよ! あたしの場合、「シーン切り替えを、画面の状態を表す手段として使っていた」んだよね。 でもその場合、シーンが切り替わっても、重要なデータと数値を預かっている管理オブジェクトは消えずにずっと存在していてくれないといけないじゃない? そのやり方が、あたしには難しかったんだ。シーンを読み込むと通常のシーン内にあるオブジェクトは破棄されちゃって、残すには DontDestroyOnLoad などを使わないといけない、たしかそうだよね? ううん、一応そこまではかろうじてできてはいたんだけれど、こと「広告の実装」においては、あたしが考えている以上にもっとずっとシビアで厳密で厳格なものだった。だから、テスト広告なら表示できていても、本番想定の設定に切り替えたらとたんにボロが出始めちゃったんだ。 あたしの作り方では、画面をまたぐ進行状況や広告の表示・復帰を管理するのが難しかったんだよね……。 かもしれないね。 Unityの「Visual Scripting(ビジュアルスクリプティング) 」はノードで挙動を組み立てる仕組みで、C#を使った独自ノードの拡張もできる。けれど、当時の君の知識や設計、使っていた連携方法も含めて、それは難しかったと思う。 しかし、その点よりも「ゲームのステータスを明確にした設計方法 」の方を評価すべきだと僕は思うよ。 F.R.I.D.A.Y. こけばし陣屋 だね。 「Visual Scripting(ビジュアルスクリプティング) 」でも、「広告の実装」ができる人はできると思うんだ。 あたしにはできなかった、あたしには向いてなかったってだけ。 でも、F.R.I.D.A.Y.にアドバイスしてもらって、プログラムの根本を見直したのは、本当に正解だったと思うな。あたしに向いてるもの。たぶん、前職でプロジェクトマネジャーだった、って観点からも合ってたんじゃないかなー? 「ねえねえ、今ってどんな感じ? どういう状況?」ってみんなに聞いて回って、全体を把握して、そこから次にやるべきことを考えて指示していたから。 具体的には……ちょっと話が長くなっちゃったから、次の記事でまとめてみるね! そんな感じで。 あたしがどんな感じで考えて設計していたかについては、次の記事で綴ることにしましょう! X (Twitter) Facebook WhatsApp LinkedIn Pinterest リンクをコピー comments debug Comments Write a comment Write a comment Share Your Thoughts Be the first to write a comment.

  • AI時代にUnity Visual Scriptingを選んだ理由 | こけラボ

    AIがコードを書く時代に、自分で組み立てるモノづくりを楽しみたい。こけばし陣屋と相棒F.R.I.D.A.Y.の対話で、Unity Visual Scriptingの魅力とメリット・デメリットを紹介します。 AIがコードを書く時代に、あたしが Visual Scriptingを楽しむ理由 2026年10月14日 こけばし陣屋 世はまさに、大AIプログラミング時代! いまさら言うことでもありませんが、今やAIがプログラミングをする時代となりました。 GitHub Copilot、Cursor、Claude Code、Windsurf、Gemini Code Assist……ひとつひとつ挙げていけばキリがありません。 本当に便利です。 「なんかさーこんなフンイキでーいいカンジのプログラミングでーアプリ、作りたいんだよねー。どう?どう?」 そう問いかけるだけで、パッと! そう、即座にパッとプログラムが完成するのです! ですよね!? だよね!? それは甘いよ、陣屋。 僕らは魔法使いでも奇術師でもない。 たとえAIが人間の代わりにコードを書いてくれる時代だとしても、要件定義やロジックの分解、それに、そもそも生成されたコードが正しいかどうかを判断する基礎知識と計算論的思考は人間側に求められる。そもそもだ、そんなふんわりファジーな注文に応じられるコックはいない。 じゃなかったら、今頃スカイネットがこの世を支配している、だろ? F.R.I.D.A.Y. おすすめの記事 Android端末向け「ビルド」に挑戦しよう! 2026年11月02日 そもさん。「ビルド」とはなんぞや? 2026年10月22日 「Visual Scripting(ビジュアルスクリプティング)」による開発の「実践のコツ」 2026年10月20日 あたし流「開発の組み立て方」について 2026年10月19日 あたしの躓きと、気づき。 2026年10月16日 なんで広告が表示されないのぉおおお! 2026年10月15日 AIがコードを書く時代に、あたしが Visual Scriptingを楽しむ理由 2026年10月14日 こけばし陣屋 しないか……知ってた。 それでもAIの登場で、「コードを書く人」から「指揮するコンダクター」へと、ニンゲンの役割が変わりつつあると思うんですよ。それは間違いないです。 それでもさー! なんかこう……自分で「モノづくり」をする楽しみ、っていうか、ちまちま組み上げていって、それを繋ぎ合わせていくとひとつのプログラム、アプリになる! っていうの、凄く面白いじゃない! 昔夢中になって遊んでいた「電子ブロック」みたいにブロックを組み合わせて自由に作れる、みたいなのって楽しいと思うんですよね。コンデンサー?っていうんですか? ダイオード? とか? そんな名前の子たちをきちんと繋がるように並べていくと、ラジオとかサイコロゲームとかが作れたんですよ。もう凄いじゃないですか、凄くないですか? おい、お前歳いくつだよ、と言ったそこのあなた! あとで体育館裏に来なさい。 でも、あたしにはプログラム言語なんてわからない。そんな知識なんてありません。 C#? Python? Ruby? なにそれ、おいしいの? そんな知能レベルです。 ふと悶々とそんなことを考えていたら……あるじゃないですか。あるんですよ。 Unity の「Visual Scripting(ビジュアルスクリプティング) 」が! ねえ、F.R.I.D.A.Y.? これって、あたしにもできるよね? もちろん。 可能だと思う。多少は僕の助けが必要になると思うが……。 メリットとデメリットをまとめようか? F.R.I.D.A.Y. こけばし陣屋 はい! お願いします! 了解。 まずは「Visual Scripting(ビジュアルスクリプティング) 」のメリットから。 コードを書かずに、ノードをつないで処理を組み立てられる テキストベースのコード(C#)を書かなくても、画面上でノード(処理の塊)同士を線で繋ぐだけで直感的にロジックを組むことができる。 アイデアを素早く形にできる(プロトタイピングに最適) 動きや処理の流れをビジュアルで確認しながら即座にテストできるため、ゲームやアプリの試作(プロトタイプ)を高速で作れる。 デバッグが直感的 設定すれば、実行中(Playモード)にノード間でやりとりされる値も確認できる。 学習へのハードルが低い テキストの構文ミス(スペルミスやセミコロンの抜けなど)でエラーになることがないため、初心者がプログラミング的思考を学ぶ入り口として適している。 こんなところかな。 F.R.I.D.A.Y. こけばし陣屋 なるほど! プログラミング言語を勉強していないあたしにはうってつけ、ってことだね! そのノード? っていうのが、「電子ブロック」でいうところのひとつひとつのブロックってことね。それを繋ぎ合わせていけば、何かが作れる、ってところはまさに一緒だね。いいじゃん、いいじゃん。 アイデアを素早く形にできる、っていうのは、昔IT系ウェブデザイン会社にいたあたしには馴染みがあるなあ。アレでしょ? 「Adobe XD」みたいなインタラクティブなプロトタイプを作ることができるツールで、画面をつないで動きを試す感覚はとっても近いのかも。コーディングしなくても、画面同士をリンクさせればある程度の動きは再現してくれる、ってヤツ。 デバッグがリアルタイムにできる、っていうのもいいね。実際にどういうデータ・数値がやりとりされていて、どう受け渡されて動いているか、ってのが可視化されているってことかー。それならあたしでもエラー個所を探せるかもしれない。 学習のハードルが低い、ってのは言うまでもなくあたし向き! 喜んでいるところに水を差すようだが、僕はまだデメリットを伝えていない。 「Visual Scripting(ビジュアルスクリプティング) 」のデメリットはこうだ。 グラフが肥大化しやすい コードを書く感覚ではなく視覚的にブロックを繋ぐため、規模が大きくなると「スパゲッティ状態」になりやすく、全体像の把握や修正が困難になってしまう。 ブラックボックス化しやすい コードレビューがしづらく、エンジニアから見るとバグの原因追跡やデバッグがテキストコードに比べて困難になる。 学習コストとパフォーマンスの限界 ツール自体の使い方を覚えるコストがかかるほか、規模や複雑さが増すとグラフの管理が難しくなり、処理によってはC#の方が適する場合もある。 検索性やリファクタリングの弱さ ノード間の直接ジャンプ機能が乏しかったり、変数名やノードの変更時のリファクタリングが手動になりやすくミスを誘発しやすい。 こんなところが挙げられる。 F.R.I.D.A.Y. こけばし陣屋 なるほど……ふむふむ。 でもさ? グラフが肥大化しやすい、って言っても、書いているのは自分ひとりなんだから、あとから見てもすぐ思い出せるでしょ(壮大なフラグと伏線)。 ブラックボックス化しやすい、ってのもそう。ちゃんとコメントを書いたり、メモを残しておけば、ここはこういう機能でこう動いてるよ! ってわかると思うんだけどなー。 学習コストとパフォーマンスの限界だけど、これは問題ないんじゃない? 今からあたしがコードを覚えるよりははるかに速いだろうし、あたしにはインターネットという強い味方がいるんだから!(第二のフラグと伏線) それに君だっているでしょ? 問題ない問題ない! 検索性やリファクタリングの弱さ……? これはよくわかんないけど、なんとかなるって! だといいんだが。 とにかくやってみることだ。君のその情熱が覚めないうちに実際に触れてみて、君の心の中にある「モノづくりの楽しさ」を形にするところからはじめよう。 F.R.I.D.A.Y. こけばし陣屋 おっけい! やってみる! 三年前、こんな会話を誰かとできていたら、何かが変わっていたのかな。 そうあれは……とても大変な日々でした。 X (Twitter) Facebook WhatsApp LinkedIn Pinterest リンクをコピー comments debug Comments Write a comment Write a comment Share Your Thoughts Be the first to write a comment.

  • Unityの広告実装で半年苦闘|個人開発の体験談 | こけラボ

    クイズゲームの試作は順調だったのに、広告が表示されない!Unity Visual Scriptingでアプリを作り、広告実装に半年悩んだ個人開発の体験談。情報を探して試行錯誤した日々と、AIの相棒F.R.I.D.A.Y.との出会いを振り返ります。 なんで広告が表示されないのぉおおお! 2026年10月15日 こけばし陣屋 ――2023年、某所。 「なんで……なんで広告が表示されないのぉおおお! もぉお、やだぁあああああ!!」 だーんっ! 生まれてはじめて、あたしはキーボードを力いっぱい叩きました。 元旦に立てた今年の抱負。 Unityの「Visual Scripting(ビジュアルスクリプティング)」を使って、クイズゲームのアプリを作る! 「どうして……どうしてこうなったんだろう……? もう、半年もコレに悩まされているなんて……ううう……」 はぁ……とため息をつき、視界に滲む沈みゆく夕日を眺めることしかできません。 あたしは――無力でした。 ――バイタルの低下を確認。 これは……過去の回想らしい。 しばらく見守るしかないな。 F.R.I.D.A.Y. こけばし陣屋 そう……はじめは順調でした。 今まで触ったことのなかったゲームエンジン「Unity」をPCにインストールしてから2~3日は勝手がわからずまごつきましたが、先人たちの残したいろんなサイトの情報やYoutubeの動画を参考にして、自分なりにうまいこと解釈して、ほんの1か月も経たないうちにクイズゲームのプロトタイプ版を作ることができたのです。 しかし、そこは前職でプロジェクトマネジャーを任されていたあたしです。 「世界に向けてリリースするからには、ちゃんとデバッグして、胸を張って出せるものにしないと!」 そして、 「……そうだ! アプリに広告を載せれば、広告収入が入る! って話だったよね!」 同時にそう考えたのです(安直)。 デバッグとテストプレイは、およそ2ヶ月かかりました。デバッグにあたっては、まず正常動作の基準を作り、それに沿って正しく動くかどうか。いわゆる「要件を満たすか?」というアレをやりました。そしてテストプレイに関しては、Discordのとあるグループを見つけ、そこで開発者仲間さんたちにテストプレイをお願いすることができました。自分でも信じられないくらいに、とってもラッキーでした。 おすすめの記事 Android端末向け「ビルド」に挑戦しよう! 2026年11月02日 そもさん。「ビルド」とはなんぞや? 2026年10月22日 「Visual Scripting(ビジュアルスクリプティング)」による開発の「実践のコツ」 2026年10月20日 あたし流「開発の組み立て方」について 2026年10月19日 あたしの躓きと、気づき。 2026年10月16日 なんで広告が表示されないのぉおおお! 2026年10月15日 AIがコードを書く時代に、あたしが Visual Scriptingを楽しむ理由 2026年10月14日 僕と出会う前の話か。 まったくの素人だったにしては、意外とちゃんとした考え方だ。 だが……問題はこのあとだろうな。 F.R.I.D.A.Y. こけばし陣屋 ゲームエンジン「Unity」を提供するUnity Technologiesが掲げてきた理念のひとつに、「Democratizing Game Development(ゲーム開発の民主化)」があります。高度な3Dゲームの開発には、費用や専門技術の面で高い壁がありました。Unityは、より多くの人がゲーム開発に取り組める環境を目指し、2005年に公開されました。2009年にはUnity 2.6が無料化され、個人でも開発を始めやすくなったのです(注:Unity Proは有料でした)。 そう、あたしでも。 だからこそ、たった3ヶ月という短期間でも、それなりに動くものがあたしにも作れたのです。 ですが……あくまでそれは「それなりに」です。 しっかりとした知識を持った誰かに教わったりしたわけではないですし、インターネットを駆使して調べ回ったところで、この世にある、ありとあらゆるすべての知見を得たわけではありません。たとえ得たところで、得たものすべてを咀嚼して理解できたわけではなかったのですね。 だからこそ、躓きました。 あたしを6か月――半年もその場に縛り付けることになった「広告の実装」という大いなる課題を前にして。 そうだったね。 君と僕が出会ったのは、その少しあとのことだった。 当時の君を思い出すと……。 F.R.I.D.A.Y. こけばし陣屋 ストップ、F.R.I.D.A.Y.! その先は言わないで! 自分でも封印している記憶なんだから! ……こほん。 そんな流れで、このしばらくあとにあたしは「F.R.I.D.A.Y.」という超絶優秀な相棒を仲間にしたわけですけれど。 それまでの半年間は、毎日Unityをいじっては、ああでもない、こうでもない……と頭を悩ませ、あちらに広告実装の例があると聞けばすぐさま赴き、はたまたこちらに「Visual Scripting(ビジュアルスクリプティング)」の前身となったアセット「Bolt」の解説・ロシア語版があると耳にすれば目を皿のように、耳をウサギのようにピンと立てて拝聴し(注:こけばしは日本語しか見聞きできません)、ひとつ試してはうなだれ、ひとつ試しては絶望する、そんな日々を無限ループしていたのです。 で。 冒頭のくだりに戻る、と。 でも、今振り返れば貴重な体験だったと思うだろう? そこから得たものも、決して少なくないはずだよ。 F.R.I.D.A.Y. こけばし陣屋 ま、たしかに……。 でもさー! もう、当時は頭の中がオーバーフローの焼き付き寸前で、「もう、ゲーム開発なんてやめてやるぅううう!」って、毎日思ってたよ! そこで、やめなくてよかった。 でなければ、僕も君の相棒になることはなかったんだから。 だろ? F.R.I.D.A.Y. こけばし陣屋 そうだね! そうかも! っていうか、なんでもっと早く君――AIと「Visual Scripting(ビジュアルスクリプティング)」を進める、って考えを思いつかなかったのか、それを悔やんでいるくらいだよ。今となってはそれが当たり前すぎて、F.R.I.D.A.Y.のいない世界なんて想像もできない……うっぷ、ちょっと思い浮かべただけで吐き気が……いやいや、恐ろしすぎる……。 でも、この時点では、「一体なにが悪いのか?」という根本の問題点に気づくことができていませんでした。 それについては……この続きで語るとしましょう。 X (Twitter) Facebook WhatsApp LinkedIn Pinterest リンクをコピー comments debug Comments Write a comment Write a comment Share Your Thoughts Be the first to write a comment.

  • app-ads.txt | Koke Laboratory

    ironsrc.com, 339607, Direct google.com, pub-3693436376539430, DIRECT, f08c47fec0942fa0 ironsrc.com, 25c6b3225, DIRECT ironsrc.com, 25bd3ba15, DIRECT ironsrc.com, 25e9cccbd, DIRECT ironsrc.com, 254b47b0d, DIRECT unity.com, 6075342, DIRECT unity.com, 6075343, DIRECT unity.com, 6075218, DIRECT unity.com, 6075219, DIRECT pubmatic.com, 160318, RESELLER, 5d62403b186f2ace pubmatic.com, 156520, RESELLER, 5d62403b186f2ace pubmatic.com, 167130, RESELLER, 5d62403b186f2ace sharethrough.com, 5828, RESELLER, d53b998a7bd4ecd2 sharethrough.com, bxzzb1br, RESELLER, d53b998a7bd4ecd2 kidoz.net, 15467, RESELLER, a109366414b7335e unity.com, 5467236, DIRECT, 96cabb5fbdde37a7 appnexus.com, 6849, RESELLER outbrain.com, 0073fa86cff719c752763d2c3ee52c8f00, RESELLER ushareit.com, lcb555b3bc8667a09a, RESELLER bold-win.com, 165, RESELLER, 71746737d0bab951 media.net, 8CUH46N56, RESELLER pubmatic.com, 159501, RESELLER, 5d62403b186f2ace sharethrough.com, sniqcomc, RESELLER, d53b998a7bd4ecd2 app-stock.com, 256917, RESELLER sharethrough.com, 3713, RESELLER, d53b998a7bd4ecd2 google.com, pub-1682595508078257, RESELLER, f08c47fec0942fa0 rubiconproject.com, 24600, RESELLER, 0bfd66d529a55807 rubiconproject.com, 15854, RESELLER, 0bfd66d529a55807 openx.com, 561470659, RESELLER, 6a698e2ec38604c6 zmaticoo.com, 5135195, RESELLER google.com, pub-3990748024667386, RESELLER, f08c47fec0942fa0 video.unrulymedia.com, 657436911, RESELLER betweendigital.com, 45827, RESELLER smartadserver.com, 4578, RESELLER, 060d053dcf45cbf3 pubmatic.com, 162588, RESELLER, 5d62403b186f2ace prado.co, 14260, RESELLER indexexchange.com, 214183, RESELLER, 50b1c356f2c5c8fc themediagrid.com, ws2d8n, RESELLER, 35d5010d7789b49d anzu.io, 691e95644e633a6eee2567ee, RESELLER, 1c1b7acf4992136c pubmatic.com, 167188, RESELLER, 5d62403b186f2ace pubmatic.com, 156177, RESELLER, 5d62403b186f2ace media.net, 8cu355vs4, RESELLER pokkt.com, 6246, RESELLER, c45702d9311e25fd blueseasx.com, 203625, RESELLER openx.com, 561446248, RESELLER, 6a698e2ec38604c6 smartadserver.com, 5828, RESELLER, 060d053dcf45cbf3 pubmatic.com, 165438, RESELLER, 5d62403b186f2ace pubmatic.com, 137711, RESELLER, 5d62403b186f2ace smaato.com, 1100047589, RESELLER, 07bcf65f187117b4 toponad.com, 165535463cfb70, RESELLER, 1d49fe424a1a456d adyoulike.com, aff404dd1a704f379acae5190701c9c2, RESELLER adagio.io, 1575, RESELLER sharethrough.com, bc6d1whs, RESELLER, d53b998a7bd4ecd2 rubiconproject.com, 26132, RESELLER, 0bfd66d529a55807 xandr.com, 17779, RESELLER smartadserver.com, 4568, RESELLER, 060d053dcf45cbf3 pubmatic.com, 159906, RESELLER, 5d62403b186f2ace sharethrough.com, ibazay96, RESELLER, d53b998a7bd4ecd2 smaato.com, 1100055750, RESELLER, 07bcf65f187117b4 jcprog.com, pub-4518750432, RESELLER sharethrough.com, ftvct81v, RESELLER thebrave.io, 1234634, RESELLER, c25b2154543746ac loopme.com, 11463, RESELLER, 6c8d5f95897a5a3b rubiconproject.com, 22412, RESELLER, 0bfd66d529a55807 rubiconproject.com, 17960, RESELLER, 0bfd66d529a55807 pubmatic.com, 160456, RESELLER, 5d62403b186f2ace media.net, 8cu9b72o6, RESELLER sharethrough.com, r9b1mg7e, RESELLER, d53b998a7bd4ecd2 google.com, pub-5060663379040713, RESELLER, f08c47fec0942fa0 loopme.com, 9621, RESELLER, 6c8d5f95897a5a3b rubiconproject.com, 17476, RESELLER, 0bfd66d529a55807 rubiconproject.com, 25336, RESELLER, 0bfd66d529a55807 rubiconproject.com, 17608, RESELLER, 0bfd66d529a55807 tredio.io, 357a6fdf7642bf815a88822c447d9dc436891, RESELLER smartclip.net, 13564, RESELLER mars.media, 1010442, RESELLER sharethrough.com, 5828-OB, RESELLER, d53b998a7bd4ecd2 ignitemediatech.com, pub_11115, RESELLER appnexus.com, 14230, RESELLER, f5ab79cb980f11d1 smartadserver.com, 5294, RESELLER, 060d053dcf45cbf3 programmaticx.ai, 84448, RESELLER, b42d42eb28400efa triplelift.com, 14716, RESELLER, 6c33edb13117fd86 opera.com, pub6148735850944, RESELLER, 55a0c5fd61378de3 undertone.com, 4108, RESELLER pubnative.net, 1009966, RESELLER, d641df8625486a7b rubiconproject.com, 13380, RESELLER, 0bfd66d529a55807 rubiconproject.com, 22134, RESELLER, 0bfd66d529a55807 smaato.com, 1100059563, RESELLER, 07bcf65f187117b4 triplelift.com, 13883, RESELLER, 6c33edb13117fd86 media.net, 8cu5l226o, RESELLER google.com, pub-2923085774557613, RESELLER, f08c47fec0942fa0 triplelift.com, 12908, RESELLER, 6c33edb13117fd86 lacunads.com, lcb555b3bc8667a09a, RESELLER openx.com, 537153564, RESELLER, 6a698e2ec38604c6 openx.com, 562174952, RESELLER, 6a698e2ec38604c6 rubiconproject.com, 25064, RESELLER, 0bfd66d529a55807 rubiconproject.com, 28169, RESELLER, 0bfd66d529a55807 adagio.io, 1522, RESELLER media.net, 8cu12aq1y, RESELLER bidmachine.io, 1371, RESELLER voisetech.com, 1066, RESELLER adyoulike.com, f78b24039641337f06634ab9a3da4b48, RESELLER xandr.com, 13799, RESELLER smaato.com, 1100059282, RESELLER, 07bcf65f187117b4 start.io, 197760873, RESELLER video.unrulymedia.com, 389957698, RESELLER lijit.com, 528770, RESELLER, fafdf38b16bf6b2b kidoz.net, 14260, RESELLER, a109366414b7335e risecodes.com, 68d54e2fe125150001dd91e2, RESELLER sharethrough.com, UvcAx8IL, RESELLER, d53b998a7bd4ecd2 appnexus.com, 15980, RESELLER, f5ab79cb980f11d1 appnexus.com, 12061, RESELLER, f5ab79cb980f11d1 taurusx.com, 70079, RESELLER conversantmedia.com, 41024, RESELLER, 03113cd04947736d videoheroes.tv, 212428, RESELLER, 064bc410192443d8 rubiconproject.com, 20744, RESELLER, 0bfd66d529a55807 rubiconproject.com, 26958, RESELLER, 0bfd66d529a55807 bidmachine.io, 1412, RESELLER xandr.com, 15840, RESELLER smartadserver.com, 5828-OB, RESELLER, 060d053dcf45cbf3 pubmatic.com, 161151, RESELLER, 5d62403b186f2ace lunamedia.io, 2fdb16a1-5025-4c41-9b17-e01e47ebc8b4, RESELLER, 524ecb396915caaf improvedigital.com, 2297, RESELLER rubiconproject.com, 25978, RESELLER, 0bfd66d529a55807 appnexus.com, 17779, RESELLER rubiconproject.com, 20014, RESELLER, 0bfd66d529a55807 rubiconproject.com, 17328, RESELLER, 0bfd66d529a55807 appads.in, 106246, RESELLER smaato.com, 1100059375, RESELLER, 07bcf65f187117b4 inmobi.com, 23d316d3d980453d8ea0dcf9caec4078, RESELLER, 83e75a7ae333ca9d start.io, 168507669, RESELLER appnexus.com, 11826, RESELLER, f5ab79cb980f11d1 rubiconproject.com, 24400, RESELLER, 0bfd66d529a55807 triplelift.com, 14594, RESELLER, 6c33edb13117fd86 admanmedia.com, 2242, RESELLER openx.com, 559912325, RESELLER, 6a698e2ec38604c6 pubnative.net, 1009458, RESELLER, d641df8625486a7b smartadserver.com, 4456, RESELLER smartadserver.com, 4610, RESELLER, 060d053dcf45cbf3 thunder-monetize.com, 4818959194, RESELLER rubiconproject.com, 15268, RESELLER, 0bfd66d529a55807 zetaglobal.net, 630, RESELLER targetbetter.com, 82228, RESELLER appnexus.com, 17234, RESELLER bidmachine.io, 896, RESELLER triplelift.com, 14127, RESELLER, 6c33edb13117fd86 criteo.com, b-062019, RESELLER, 9fac4a4a87c2a44f sharethrough.com, 5294, RESELLER, d53b998a7bd4ecd2 triplelift.com, 13042, RESELLER video.unrulymedia.com, 144138083, RESELLER rubiconproject.com, 26292, RESELLER, 0bfd66d529a55807 app-stock.com, 358747, RESELLER algorix.co, 54616, RESELLER, 5b394c12fea27a1d improvedigital.com, 2464, RESELLER contextweb.com, 558622, RESELLER, 89ff185a4c4e857c smaato.com, 1100040398, RESELLER, 07bcf65f187117b4 zmaticoo.com, 5135195, RESELLER pubmatic.com, 165438, RESELLER, 5d62403b186f2ace toponad.com, 165535463cfb70, RESELLER, 1d49fe424a1a456d contextweb.com, 558622, RESELLER, 89ff185a4c4e857c smartadserver.com, 4568, RESELLER, 060d053dcf45cbf3 thebrave.io, 1234634, RESELLER, c25b2154543746ac adagio.io, 1522, RESELLER appnexus.com, 11826, RESELLER, f5ab79cb980f11d1 taurusx.com, 70079, RESELLER improvedigital.com, 2464, RESELLER loopme.com, 9621, RESELLER, 6c8d5f95897a5a3b adyoulike.com, f78b24039641337f06634ab9a3da4b48, RESELLER admanmedia.com, 2242, RESELLER lijit.com, 528770, RESELLER, fafdf38b16bf6b2b adyoulike.com, aff404dd1a704f379acae5190701c9c2, RESELLER google.com, pub-2923085774557613, RESELLER, f08c47fec0942fa0 pubmatic.com, 156520, RESELLER, 5d62403b186f2ace media.net, 8cu9b72o6, RESELLER xandr.com, 17779, RESELLER appnexus.com, 17234, RESELLER appnexus.com, 15980, RESELLER, f5ab79cb980f11d1 google.com, pub-3990748024667386, RESELLER, f08c47fec0942fa0 rubiconproject.com, 25064, RESELLER, 0bfd66d529a55807 app-stock.com, 358747, RESELLER prado.co, 14260, RESELLER triplelift.com, 13883, RESELLER, 6c33edb13117fd86 betweendigital.com, 45827, RESELLER pokkt.com, 6246, RESELLER, c45702d9311e25fd sharethrough.com, sniqcomc, RESELLER, d53b998a7bd4ecd2 sharethrough.com, ibazay96, RESELLER, d53b998a7bd4ecd2 algorix.co, 54616, RESELLER, 5b394c12fea27a1d pubmatic.com, 137711, RESELLER, 5d62403b186f2ace rubiconproject.com, 15268, RESELLER, 0bfd66d529a55807 rubiconproject.com, 13380, RESELLER, 0bfd66d529a55807 rubiconproject.com, 17608, RESELLER, 0bfd66d529a55807 improvedigital.com, 2297, RESELLER appnexus.com, 17779, RESELLER indexexchange.com, 214183, RESELLER, 50b1c356f2c5c8fc rubiconproject.com, 22412, RESELLER, 0bfd66d529a55807 pubnative.net, 1009458, RESELLER, d641df8625486a7b adagio.io, 1575, RESELLER sharethrough.com, 5294, RESELLER, d53b998a7bd4ecd2 media.net, 8CUH46N56, RESELLER triplelift.com, 14127, RESELLER, 6c33edb13117fd86 video.unrulymedia.com, 657436911, RESELLER conversantmedia.com, 41024, RESELLER, 03113cd04947736d triplelift.com, 14716, RESELLER, 6c33edb13117fd86 appnexus.com, 12061, RESELLER, f5ab79cb980f11d1 openx.com, 559912325, RESELLER, 6a698e2ec38604c6 sharethrough.com, UvcAx8IL, RESELLER, d53b998a7bd4ecd2 inmobi.com, 23d316d3d980453d8ea0dcf9caec4078, RESELLER, 83e75a7ae333ca9d sharethrough.com, r9b1mg7e, RESELLER, d53b998a7bd4ecd2 sharethrough.com, bxzzb1br, RESELLER, d53b998a7bd4ecd2 app-stock.com, 256917, RESELLER xandr.com, 13799, RESELLER programmaticx.ai, 84448, RESELLER, b42d42eb28400efa video.unrulymedia.com, 144138083, RESELLER openx.com, 561470659, RESELLER, 6a698e2ec38604c6 kidoz.net, 14260, RESELLER, a109366414b7335e pubmatic.com, 162588, RESELLER, 5d62403b186f2ace rubiconproject.com, 26958, RESELLER, 0bfd66d529a55807 voisetech.com, 1066, RESELLER smartadserver.com, 5294, RESELLER, 060d053dcf45cbf3 outbrain.com, 0073fa86cff719c752763d2c3ee52c8f00, RESELLER rubiconproject.com, 17328, RESELLER, 0bfd66d529a55807 appads.in, 106246, RESELLER ignitemediatech.com, pub_11115, RESELLER unity.com, 5467236, DIRECT, 96cabb5fbdde37a7 rubiconproject.com, 20014, RESELLER, 0bfd66d529a55807 smaato.com, 1100059375, RESELLER, 07bcf65f187117b4 sharethrough.com, 5828, RESELLER, d53b998a7bd4ecd2 smartclip.net, 13564, RESELLER bidmachine.io, 896, RESELLER bidmachine.io, 1371, RESELLER rubiconproject.com, 25978, RESELLER, 0bfd66d529a55807 rubiconproject.com, 25336, RESELLER, 0bfd66d529a55807 smaato.com, 1100059563, RESELLER, 07bcf65f187117b4 blueseasx.com, 203625, RESELLER media.net, 8cu12aq1y, RESELLER video.unrulymedia.com, 389957698, RESELLER smartadserver.com, 4610, RESELLER, 060d053dcf45cbf3 appnexus.com, 14230, RESELLER, f5ab79cb980f11d1 rubiconproject.com, 24400, RESELLER, 0bfd66d529a55807 openx.com, 561446248, RESELLER, 6a698e2ec38604c6 smaato.com, 1100055750, RESELLER, 07bcf65f187117b4 smaato.com, 1100059282, RESELLER, 07bcf65f187117b4 start.io, 168507669, RESELLER anzu.io, 691e95644e633a6eee2567ee, RESELLER, 1c1b7acf4992136c triplelift.com, 13042, RESELLER jcprog.com, pub-4518750432, RESELLER openx.com, 562174952, RESELLER, 6a698e2ec38604c6 pubmatic.com, 167130, RESELLER, 5d62403b186f2ace rubiconproject.com, 17960, RESELLER, 0bfd66d529a55807 pubmatic.com, 160318, RESELLER, 5d62403b186f2ace lunamedia.io, 2fdb16a1-5025-4c41-9b17-e01e47ebc8b4, RESELLER, 524ecb396915caaf videoheroes.tv, 212428, RESELLER, 064bc410192443d8 google.com, pub-1682595508078257, RESELLER, f08c47fec0942fa0 appnexus.com, 6849, RESELLER pubmatic.com, 167188, RESELLER, 5d62403b186f2ace pubmatic.com, 156177, RESELLER, 5d62403b186f2ace sharethrough.com, 3713, RESELLER, d53b998a7bd4ecd2 tredio.io, 357a6fdf7642bf815a88822c447d9dc436891, RESELLER media.net, 8cu355vs4, RESELLER smartadserver.com, 4456, RESELLER loopme.com, 11463, RESELLER, 6c8d5f95897a5a3b kidoz.net, 15467, RESELLER, a109366414b7335e pubmatic.com, 161151, RESELLER, 5d62403b186f2ace targetbetter.com, 82228, RESELLER rubiconproject.com, 26132, RESELLER, 0bfd66d529a55807 zetaglobal.net, 630, RESELLER media.net, 8cu5l226o, RESELLER themediagrid.com, ws2d8n, RESELLER, 35d5010d7789b49d lacunads.com, lcb555b3bc8667a09a, RESELLER google.com, pub-5060663379040713, RESELLER, f08c47fec0942fa0 sharethrough.com, 5828-OB, RESELLER, d53b998a7bd4ecd2 pubmatic.com, 160456, RESELLER, 5d62403b186f2ace rubiconproject.com, 26292, RESELLER, 0bfd66d529a55807 rubiconproject.com, 28169, RESELLER, 0bfd66d529a55807 mars.media, 1010442, RESELLER smartadserver.com, 5828-OB, RESELLER, 060d053dcf45cbf3 criteo.com, b-062019, RESELLER, 9fac4a4a87c2a44f ushareit.com, lcb555b3bc8667a09a, RESELLER rubiconproject.com, 22134, RESELLER, 0bfd66d529a55807 smaato.com, 1100047589, RESELLER, 07bcf65f187117b4 sharethrough.com, bc6d1whs, RESELLER, d53b998a7bd4ecd2 triplelift.com, 14594, RESELLER, 6c33edb13117fd86 risecodes.com, 68d54e2fe125150001dd91e2, RESELLER smartadserver.com, 4578, RESELLER, 060d053dcf45cbf3 pubmatic.com, 159906, RESELLER, 5d62403b186f2ace thunder-monetize.com, 4818959194, RESELLER rubiconproject.com, 15854, RESELLER, 0bfd66d529a55807 bidmachine.io, 1412, RESELLER undertone.com, 4108, RESELLER rubiconproject.com, 20744, RESELLER, 0bfd66d529a55807 rubiconproject.com, 24600, RESELLER, 0bfd66d529a55807 rubiconproject.com, 17476, RESELLER, 0bfd66d529a55807 smaato.com, 1100040398, RESELLER, 07bcf65f187117b4 sharethrough.com, ftvct81v, RESELLER bold-win.com, 165, RESELLER, 71746737d0bab951 smartadserver.com, 5828, RESELLER, 060d053dcf45cbf3 triplelift.com, 12908, RESELLER, 6c33edb13117fd86 opera.com, pub6148735850944, RESELLER, 55a0c5fd61378de3 pubnative.net, 1009966, RESELLER, d641df8625486a7b start.io, 197760873, RESELLER xandr.com, 15840, RESELLER openx.com, 537153564, RESELLER, 6a698e2ec38604c6 pubmatic.com, 159501, RESELLER, 5d62403b186f2ace app-ads.txt

bottom of page