おもちゃラボ

Unityで遊びを作っていきます

Unity

【Unity】WebCamTextureで写真撮影

画面をタップしたときにパシャっと写真撮影し、撮影画像をPlaneなどに貼って表示するというのが意外と大変だったので、その手順をまとめました。 写真撮影する流れ 画面がタップされてからカメラを起動→撮影とすると時間がかかってしまうため、基本的にカメ…

Unityで使えるTips100選

これまで書いてきた記事の中から、Unityを使うときにちょっと役に立ちそうなTIPSを100個用意しました!お時間のあるときにでも、ちょこちょこ眺めてみてください〜^^ チュートリアル編 【Unity入門】60分でつくるシューティングゲーム 全6回 - おもちゃラボ…

【Unity】3D Textの前後関係を正しく表示する

Unityの3D Textは、uGUIと違い空間上に配置できるテキストになります。ただ、この3D Text、他のオブジェクトの裏面に回っても最前面に表示されてしまいます。 そこで、3D Textの前後関係を正しく表示する方法を紹介したいと思います。流れは次の通りです。 …

【Unity】C#のデリゲートとコールバック超入門

C#で時々使われるDelegateは、調べてみると委譲とかラムダ式とかコールバックとか、更に難しい単語が出てきて混乱しますね。そこで、ここではC#のDelegateについて簡潔に解説してみたいと思います! Delegateとは コールバックとは タイマーを作ってみる Tim…

【Unity】VuforiaでARの背景にエフェクトをかける

Vuforiaのカメラ映像にエフェクトをかけたいときの方法を紹介します。エフェクトをかけるための流れは ポストエフェクト用のシェーダを作る ARCameraにシェーダを設定する 確認とまとめ になります。 ポストエフェクト用のシェーダを作る Vuforiaで背景映像…

【Unity】Listの内容をDebug.Logで表示する

UnityでListの内容を表示するため、次のように書いたとしましょう。 List<string> names = new List<string>(){"おそ松", "トド松", "カラ松", "チョロ松", "一松", "十四松"}; Debug.Log(names); 本当は全員分の名前が表示されてほしいのですが、残念ながら次のように「List</string></string>…

【Unity】Visual Studio Codeを使う(2021年度対応)

Unityでは標準のエディタとしてVisual Studioが使えるようになっていますが、動作が重かったり、補完機能が不安定だったりします。そこで、サクサク動いて補完もバッチリなVisual Studio Codeのインストール方法をまとめます。手順は次のとおりです。 Visual…

【Unity】これだけは覚えておきたいRectTransformの基本

UnityのUIを作るときに使うuGUIですが、このuGUIを動かしたいときに使う座標系ってちょっと分かりにくくないですか?uGUIの座標系についてはあやふやなまま使っているという方も多いかと思います。そこで、ここではuGUIで座標を扱うときに、最低限押さえて置…

OpenCV plus Unityサンプル集 20選

UnityでOpenCVを使いたい場合には「OpenCV for Unity」と「OpenCV plus Unity」の2種類のアセットがあります。OpenCV for Unityは有償($104)でメンテナンスもこまめに行われている一方、APIが独特でpythonやC++のOpenCVに慣れている人には少し使いにくい…

【AR Foundation】 光源推定をする

今回はAR Foundationで光源推定をする方法を紹介します。Directional Lightのデフォルト設定では現実の光源の強さや色合と異なるため、違和感がある映像になってしまいます。AR Foundationでは撮影された映像から光源の強さと色合いを推定できる光源推定機能…

【AR Foundation】ぬいぐるみをマーカーにしてARを作る

ARKit2.0からは2次元の画像マーカーだけでなく、3次元の物体(例えばぬいぐるみとか、玩具とか)をマーカーに出来るようになりました。ただ、物体マーカーは2次元マーカーのように動かしてもARモデルは追従しないので注意が必要です。 物体をマーカーにする…

【AR Foundation】マーカーを使ったARを作る

この記事では、AR Foundationでマーカーを使ったARを作る方法を紹介します。マーカー型のARといえばVuforiaが有名でしたが、ARKit3からはARKit/ARCoreでも精度よくロバストな検出ができるようになっています。AR Foundationの基礎になっているARKitについて…

【Unity】ファイルの読み込みと書き込み方法3選

Unityを使っていると、ファイルから読み込んだり、ファイルに書き込みをしたい場合が良くあります。C#にはファイルの読み書きをする方法がいくつか用意されていて微妙にややこしいので簡単にまとめておこうと思います。 TextAssetを使って読み込む Fileクラ…

【Unity】画面四隅のワールド座標を取得する

モデルが画面外に出たことを検知したり、画面いっぱいにPlaneを広げたりしたい場合、画面四隅のワールド座標がわかると案外便利です。そこで、この記事では画面四隅のワールド座標を取得する方法を説明します。 ワールド座標変換 画面四隅のワールド座標を取…

【Unity】メニューからモデルを配置する

Unityエディタ上でモデルを並べる場合、通常はPrefabをシーンビューにドラッグ&ドロップして並べますね。ただ、数が多くなると手作業で並べるのは大変なので、スクリプトを使って並べられると便利です。そこで、この記事ではUnityエディタ拡張を使って、Uni…

【AR Foundation】Point Cloudの保存と表示

この記事では、AR Foundationで検出される特徴点群(Point Cloud)を表示する方法と、各特徴点の座標を調べたり、保存したりする方法を紹介します。特徴点を保存しておけば、次図のように、後から特徴点群として表示することもできます。AR Foundationの基礎…

【AR Foundation】モデルに影をつける

ARのモデルを表示するとき、現実感を出すためには「影」の存在が重要になります。 影があることで床との接地面が分かりやすくなり「そこに置かれている感」がアップします。この記事では次の流れでモデルに影を付ける方法を紹介します。 丸影を表示する 投影…

【AR Foundation】平面上にモデルを置く

前回はAR Foundationを使って平面を検出しました。今回は検出した平面上にARのオブジェクトを配置する方法を紹介します。アプリを起動し、検出した平面をタップすると、タップした場所にオブジェクトが表示されます。作成の流れは次のようになります。 AR Fo…

【AR Foundation】セットアップから平面検出まで

これまでUnityからARKitを使いたい場合は、Unity ARKIt Pluginを使うのが一般的でした。ただ、Unity2019からはUnity ARKIt Pluginに変わってAR Foundationが公式でサポートされるようになりました。そのため、これからUnityでARを始めたい人は、AR Foundatio…

【AR Foundation】AR Foundation 4.0の使い方

AR Foundation4.0では、People OcclusionやHuman SegmentationなどARKIt 3.0の機能をUnityから簡単に使えるようになっています。ただ、AR Foundation4.0は2020年7月現在はpreview版のため、UnityのPackage Managerからインストールできなくなっています。そ…

【Unity】樹木を作る

Unityには様々な形の木を作ることができるツールが付属しています(知りませんでした)。ただ、このツール、設定しなくてはいけないパラメータがめちゃくちゃ多いので、1本の木を作るまでが大変です。そこで、ここではUnity2019を使って、最小限のパラメータ…

【ARFoundation】カメラ映像を取得する

ARKitを使っていると、ARとは別にカメラからの映像を取得したい場合があります。そこで、この記事ではARFoundationを使ってカメラ映像を取得する方法を紹介したいと思います。目次は次のとおりです。 ARFoundationのセットアップ カメラ映像をフックするスク…

【Unity】Xcodeで library not found for liPhone-libのエラーが出る

Unity2019とXcode11を使ってUnityのプロジェクトをビルドすると「library not found for -liPhone-lib」というエラーが出ることがあります。 ld: library not found for -liPhone-lib clang: error: linker command failed with exit code 1 (use -v to see …

【Unity】ROMアップロード時のエラー対処法

ROM(Androidならapk、iOSならipa)をアップロードしたときにつまずくポイントをまとめました。最後の関門なので、早く提出したいのに・・・!と一番イラつく(笑)ポイントなので、その手助けになれば!! 広告を使っていないのにIDFAのチェックで引っかかる…

【Unity】Blenderでテクスチャをベイクする

Unityでライトマップをベイクして、影をテクスチャに焼き付けることもできますが、Blenderでモデルを作った時点でAOなどの影をベイクすることもできます。ここではBlender2.8を使ってテクスチャに影をベイクする方法を紹介します。 レンダリングの設定をする…

【ARKit】ARでAmbient Occlusion(AO)を使う

ARKitやVuforiaなど、ARのアプリケーションでアンビエントオクルージョン(Ambient Occlusion)の効果を使いたくても、ポストエフェクトが使えなかったり、処理負荷が大きくなりすぎる傾向があります。ここでは、ARKItやVuforiadでも簡単にAOの効果を実現す…

【Unity】広重のような雨のエフェクトを作る

歌川広重の描いたような雨をUnityで降らせる方法を紹介します。地面に雨粒があたったときは、そこから波紋が広がるようにします。完成版は↓こんなかんじです〜Unityも梅雨のシーズンです pic.twitter.com/InQBVtepkM— 北村愛実 (@tasonco_company) 2019年7月…

【Unityシェーダ】テクスチャを円形にトランジションさせる

uGUIのImageを使うと、画像のトランジションを簡単に実現することができます。この記事では円形のトランジションを通常のテクスチャやスプライトでも行えるようなシェーダを作ります。円形にトランジションするシェーダ pic.twitter.com/8hqMJM6FZN— 北村愛…

【ARKit】3Dオブジェクトをマーカーにする

ARKit2.0からは2次元の画像マーカーだけでなく、3次元の物体(例えばぬいぐるみだったり、玩具だったり)をマーカーにすることが出来るようになりました。ただ、現状ではオブジェクトトラッキングはできないため、3Dマーカーは動かないことが前提の使い方に…

【ARKit】GPSで特定の場所にARを表示する

ポケモンGOのように特定の場所に何かを表示したい場合や、Yahoo地図のように目的地までの道順をARで表示したい場合、ARとGPSを組み合わせて作るのが一般的です。この記事ではARKitとGPSを使って京都駅の上に矢印を出すアプリケーションの作り方を紹介したい…