テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

Android

【Unity】UnityとAndroidアプリの64bit対応

Android 64bit対応が本格化してきたので、少しまとめてみます。 Android 64bit対応 2019年8月から64bit対応してない新規アプリの公開が出来なくなる。更新は可 2021年8月から64bit対応してないアプリを排除。Unityも含む Android 64bit対応済のUnityバージョ…

【Unity】iOS/Androidでアプリを休止してもダウンロードを続ける BackgroundDownload

今回はタイトルの通り「アプリを終了(もしくはサスペンド)してもダウンロードを継続する」機能を提供するアセットの機能と使い方についてです。 このアプローチを導入すると、アプリ開始時の「追加コンテンツダウンロード待ち」でアプリを起動しっぱなしで…

【Unity】AR Foundation(ARKitとARCoreのマルチプラットフォームAR環境)の超入門

今回はARCoreとAR Kitの両方に対応したマルチプラットフォームAR環境である「AR Foundation」、その最初の一歩として「とりあえず動くもの」の作り方を紹介します。 AR Foundationとは? 使い方 ARのセットアップ 平面の検出をグラフィカルにする オブジェク…

【Unity】WebGLとWebAssembly

WebAssembly 先日Google ChromeとFirefoxがWebAssemblyに対応しました。 この素晴らしいニュースではFirefoxが対応したのは当然として、世界で圧倒的にユーザー数の多いGoogle Chromeも対応したという事です。 dev.classmethod.jp Android環境でも「多分動か…

【Unity】ゲームに最初から含めるアセット群を圧縮するオプション

Unity 5.6から、ビルドしたゲームに含めるアセット群を圧縮するオプションが追加されました。 この圧縮をONにすることで「アプリ起動時間の短縮」や「インストール後にサイズが膨れ上がるのを防ぐ(iOS/Standalone)」効果が期待出来ます。 ビルドしたゲーム…

【Unity】Video Playerでアルファチャンネル付きムービーを使う

アルファチャンネル付きムービー、アルファムービー、透過ムービー、with alpha、αムービー、Aビデオ、呼び方は色々ありますが、背景が透明なムービーについてです。 アルファチャンネル付きムービー 使用出来るコーデック Webmを再生出来ない端末では アル…

【Unity】uGUIのImageとSprite Rendererの使い分け

今回はuGUIのImageとSprite Rendererの使い分けについてメモします。 ImageとSprite Renderer Sprite Rendererの振る舞い uGUI Imageの振る舞い 最適化に関するアプローチの違い SetPassの削減に関する振る舞いの比較 フィルレート・オーバードロー削減に関…

【Unity】UnityでARToolKitを使ってみたら、意外と簡単だった

今回はARToolKitを試してみたので、そのあたりメモします。 AR界のARToolKit 実際に使ってみる パッケージの入手 インポート マーカーを作る Unity上でARマーカー表示を行う Tips 感想 AR界のARToolKit ARToolKitは、マーカーを追跡するAR(Augmented Realit…

【Unity】Android SDKやJDKを設定する項目が見つからない時の対処法

Android SDKやJDK設定項目が見つからない 原因はAndroid Supportが含まれていない事 Download AssistantでAndroid Supportを追加する 関連 Android SDKやJDK設定項目が見つからない Unity 5.3より、Android SDKやJDK(およびNDK)といったAndroidのビルドに…

【Unity】Unity 5.3以降でAndroidのStatus Barを表示する方法

「Unity 5.3で個人的に気になった機能まとめ 」に書いた通り、Unity 5.3にて何故かAndroidでStatus Barを表示するオプション…例えばstatus bar hiddenが一切使用出来なくなり、ステータスバーを表示する事が出来なくなりました。 ステータスバーを表示するの…

【Unity】Wifi経由でAndroidアプリをインストール&実行する【Gear VR】

Unityのアプリケーションを転送するには「USB接続」が必要な訳ですが、Unityのアプリ転送は内部的にはADBを使用しているらしく、この接続をwifi経由で行えばUSB接続せずアプリをデバイスへ転送出来たりします。 このアプローチを使用することで、GearVR開発…

【Unity】モバイル向けのライトマップTipsと、ライトマップを動的に更新するHack

Unity 5はリアルタイムな光源を基本としている節がありますが、モバイル上では依然としてパフォーマンスを稼ぐためライトマップをベイクする方が良いです。 今回はそのライトマップの色々なアプローチについて紹介します。 ライトを焼く ライトマップを焼く…

UnityのTessellationを使って色々してみる

テッセレーションは、ポリゴンをより細かく分割する方法…だそうです。この機能を利用することで、4頂点の板ポリに凹凸を追加したり、ローポリで作成したメッシュを少しスムーズに設定することができます。 Tessellationを使用して板ポリに凹凸を表現してみま…

Unity 5✕Androidで低レイテンシ(発音遅延しない)な音を再生するアセットを作ってみた

補足 Unity 5.2辺りから、 FEATURE_AUDIO_LOW_LATENCYが得られる端末でOpenSLがAndroid上で動作しているので、実際にコレを導入しなくとも案外良いかもしれません。 本文 Unity5向けオーディオの機能を確認しているときに、Androidデバイスの音のなり始めが…

Unity 4.6で出力したAndroidアプリのサイズが以前のバージョンより大きい場合の対処法

Unity 4.6でAndroidアプリを出力するとファイルサイズが大きい事があります。 具体的には空のUnityプロジェクトをAndrod向けに出力するとapkのサイズが大体7.6MBになるのですが、Unity 4.6で出力すると13.8MBと倍近いサイズを要求します。 これはUnity 4.6よ…

続・Androidのビルドに失敗する(Unable to find suitable jdk installation)

UnityでAndroidをビルドする際、またビルドに失敗する事案が発生しました。 この問題ですが、javaのバージョンを上げる必要があるみたいです。前回はappleの提供するjava for oxsを利用しましたが、どうもコレでは駄目になったらしく、olacleからjdkを入手し…

フォントに含まれない文字を使うときの動作

UnityはテキストのフォントとしてArialやその他ttfフォーマットのフォントを使用して文字を表現します。しかし、この手のフォントには全てのフォントは含まれていません。 そんなときの挙動として、Unityはフォールバックしてデバイスに含まれるフォント(所…

Unityのシェーダーを実行時モバイル向けに変更して描画パフォーマンスを稼ぐ

今回もSample Assetsについて。 新 Standard Assets候補、Sample Assets (beta) - テラシュールブログ 新 Standard Assets候補、Sample Assets (beta) - テラシュールブログ シェーダーを差し替えるAutoMobileShaderSwitch Sample Assetsにシェーダーを一括…

Unityのゲームにスマホ向けなバーチャルパッドを追加する

Unityで取り敢えずゲームを作る過程で「Input.GetButton」系を使用している場合でも、タッチパネルに対応する方法を紹介します。 今回もSample Assetsシリーズです。 新 Standard Assets候補、Sample Assets (beta) - テラシュールブログ 新 Standard Assets…

uGUI の 使い方(β) 〜Canvas周り〜

※この記事の内容は古い(ベータ版のみ有効)です。 新しい方法 uGUIのアスペクト比を固定する(修正版) - テラシュールブログ uGUIのアスペクト比を固定する(修正版) - テラシュールブログ uGUIの使い方について紹介します。*1 今回はキャンバス周りにつ…

Unityの複数解像度の表示結果を一覧で確認する…の使えない方

今日は全く何の役にも立たないTipsを紹介します。 ゲームを開発していると、複数の解像度を使用したくなるケースがあります。例えば、縦画面と横画面を同時に開発している際、どのように動くか等です。 実はこんな事ができたのです。 やっている事は単純で、…

UnityのAndroidビルド時にkeystoreのパスワードを毎回要求しないようにする

訂正!Android用の証明書を作る その1の通り、AndroidのアプリケーションをGooglePlayへパブリッシュするためにはKeystoreで証明書を作る必要があります。 Unityでも例外ではなく、Unityでアプリを出力し提出する際には必ず証明書を作る工程が発生します。 …

高画質なスクリーンショットを撮影する

端末のスクリーンショットを撮影する際、高画質なスクリーンショットを撮影したい場合もある。そんな時はApplication.CaptureScreenshotの第二引数(superSize)に倍率を指定する。下のコードはスクリーンショットを倍にしたケース。Application.CaptureScre…

端末を回転させた際の画面の向きを固定する

Unity は ProjectSettings の Resolution and presentationw の Default Orientation を Auto Rotation に設定することで、端末を傾けた際に傾けた方向へ向くように設定出来る。この際、横(Landscape)にチェックを外すと、上下に回転するようになる(Unity …

Unity 4.3 androidでWebViewを使用した際のキーボード不具合対策

Unity 4.3より以降greeのWebViewアセットをAndroidで使用した場合、キーボードが正常に動作しない不具合等が確認されている。この不具合はAndroid 4.4で修正されているのだが、4.3以前のAndroidデバイスを使用したい場合、幾つか対策が必要となる。対応方法…

解像度を下げてパフォーマンスを得る

最近モバイルの解像度がおかしい。大して画面は大きくなっていないのに、画面解像度が1920×1080とか2048×1536とか意味がわからない。せっかくGPUの性能は上がっているのに、このクソ高い解像度のせいでイメージエフェクトのような画面全体にエフェクトをかけ…

世界のデバイス使用状況を知る

少なくともUnityでプレイするゲーム内での範囲だが、ゲームをプレイするプレイヤーのデバイス傾向は、こちらのリンクから確認出来る。Mobile (Android) Hardware Statisticsまた、その中身を確認していくと実際に使われているデバイスの傾向が推測出来る。例…

Everyplayを試したら数分でプレイ動画撮影機能が追加できてビックリ

せっかくなのでeveryplayを使ってみた。everyplayは動画プレイを撮影・共有するサービスだ。撮影した動画は、こんな感じでTwitterやFacebookに埋め込んで共有できる。flappy chicken gameplay! https://t.co/EfsyLEprzC everyplay凄いな。こんな簡単に動画共…

フレームレートを落として電池消費を抑える

FPSを下げるとUpdateが呼ばれる頻度や描画回数が減り、結果的にパフォーマンスが安定したり電池消費を超抑えたりすることが出来ます。電池消費を抑える事は、AndroidやiOSといったモバイル端末には重要です。 Unityのフレームレートを落とすには、Startとか…

Androidの実機ログを調査しやすくするTips

UnityのAndroidアプリを開発している際、唐突にアプリが落ちる事があります。 この場合、実機ログを確認するのが最も有効です。実機のログを確認するには、LogCatを使用します。 LogcatにはDebug.LogやLog.iで出力したログが出力されるので、 これを使用して…