読者です 読者をやめる 読者になる 読者になる

みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Unity, Python, Processingなどのプログラミングや,脱獄, hackintoshなど

トップ / 記事一覧 / カテゴリ

Unity

Unityで2D スプライトのアニメーションを作る

Unityで2Dスプライトのアニメーションを作ろうとしていて,いまいちよく分からなかったので,分かりやすいようにまとめてみました. ここでの作業目的は,AdobeのIllustratorでアニメーションを作成し,Unityに取り込んだ後,Unityでアニメーションを自由に…

SpriteでLookAtがうまく動作しない時の回避策

Unityではtransform.LookAt(target)を使えば指定した方向を向くように向きを設定できますが,2Dのspriteではうまく指定した方向を向いてくれません (Unity 4.5.1で確認). なので,LookAtを2Dで実装して回避するスクリプトをメモしておきます. # Boo script…

Androidでジャイロを使う時の注意

UnityでAndroidのジャイロを使おうとしてハマった.どうやら,Gyroscope.enabledをtrueにしなければ使えないらしい. 最初に以下のようにジャイロを有効にして, def Start (): gb = SystemInfo.supportsGyroscope; if gb: Input.gyro.enabled = true else: …

Unityにて複数のカメラを使う

Unityでは複数のカメラを使用することができますが,上手に利用すればとても便利なので,メモしておきます. オブジェクトに印をつける デモ (マウスでドラッグしてカメラを動かします) 最初に,Cubeと印のテクスチャの2dスプライトを作成します. それぞれ…

Unityで他のGameObjectの関数を呼び出す

Unityにて他のGameObjectの関数を呼び出すには,GameObject.SendMessage()を使用します. 例えば以下のようにMain CameraのGUI.booからpersonというGameObjectのMove.booというスクリプトのRun(speed as single)関数を呼び出すことを考えます. Main Camera …

Blenderの3DモデルをUnityにインポートして使う

Blenderで作成したモデルをUnityにインポートして使用することは多いですが,軸の方向を正しく設定しないとややこしいことになってしまいます.ここではその方法をまとめておきます. 時間がない人↓ Blenderでは+X: 右,+Y: 前,+Z: 上 Unityでは+X: 右,+Y:…

Unityでprefabをスクリプトから読み込む

Unityで,AssetsにあるprefabをBooスクリプトからロードしてGameObjectを作成する方法をメモしておきます. Resources.Load(path) を使います.このメソッドはResourcesフォルダにあるオブジェクトをロードします.詳細はこちらに書いてありますが,このメソ…

UnityのWebCamTextureを使ってみた

UnityのWebCamTextureを触ったのでメモ. WebCamTexture (Reference) 使用方法は簡単で,以下のようなBoo スクリプトで動作します.devices = WebCamTexture.devices でカメラのデバイスリストを取得してから,wct = WebCamTexture(devices[index].name) と…

Macで使うUnityのテキストエディタはTextMate

MacでUnityを使う時,デフォルトのテキストエディタは付属のMonoDevelop.appとなっていますが,みー的にはBoo スクリプトを書くのに少し使いにくいと感じていました.原因は,日本語が入力できない,英数キーがスペースと認識される,起動に時間がかかる,な…

Android実機で実行中のUnityアプリのLogを見る

Android実機にて実行中のUnityアプリのLogを見るには,Dalvik debug Monitorが便利です. DebugモードのAndroid実機をMac(or PC)にUSB接続した状態で, adt-bundle-mac-x86_64-xxxxxx/sdk/tools/ddms を実行すると, みたいに表示されます.初期設定だと全て…

Unityでテキストファイルを読み書きする

Unityにてテキストファイルを読み書きする方法を紹介します. 以下のBoo スクリプトは,Application.dataPath以下にtest.txtを作成し,Hello World! by StreamWriterと書き込んでファイルを一度閉じた後,それを開いてDebug.Log()にて内容を表示する,という…

Unityの2D機能でブロック崩し

Unity4.3より導入された2D機能を使ってブロック崩しを作ってみました.マウスで操作します. こちら 更新履歴 2013.11.24 1.1.0 にアップデート ステージの追加 クリアとゲームオーバーの追加 ブロックの移動を追加 2013.11.15 1.0.0 公開 (制作時間4時間) …

Unity4.3の2D Spriteを使って素直なブロック崩しを作る

Unity4.3が少し前に公開され,2D機能が追加されたようなので,1晩でブロック崩しを作ってみました.製作時間は4時間です. 最初にUnityにて2Dを使用する方法を説明します.プロジェクトの作成画面の下部に2Dか3Dを選択する項目が追加されたようなので,これ…

UnityのTerrainにてheightmapを作成インポートする

UnityのTerrainでは地形を自由に編集することができますが,ここではPhotoshopを使用してheightmapを作成し,それをUnityにインポートする方法をまとめておきます. まずはPhotoshopにて以下のように新規作成します.ポイントは513×513にすることと,16bit G…

BooでUnityのEditorWindowを作る

EditorWindowを使用すると、Unity Editor上でオリジナルの設定画面を作成することができます。早速1つインターフェイスを作ってみました。 作ったのは、Graphics.DrawTexture()のパラメータを設定するためのものです。作ったのがこれ↓ ちなみにキャラは作成…

みーのだんご達

指示通りに だんごを並べて 串をさせ! 制限時間30秒以内に、3つのだんごを、指示された順番にお皿の上にきれいに置き、串を指してください。 だんごはドラッグで移動し、串をクリックすると串を指します。 以下の点が評価されます。 順番が正しいか 串に対…

Draw Callを減らすには

UnityでDraw Callが大きいととても処理が重くなります。Draw Callはできるだけ少なくするのがよいようです。 Draw Callの取得の仕方 Gameウインドウで、右上のStatsを押します。すると下のような情報が表示されます。これはUnity Proでなくても使用できます…

UnityのiOS, Android プラグインがまた無料に

http://japan.unity3d.com/blog/?p=1075 によると、以前は有料だったiOS, Android Basic プラグインが無料になったそうです。 Unity version3の頃も一時期無料キャンペーンがあったのですが、その時は期間限定でした。しかし今回は永久無料になったというこ…

Unity + Photon Cloud でネットワークゲーム

(追記) Photon PUN+ というのを使用すれば,以下のオチは回避されるようです.そのうち使ってみようかな.https://www.assetstore.unity3d.com/#/content/12080 2014.3.5 (注意:この記事にはオチがあります。) Photon Cloudというサービスを利用すると、ネ…

UnityでOS毎の処理を書く

Unityは多くのプラットフォームで動作しますが、プラットフォーム毎に特別な処理をしたいことも多いはずです。例えば、PCでは十字キーで操作するが、iPhoneなどのiOSデバイスではタッチパネルで操作する、というように、プラットフォームで入力方法が違うた…

みーの穴よけランニング

暇つぶしに、暇つぶし用ゲームを作ってみた。 ルールは簡単。キーボード又は画面のボタンの1か2を押してキャラクターを前に進めていく。穴に落ちるか、後ろから食べられたらゲームオーバー。何メートル進めたかを競う。 こちら 更新履歴 2013.2.4 ver 1.01 …

Unityでステレオグラム

Unityで3Dを表示するのは簡単ですが、これによりリアリティを持たせようとステレオグラム表示する方法を考えてみたので紹介します。 ステレオグラムとは? 実行例 立方体が回転する様子をステレオグラムにしています。 みーは交差法でも平行法でも立体的に見…

Unityでテクスチャを透明にする

Unityでテクスチャを透明にするには、背景が透明色のpng画像を用意して、MaterialのShaderをTransparentに設定します。 例えば、下の例ではDiffuseでは背景が白になっていますが、 Transparent/Diffuseに設定すると背景が透明になります。 ちなみにUnityのテ…

万有引力の簡易シミュレーション

万有引力を簡易的にシミュレーションするプログラムを作成しました。 こちら 使い方 初期状態では、2つの星が回っている。 Resetを押すとすべての星を削除する。 Add a plantを押すと、星が1つ追加される。 Zoon +,-を押し続けることで、拡大率が指定できる…

Unityで使える便利なメンバ変数名一覧

Unityで使える便利なベンバ変数をまとめてみました。 Unityで作成するクラスはMonoBehaviourを継承しているので、MonoBehaviourの変数がまず使えます。この変数をもとに、別のクラスのメンバ変数へアクセスすることで、ほとんどのComponentにアクセスするこ…

Unityで様々なObjectにアクセスする方法

ScriptではMonoBehaviourを継承したクラスを宣言する必要があるそうです。 http://docs.unity3d.com/Documentation/ScriptReference/index.Writing_Scripts_in_Csharp_26_Boo.html MonoBehaviourはBehaviourを、BehaviourはComponentを継承しているので、Scr…

iOS appのDebug.Log()

Unityで作成したアプリをiOSデバイスで実行した時に、Debug.Log()などのログメッセージを確認する方法は以下の通りです。 iOS deviceをMacにUSB接続する。 XCodeを立ち上げる。 Window > Organizer を開く。 サイドメニューのDevices > device > Console こ…

Inspectorでのpublic変数の表示

Unityのpublic変数はInspectorに表示され、値を自由に設定することができます。Inspectorの表示は、変数の型によって適切なものが選択されます。 数値 int, singleなどは、数値を入力するボックスが表示されます。 enum リストボックスが表示されます。 publ…

Unity4 と 以前のUnityの共存方法

Unity 4.0.0が公開されました。(2012.12.8に発見) http://unity3d.com/unity/beta/download http://unity3d.com/unity/whats-new/unity-4.0 にUnityの改善箇所がまとめてあります。 みーはiOS3.xプラグインをタダでゲットしたのですが、Unity 4で使用するに…

Unity Error List

Unityのエラーとその原因・対策をまとめています。 expecting "RPAREN", found "???". (BCE0044) Instantiate(prefab, Vector3((i*3,j*3,k*4), Quaternion.identity) のように、カッコが対応していない。エラーが出る行は大抵カッコが対応していない箇所の直…

Unityのディアクティベート

Unityのライセンス1つにつき2代のPCやMacにインストールできるそうです。 http://docs.unity3d.com/Documentation/Manual/Activation.html Unityのライセンスを別のPCに移行したり、壊れたPCのアクティベーションを無効にしたりする方法をメモしておきます。…

ボールを転がすゲーム

ボールを動かしてゴールを目指しましょう。ボールは結構重いので、操作が難しくなっています。 十字キーorジョイスティックで操作が可能です。 黒色の物体は動きます。 やりこみ要素とかは全くありませんが、Uniyでシンプルなゲームを作ろう、という目的で作…

動く床の実装

Unity開発で、しばしば困るのが、床が動く場合の処理です。主人公が動く床の上に乗ったら、床と一緒に動くようにしなければいけませんが、みーはこのように実装しました。 床が1フレームで移動したベクトルを取得する 主人公をそのベクトルだけ移動させる Bo…

iOS-touch で Unityでタッチパネルの状態を取得

iOSでタッチパネルからどのような情報が取得できるかを表示するアプリを作成しました。 上の画像のように、タッチしたところに渦マークを表示し、その右側にタッチの詳細情報を表示する、というアプリです。 http://docs.unity3d.com/Documentation/ScriptRe…

UnityでiOSのappのビルド

UnityではiOS用のappを作成する機能があります。これを利用すれば、Objective-Cなんて勉強しなくてもiOSデバイスで好きなプログラムを簡単に実行することができます。 ライセンス UnityからiOS機能を購入して、アクティベーションします。ちなみにみーは2012…

摩擦(friction)

frictionは摩擦という意味で、UnityではPhysic Materialのfrictionの値を変更することで、Objectに摩擦を持たせることが可能です。 Physic Materialの作成 はじめに、Physic Materialを作成します。Physic MaterialのInspectorにFrictionという項目があるの…

Unity4でiOSのフォントの大きさ

Unity 4では、iOSにおける、GUI.Labelなどで使用するフォントの大きさが簡単に設定できるようになったようです。 以下のGUIStyleの設定画面にて、フォントサイズを設定するだけです。Androidは実機持っていないので分かりませんが、おそらく同様の設定でうま…

ドミノ倒し

UnityのPhysics機能を仕様して作成した、ドミノ倒しです。 こちら プロジェクトファイル

UnityでSkyBoxを設定する

UnityでSkyboxの設定。 まず、デフォルトで入っているSkybox packageをインポート。 edit>Render Settings Inspector > Skybox Material>適当なskyboxを設定 するとこんな感じになって、本格的な画面になる。 (2012.6.8) (2013.10.27 Unity4 にて更新)

Meshの動的な変化

Meshは以下の情報を保持するクラスです。 点 座標 法線ベクトル テクスチャ座標(U,V) 色 tangents (みーはよくわからない) 三角形の配列 これを利用すると、物体の頂点を直接いじることができ、例えば下のテストような変形ができます。 Meshクラスの変数(一…

UnityでOpenGL

UnityでOpenGLを使う Unityで幾何学的な図形を書きたい時に便利そうなので、自分用にGLクラスについてまとめました。http://unity3d.com/support/documentation/ScriptReference/GL.htmlの翻訳とみーのコメントです。翻訳は専門用語は英語のままの意訳です。…

チューリングモデル(1次元)

Unityでチューリングモデル(1次元)をシミュレーション Unityで3Dゲームを作るのは王道なので、肩慣らしを兼ねて、Unityでシミュレーションソフトを作ってみました。Unityは描写が早いので、シミュレーションに使えるのではと考えた次第です。UnityにはOpenG…