Unity
Unity2018からシェーダをノードベースで作れる「Shader Graph」という機能が提供されています(まだPreviewですが)これまでは、ノードベースでシェーダを開発しようとするとShader Forgeとかの有料アセットを使う必要がありましたが、これからは「Shader Gr…
Unityでスクリーンショットを撮影するのはとても簡単なのですが、これをiOSのカメラロールに保存するのは案外手間がかかります。ここではその方法を簡単に紹介したいと思います。スクリーンショットをカメラロールに保存する流れは次のとおりです。 Unityで…
Unity2017からARライブラリのVuforiaがUnityに統合され、ますます簡単にARアプリケーションを作ることができるようになりました。ここではUnityでVuforiaを使う時に使えるTIPSとハマりやすいポイントを合わせて10個紹介したいと思います!Vuforiaのセットア…
Unityで物理挙動に従って物体を動かしたい場合にはPhysicsを使うのが便利です。ただ、物理挙動に従わない動きや、Physicsが使えない場合には自分で物理挙動を計算する必要があります。この記事では、平面とボールの衝突と反射を計算する方法を紹介します。「…
前回の記事では3Dモデルの頂点を点(ドット)で表示する方法を紹介しました。今回は頂点の表示ではなく辺の表示、つまりポリゴンをワイヤーフレームで表示してみます。また、綺麗にワイヤーフレームを表示するためのシェーダも作成します! メッシュのトポロ…
Unityで線を引きたいときは、LineRendererを使うのが簡単なのですが、テクスチャの張り方を変えたり、線の太さを動的に変えたりと、アレンジした線を引こうとすると、とたんに難しくなります。ということで、この記事ではLineRendererを使わずに自力で線を引…
UnityでPlaneにテクスチャを貼って普通に回転させると、裏面が透明になってしまいます。これを防ぐためにカリングをオフにしたシェーダを作りました。nn-hokuson.hatenablog.comこのように、カリングをオフにすることで、両面ともテクスチャを表示することが…
この記事は、これまでにおもちゃラボで紹介してきたUnityのシェーダ入門記事40本のまとめです。1日に5記事読めば7日間で読み切れるはず...今のところ(笑)シェーダって時々聞くけど難しそう・・・というイメージをお持ちの方も多いと思います。でも、Unity…
UnityにはPlaneなど、板ポリ用のポリゴンが用意されています。大概の場合はこれらのポリゴンを利用すれば十分ですが、ゲーム実行時に動的にポリゴンを作りたい場合にはスクリプトから作ることもできます。ここではスクリプトを使って四角形のポリゴンを作成…
デプスバッファ(深度バッファ、Zバッファ)とはカメラからオブジェクトまでの距離(深度値、Z値)を格納したバッファになります。このデプスバッファは被写界深度のエフェクトや影の計算など、さまざまな場面で使われています。Unityを使っていると影やエフ…
トゥーンシェーダなどを使ってアニメ調の塗りをする場合、モデルにアウトラインを付けたいことがあります。ここでは、モデルと背景の境界線上にアウトラインを表示するシェーダを作る方法を紹介します。今回の記事の内容は次のとおりです。 アウトラインの概…
スーパーマリオオデッセイのニュードンクシティでは、縄跳びのミニゲームが遊べます。こんな感じで物理挙動に従って動く縄をUnityで作る方法をまとめました。www.youtube.com今回作った縄跳びアプリケーションはこんな感じになりました。この記事では、縄を…
UnityのStandard Surface Shaderを使うと3Dモデルを半透明で表示することが出来ます。ただ、モデルの形状が複雑な場合には、裏面のポリゴンが見えて汚い表示になってしまうことがあります。そこで、隠面は表示せず、手前側の面のみ半透明で表示するシェーダ…
Unityで簡単にTensorFlowを使ってディープラーニング(Deep Learning)したい場合は、ml-agents(Machine Learning Agents)というフレームワークを使うのが便利です。今回の記事では、ml-agentsの考え方と概要、ml-agentsを使った機械学習の方法を説明しま…
ファミコンの横スクロールマリオの挙動をUnityで作ってみました。Physicsに全ておまかせ・・・というわけにはいかず、思っていたよりも大変です(笑)ということで、今回はそのレポートを書いてみます!今回の記事では、Unityでマリオの挙動を作るのに必要な…
ゲームを作った場合、PS3やPS4などのコントローラ(その他ゲームパッド)を使って検証したいことがあります。ここではUnityでPS3のコントローラの入力を取る方法を紹介します。コントローラとPCはUSBで接続しておきましょう(Bluetoothでも大丈夫です)ワイ…
色々な方が記事にされていますが、Nintendo SWITCHのJoyConはBLE通信を使っているのでPCやAndroidと簡単に接続することが出来ます。www.taguchikun.comそこで、今回はJoy-Con(ジョイコン)とGoogle Cardboardを使ってUnityの「Survival Shooter」をVR化する…
iOSやAndroidと通信するコントローラをつくるにはBLEを使うのが定番のようですが、Unityを使う場合、下回りがややこしくなりがちです。また、BLEモジュールも安くはない(4〜5000円)ので気軽に実験、というわけにはいきません。www.switch-science.comそこ…
Unityのパーティクルには、テクスチャだけでなく3Dモデルも指定できるようになっています。tsubakit1.hateblo.jp3Dモデルであれば、1つのParticle Systemで複数種類のパーティクルを発生させる事ができますが、テクスチャの場合は基本的に1種類しか指定で…
ZBrushで作った3DモデルをUnityで動かす方法を紹介します。ZBrushからUnityにインポートする手順の大まかな流れとしては次のようになります。 ZBrushでリトポロジーを行いfbx形式でエクスポート Blenderでボーンを入れる(リギング) Unityでアニメーション…
In this article, I'd like to introduce how to use Unity by making a simple shooter game. This article consists of 3 part. move the rocket and fire bullets. drop meteorites and collision detection make UI and game over We are making the sho…
シェーダをグラフィカルに作れるツール「Shader Forge」を使って、ノイズ画像から立体的な地形を作ったり、シェーダで色をつけたりする方法を紹介します。作成する地形は次のような感じになります。Shader Forgeを使うことで、難しいシェーダ言語を覚えなく…
Unity EditorではDebug.Logはコンソールウインドウに表示されますが、Androidの実機に転送した場合、コンソールウインドウでDebug.Logの表示は確認できません。そこで、Androidの実機で実行しているアプリのDebug.Logを見る方法を2つ紹介します。 Debug.Log…
前回の記事では、シリアル通信のためのPluginを作ることで、Arduino⇔Unityのシリアル通信を実現しました。nn-hokuson.hatenablog.com今回はUniRxを使うことで、前回よりも簡単にArduinoとシリアル通信をする方法を紹介します。今回の記事の内容は次のとおり…
UnityでXcodeのプロジェクトを書き出して、いざiPhoneにインストールしようとすると、ビルドまではうまくいったのに転送の段階で次のようなエラーが出ることがあります。 Could not launch "アプリ名" Verify the Developer App certificate for your accoun…
UnityでAndroidビルドした場合、さまざまなエラーに出くわすことになると思います。ここでは、Androidビルド時に出る各エラーについてその対処法をまとめています。 Unable to list target platformsのエラー toolsフォルダを確認する toolsフォルダを更新す…
雲と言ってもゲームで使う雲には様々な種類の雲があります。地上から見上げるような雲や、コンバットゲームで使われるような平面上に描画される雲、360度どこからでも立体的に見える雲などがあります。Unityでは雲の表現にはSKyboxがよく使われるようですが…
ゲームで「地に足の着いた感」を出すには影を使うのが一般的ですが、面白い表現として足跡を使うことがあります。この記事ではUnityで「それっぽい」足跡を表示する方法を紹介します。記事の内容は次のとおりです。 ステージをセッティングする 足跡のテクス…
Unityを使えばUSBカメラやスマートフォンのカメラからの画像を簡単に取得したり、加工したりすることが出来ます。ここではUnityでWebカメラを使う方法と、取得した画像のピクセルにアクセスして画像処理する方法を紹介します。今回の記事の内容は次のとおり…
IL2CPP(ILはIntermidiate Languageの略でC#の中間言語、CPPはC Plus Plusのことです。)を使えば、C#をC++に変換してバイナリを生成するため、高速に動作させることができます(そのぶんビルド時間は伸びちゃいますけど・・・)。ここでは、Android用ビルド…