おもちゃラボ

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

Unity

【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を使って京都駅の上に矢印を出すアプリケーションの作り方を紹介したい…

【Unity】ARKitで水平面か垂直面かを調べる

ARKitで検出した平面が水平面なのか垂直面なのかを調べて、床面と壁面でことなる平面オブジェクトを作りたいことがあります。 検出された平面のRotationを確認しても良いのですが、ARKitでは水平面か垂直面かを調べる方法が提供されているので、それを使う方…

【Unity】インべーダ作りで学ぶUnet超入門3

前回はUnetを使って、ネットワークで同期して動くプレイヤ(自機)を作成しました。今回はネットワークで同期して動くインベーダーを作りましょう。【Unity】インベーダ作りで学ぶUnet超入門1 - おもちゃラボ 【Unity】インベーダ作りで学ぶUnet超入門2 - …

【Unity】インベーダ作りで学ぶUnet超入門2

前回はUnetを使ったプログラムの作り方の概要を紹介し、プログラムを作るための準備をしました。今回はプレイヤの動きを作っていきましょう。nn-hokuson.hatenablog.com Network Managerのはたらき まずはネットワーク関係の準備をすべて受け持ってくれるNet…

【Unity】インベーダ作りで学ぶUnet超入門1

Unityでネットワークゲームを作るにはUnetというライブラリを利用します。このUnetを使うことで簡単(?)にネットワークゲームを作ることができます。簡単にハテナがついているのは、それほど簡単じゃないからです(笑)Unetには様々なネットワークの専門用…

【Unity】複数点を通るスプライン曲線に沿って動かす

指定した点をとおるようにUnityちゃんを動かしたい場合、単に点を結ぶだけではカクカクした動きになってしまいます。そんなときはベジェ曲線やスプライン曲線と呼ばれる曲線を使います。スプライン曲線を使えば、すべての点を通る滑らかな曲線を引くことが出…

【Unity】ARKit超入門記事まとめ

ARKitは、Appleが2017年にリリースしたARフレームワークです。当時のARKit 1.0では平面認識しか出来ませんでしたが、ARKit 1.5を経て2018年にリリースされたARKit 2.0では環境マッピングの採用や複数人でのAR共有など、利用できる機能がどんどん増えてきてい…

【Unity】ARKitで作るARモグラ叩き その3

前回はARのモグラが穴から出てくるところまでを作りました。最終回はモグラをタップで叩けるようにします。また、叩いたときのエフェクトも表示したり、アニメーションを追加したりします。前回までの記事はこちらです。ARKitで作るARモグラ叩き その1 ARKi…