おもちゃラボ

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

Unity

Unityでマリオっぽいゲームを作るのに必要な5つのこと

ファミコンの横スクロールマリオの挙動をUnityで作ってみました。Physicsに全ておまかせ・・・というわけにはいかず、思っていたよりも大変です(笑)ということで、今回はそのレポートを書いてみます!今回の記事では、Unityでマリオの挙動を作るのに必要な…

【Unity】Input Managerの使い方まとめ。PS3やPS4のコントローラの入力を取得しよう

ゲームを作った場合、PS3やPS4などのコントローラ(その他ゲームパッド)を使って検証したいことがあります。ここではUnityでPS3のコントローラの入力を取る方法を紹介します。コントローラとPCはUSBで接続しておきましょう(Bluetoothでも大丈夫です)ワイ…

【Unity】JoyConを使ってSurvival ShooterをVR化する

色々な方が記事にされていますが、Nintendo SWITCHのJoyConはBLE通信を使っているのでPCやAndroidと簡単に接続することが出来ます。www.taguchikun.comそこで、今回はJoy-Con(ジョイコン)とGoogle Cardboardを使ってUnityの「Survival Shooter」をVR化する…

【Unity】Arduinoを使ってiOS・Android用の無線コントローラを作る

iOSやAndroidと通信するコントローラをつくるにはBLEを使うのが定番のようですが、Unityを使う場合、下回りがややこしくなりがちです。また、BLEモジュールも安くはない(4〜5000円)ので気軽に実験、というわけにはいきません。www.switch-science.comそこ…

【Unity】パーティクルに複数の種類のテクスチャを使う

Unityのパーティクルには、テクスチャだけでなく3Dモデルも指定できるようになっています。tsubakit1.hateblo.jp3Dモデルであれば、1つのParticle Systemで複数種類のパーティクルを発生させる事ができますが、テクスチャの場合は基本的に1種類しか指定で…

ZBrushで作ったモデルをUnityでアニメーションさせる方法

ZBrushで作った3DモデルをUnityで動かす方法を紹介します。ZBrushからUnityにインポートする手順の大まかな流れとしては次のようになります。 ZBrushでリトポロジーを行いfbx形式でエクスポート Blenderでボーンを入れる(リギング) Unityでアニメーション…

【Unity Tutorial 】How to make a shooter game

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…

【Unity】地形作りで学ぶShader Forge超入門

シェーダをグラフィカルに作れるツール「Shader Forge」を使って、ノイズ画像から立体的な地形を作ったり、シェーダで色をつけたりする方法を紹介します。作成する地形は次のような感じになります。Shader Forgeを使うことで、難しいシェーダ言語を覚えなく…

【Unity】Androidの実機上でDebug.Logの内容を確認する2つの方法

Unity EditorではDebug.Logはコンソールウインドウに表示されますが、Androidの実機に転送した場合、コンソールウインドウでDebug.Logの表示は確認できません。そこで、Androidの実機で実行しているアプリのDebug.Logを見る方法を2つ紹介します。 Debug.Log…

【Unity】UniRxを使ってArduinoとシリアル通信

前回の記事では、シリアル通信のためのPluginを作ることで、Arduino⇔Unityのシリアル通信を実現しました。nn-hokuson.hatenablog.com今回はUniRxを使うことで、前回よりも簡単にArduinoとシリアル通信をする方法を紹介します。今回の記事の内容は次のとおり…

【Unity】iOSにアプリをインストールするときのエラー対処法

UnityでXcodeのプロジェクトを書き出して、いざiPhoneにインストールしようとすると、ビルドまではうまくいったのに転送の段階で次のようなエラーが出ることがあります。 Could not launch "アプリ名" Verify the Developer App certificate for your accoun…

【Unity】Androidビルドした時にエラーが出る場合の対処法

Unity2017.1.0f3とAndroid Studio2.3.3.0を使ってAndroidビルドした場合、次のようなエラーが出ることがあります。 UnityEditor.BuildPlayerWindow+BuildMethodException: Build failed with errors. at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.…

【Unity】テクスチャ1枚で立体的な雲を作る

雲と言ってもゲームで使う雲には様々な種類の雲があります。地上から見上げるような雲や、コンバットゲームで使われるような平面上に描画される雲、360度どこからでも立体的に見える雲などがあります。Unityでは雲の表現にはSKyboxがよく使われるようですが…

【Unity】ユニティちゃんの走った経路を足跡で表示する

ゲームで「地に足の着いた感」を出すには影を使うのが一般的ですが、面白い表現として足跡を使うことがあります。この記事ではUnityで「それっぽい」足跡を表示する方法を紹介します。記事の内容は次のとおりです。 ステージをセッティングする 足跡のテクス…

【Unity】Webカメラの画像を加工して表示する

Unityを使えばUSBカメラやスマートフォンのカメラからの画像を簡単に取得したり、加工したりすることが出来ます。ここではUnityでWebカメラを使う方法と、取得した画像のピクセルにアクセスして画像処理する方法を紹介します。今回の記事の内容は次のとおり…

【Unity2017】IL2CPPを使ってAndroidビルドする方法

IL2CPP(ILはIntermidiate Languageの略でC#の中間言語、CPPはC Plus Plusのことです。)を使えば、C#をC++に変換してバイナリを生成するため、高速に動作させることができます(そのぶんビルド時間は伸びちゃいますけど・・・)。ここでは、Android用ビルド…

【Unity】水面の表現を無料で簡単に作る

池や海などの水面を作ろうとすると、シェーダを書いたり波動方程式を計算したり大変だ・・・!というイメージがありますが、Unityを使えば超簡単に無料で水面を作ることができます 地形を作る まずは雰囲気を出すため(笑)地形を作っていきます。今回はAsse…

【Unityシェーダ入門】コントラストを調節できるポストエフェクトを作る

今回はゲーム画面のコントラストを調節するポストエフェクトの作り方を紹介します。Photoshopなどでは、スライダを動かすだけでコントラストを調整できますね。この機能をUnityのシェーダで作ってみましょう。今回の記事の内容は次のとおりです。 コントラス…

【Unity】ボタンを押したときに画面クリックは無視する

GetMouseButtonDownメソッドを使ってマウスの入力を取得していると、uGUIのボタンを押したときにも画面クリックを検出してしまいます。 ボタンがタッチされたときは、画面のタッチは無視する これでも良い場合もありますが、普通は画面のクリックとボタンの…

【Unity】Unityちゃんの注視方向をIKで変化させる

Unityではオブジェクト向きを変えるにはTransform.LookAtメソッドを使います。この場合、体ごとグルっと回ってしまって不自然なことがあります。ここではIKを使ってUnityちゃんの注視点方向を変える方法を紹介します。 Unityちゃんを配置しする Unityちゃん…

【Unityシェーダ入門】スパイクノイズを作る

スパイクノイズは、ブランドロゴのイントロとかでよく使われる感じのエフェクトです。といっても伝わりにくいので↓のような感じのものを作ります。スパイクノイズという言葉はもともとは電子回路の言葉で、スイッチをオン・オフしたときに生じるパルスノイズ…

【Unityシェーダ入門】ポリゴンをポイント(点)で表現する

Unityで3Dモデルを普通に描画するとポリゴンが表示されます。ここではポリゴンの頂点だけをポイントで表示する方法を紹介します。頂点の表示方法を変えるだけなら、なんと2行のスクリプトだけですみます。それぞれの頂点に異なる色をつける場合はシェーダを…

【Unity】uGUIの文字をグラデーションで表示する

uGUIの文字は単色で塗りつぶしたり、Outlineコンポーネントでアウトラインを描画することはできますが(あまり綺麗じゃない)、グラデーションの表示には現在のところ対応していません。そこで、uGUIの文字列にグラデーションをかけることができるスクリプト…

【Unityシェーダ】オブジェクトが重なった部分をくり抜く

特定のオブジェクトと重なった部分を透明にくり抜くシェーダを紹介します。このシェーダを使えば、次のように、好きな形で別のオブジェクトをくり抜くことができます。 オブジェクトの形にくり抜くためには 今回のシェーダの原理は非常に簡単です。まずは抜…

【Unity】シーンが遷移したことを検知する

あるシーンから別のシーンへ遷移するタイミングで何か処理を実行したい場合、シーンが遷移したことを検知する必要があります。Unity5.4からはシーン遷移にSceneManagerを使います。そして、このSceneMangerには「activeSceneChanged」「sceneLoaded」「scene…

【Unity】落下地点の座標から、放物線の方程式を求める

落下地点が決まっていて、そこに向かって弾をとばしたり、ミサイルを撃ち込みたいことがあります。落下地点から放物線の方程式を求めるのって、結構難しいんですよね・・・。ということで、ここでは、打ち出し角度と落下地点の座標を指定することで放物線の…

【Unity】バネの動きを実現する3つの方法

Unityでバネのアニメーションを作る場合、大きく分けて3つの方法があります。 Spring Joint 2Dを使う方法 Animationを使う方法 バネの挙動をスクリプトで書く方法 バネの挙動をシミューレートできるSpring2DコンポーネントはPhysicsの物理挙動に従って計算す…

【Unity】uGUIの文字を一文字ずつ別々に動かす

uGUIを使って文字列を表示するにはTextを使います。このTextを使って一文字ずつランダムに動かす方法を紹介します。UIの文字でも場所によっては動いている方が楽しいですね〜 UIのTextを一文字ずつ動かす方法 UGUIのTextはModifyMeshメソッドを使うことで、…

【Unity】Macで使えるNative Pluginを作る(OpenCV編)

UnityでOpenCVを使いたい場合は、OpenCV for Unityを使う方法と、自分で使いたい関数だけをNative Pluginとして用意する方法があります。ここでは、アセットを使わず、Native PluginからOpenCVの機能を使う方法を紹介します。UnityでOpenCVを使ったNative Pl…

【Unityシェーダ入門】画面をセピア色にするポストエフェクトを作る

今回はスクリーンをセピア調にするポストエフェクトシェーダを作ります。ちなみに・・・Wikipediaによるとセピアとはイカスミのことらしいです。 セピア(sepia)とは、イカ墨のこと。また、イカ墨由来の黒褐色をも意味する。かつてモノクロ写真などにこの色の…