おもしろいもの、やくにたつもの を かきこむのだ!

Unity

タイムラインアニメーションで同じ階層に同じ名前のGameObjectがある時の話

警告が出る ヒエラルキービューで上のものにアニメーションが適用される

はじめてUnityを触る人にオススメのサイト

Unity workshop for video game art @ tama art university 動画付きで説明されるので分かりやすい。

Projection : Perspective で設定されたCameraの描画領域を計算する

Projection : Perspective で設定されたCameraの、ある距離でのカメラに映る領域を知りたいことがあるかと思う。 画面内/外に入った/出た という条件を入れたい時など。 Unityの公式リファレンスにやり方があったので、それを参考にするといいよ。 docs.unit…

Unity Japanに作ったゲーム取り上げてもらった

以前作った、SWISH!がUnity Japanに載った! Unity NEWS – Android / iOS 向け Unity タイトル『SWISH!』配信開始 japan.unity3d.com ツイートもしてもらえた! [Unityニュース] Android / iOS 向け Unity タイトル『SWISH!』配信開始 #unity http://t.co/fr…

UnityのHierarchy内のTransformのパスを返す拡張関数作った

Unityでゲームを作っているときに、 「実行中にHierarchy内のTransform(GameObject)のrootからのパスを知りたい」 ということがあったので、拡張関数作った。 Unity Transform's path extension. 多分、他にも作っている人いるんじゃないかな...と思いつつも…

UnityでSWISH!という2Dアクションスマホゲームを作りました

1週間ほど前になりますが、SWISH!というスマホ向けのゲームをリリースしました。 2Dジャンプアクション + Angry Birdsライクなカジュアルゲームです。 ダウンロード SWISH!Takashi Satoゲーム無料 SWISH! - Google Play の Android アプリ 開発について 細か…

Unity: n秒後のRigidbodyの移動先の位置を取得するスクリプト書いた

Unityでゲームを作っていると、 「このボールの落下位置を知りたい」 「この矢の軌跡を計算したい」 という感じで、n秒後のRigidbodyの移動先を知りたい というケースが結構あると思う。 自分も同じケースに遭遇したので、n秒後のRigidbodyの移動先の位置を…

Inspectorで配列を扱う時は要素のNullチェックを"絶対"入れるのだ!!

UnityのInspectorでGameObjectやTransformの配列を設定することがあると思うが、 その際は絶対に要素毎のnullチェックを入れるんだぞ!!という話。 というのも、シーンのちょっとした変更や、スクリプトの改修、参照先のオブジェクトの変更などで、配列の要素…

【Unity Advent Calendar 2014】git subtreeを駆使して最強のUnityゲーム開発環境を作るぞっ!!

この記事はUnity Advent Calendar 2014の参加記事です。 Unityでゲームを作っていると 「前に作ったゲームの機能を新しく作るゲームでも使いたい!!」 「コンポーネントのバグを直したから他のUnityプロジェクトにも反映したい!!」 ということがあるかと思い…

Unity UIの「ReferenceResolution」が「CanvasScaler」に変更されていた

ちなみに uGUI で想定解像度を指定して動かすには、ReferenceResolution をアタッチするのです。そうすりゃ画面サイズを変更してもUIサイズが変わらない。— 椿 (@tsubaki_t1) 2014, 8月 31 というわけで、CanvasにReferenceResolutionをアタッチしてゲームの…

Unity上でムービーの作成ができるアセット「Cinema Director」が良さ気!

Cinema Directorという、Unity上でムービー(みたいなもの)の作成できるアセットが良さそう。 デモムービーを見ると機能の概要が分かる。 Cinema Director - Visual Editing for Unity - YouTube Unityのシーン内のCameraやGameObject、キャラクターを組み合…

UnityでNullPointerExceptionが出そうなところはtry-catchじゃなくちゃんとnullチェックしよう!っていう話

今日、Unityでゲーム作ってた時の話。「このあたりNullPointerException出そうだからtry-catchでくくるか…」って感じでコード書いたら、それダメーっ!って言われた。— たかっしー☆タカシカンパニー非公認キャラ (@takashicompany) 2014, 10月 1 なんでも、t…

静的コンストラクタという選択肢[C#/Unity]

今日、Unityでゲーム作っていたら、静的コンストラクタというものを知った。 平たく言うなれば、 最初のインスタンスが作成される前、または静的メンバーが参照される前に、静的コンストラクターが自動的に呼び出されてクラスを初期化する というものだ。 Un…

UnityでColorとVector4に互換性があるっぽい

最近知ったことですが、UnityのColorとVector4は互換性があるようです。 ドキュメントはこちら C#のドキュメント.aspx)にも書いてあった。 使いどころがあんまりイメージつかないが、知っておくと困ったときに便利かも?

Unityで「2DのSpriteのPivot(基準点)が反映されない…」というあなたへ

Unityの2D SpriteのPivotを設定したのに、反映されない…というケースで困ったあなたへ。 例えば腕の形をしたスプライトを書き出して肩のところに基準点をつけたけど、関節の部分ではなく、スプライトの中央が回転軸になってしまうことがある。 解決方法 Spri…

ドット絵の3Dモデルを作ったので、そのままUnityにインポートしたらUnityが死んだ話

前に作ったドット絵の3Dモデルを、「リトポせず各ドットをボックス(Cube)で書き出してBoxColliderつけたら、いろいろ面白いゲーム作れるのでは?」と思って試したら、そもそもUnityエディターが重くて動かなかった話。 前に作ったドット絵の3Dモデルを、最適…

C#の??演算子が便利すぎる

??演算子が便利なことに気づく。 今まで、nullチェックして初期化されてなかったら、newして...みたいなことをやってたけど、??演算子を使うと、1行で書ける。 以前の例も間違いではないけど、コードがすっきりするから??演算子便利。

Unity4.6 Unity UI (uGUI)のCanvas内で表示順(重なり)を調整する

Unity UI(uGUI)のImageやTextの重なり順は、Hierarchyビューで下に列挙されたものほど、表示順(重なり)が上になる。 Hierarchyビュー内のTextとImageの順番を入れ替えると、表示順も入れ替わる 親子の関係もなく、Hierarchyビュー内で下に列挙されたものほど…

Unityで物理エンジン使ってゲーム作るときに、素材のUnity単位での大きさを決めておかないとヤバい

Unityで物理エンジン使ったゲーム作るとき、Unity単位と2Dのスプライトや3Dモデルの大きさを意識してデザインしないとダメだ。Unityエンジニアがそれを把握するのは当然として、素材作るデザイナーもそのことを把握していないといろいろと破綻して死ぬ。— タ…

Unity 4.6 Betaのドキュメントはどこに?

Unity 4.6のNew GUIのドキュメントってどっかにないんか。— タカシカンパニーの奇妙な冒険 (@takashicompany) 2014, 8月 24 と思ったら、4.6betaの中のドキュメントに入ってた— タカシカンパニーの奇妙な冒険 (@takashicompany) 2014, 8月 24 Googleで検索し…

Unity4.6 Unity UI (uGUI)のまとめ : Canvas

Unity 4.6のBeta版が公開され、念願の"uGUI"がお披露目となりました。 今日はCanvasについてのまとめを書きます。 Canvas UIを表示するコンポーネント。(NGUIでいうUIPanelに相当する) Canvas毎にドローコールが増える。(ドローコールが4のCanvasが2つある…

UnityでiOS向けにアプリアイコンやスプラッシュを設定する

ブログ、めっちゃ放置してた。 UnityでiOS向けにアプリを開発する際にアプリアイコンやスプラッシュを設定する場合は、 File > Build Settings > Player Settings... > 「Icon」 「Splash Image」で設定できる。 アプリアイコンをサイズ別に設定する ↓で設定…

UnityのプロファイラーをiOS端末につないで負荷をチェックする

Unity4.5から、USB経由でプロファイラーを使用できるようになった(iOS)ので、使い方をまとめた。 プロファイラーをiOS端末とつなくことで、実機でゲームを動かす際に、どのタイミングでCPUに負荷がかかるか、メモリが使用されるのかといったことが、簡単に分…

Unityでコールバックを使わずに他のオブジェクトの処理の完了を受け取る

UnityでAというオブジェクトが、別のBというオブジェクトのアニメーションや処理が終わったことを知りたい場合は、 C#のDelegateを使う AとBが相互に参照しあうようにして、BがAに完了を伝える という手段が挙げられる。 コールバックという方法ですね(たし…

UnityのInstantiate関数の速度を検証する

Instantiate関数でGameObjectを生成する際に、Prefabを元に生成するより、事前にSceneに配置したGameObjectを元に生成したした方が動作が早いという話を度々聞くので、本当に早いのか検証してみた。 結論から書くと Scene内に配置したGameObjectをInstantiat…

Unityでスクリプトを使ってアニメーションを作る

Unityでアニメーションを作る場合、 Unityのタイムラインアニメーションエディターで作る スクリプトでアニメーションを作る Blenderなどで作ったアニメーションをインポートする という方法が挙げられるかと思う。 今回は、スクリプトでアニメーションを作…

Unity開発でコード整形ルールを設定・共有する(MonoDevelop / Xamarin Studio)

Unityでゲームを開発する際に使うエディターと言えば、 UnityにビルドインされているMonoDevelopか、Xamarin Studioが主流になる。 MonoDevelopとXamarin Studioは、コード補完機能で自動でコード(の一部)を生成するが、個人の好みやプロジェクトのコーディ…

Unityでお手軽にTwitter・Line投稿機能をつくる

ゲームを作っていると、ソーシャルメディアと連携させたいということが結構あると思う。 ゲームの招待IDやスコアをポストしたり…といった感じで。 TwitterとLineへの投稿なら、お手軽に下記のコードでできる。 どちらも、文字のみの投稿となる。 ちなみに、F…

UnityのLayerMaskをビット演算なしで使う方法

UnityでLayerMaskを使う場合、下記のようにビット演算でLayerMaskを指定するケースがある。 ただ、自分なんかはビット演算ができないので、InspectorでLayerMaskを指定して使うをということをやります。

UnityでPrefabをInstantiateする時のGameObjectのActiveについて

UnityでUnityでPrefabをInstantiateをするときに、元となるPrefabのActiveがfalseだと、Instantiateしてシーン内に配置されたGameObjectのActiveもfalseになるようだ。— タカシカンパニーの奇妙な冒険 (@takashicompany) 2014, 6月 15 「生成時は非アクティ…

UnityのSceneをテキストエディタで開く

UnityのSceneファイルはテキストエディタで開くことができる。 実際にシーンをテキストエディタで開いてみる 上記のシーンファイルをテキストエディタで開くと、こんな感じ。 YAML形式で保存されており、人が実際に読んでシーン内の構造を見ることもできる。…

Unityの実装ノウハウがまとめられているスライド

「宴」実装時に得られたUnityプログラムノウハウ from Ryohei Tokimura Unityでゲームを作る際のノウハウがまとめられた資料。 かなり実践的な内容になっているので、一度目を通しておくと良いと思う。

foreachでGameObjectの子オブジェクトを走査する

あるGameObjectの子オブジェクトを一括で取得、走査する際に、foreachを使うと手軽にできることを知った。 foreach (Transform child in gameObject.transform)で ... めっちゃ便利やん!って思ってたら、ドキュメントに思いっきし載ってた。

UnityでInspectorで値を指定する際にRangeAttribute使う

Inspectorで値いじれると、人にUNity教えたりする時に教えやすいし、ゲームに支障をきたす範囲があるならRangeAttribute使えばいいから、Inspectorは便利や!!— ぴーちん (@p_chin) 2013, 9月 3 昔のFavツイート見てたら、UnityのInspectorの話が出てきた。…

2D上でロープの挙動を再現したUnityアセット

2D Rope SystemというUnityの2D物理エンジンでロープの挙動を再現できるアセット。 ムービーとサンプル見る限りだと、ロープを貼るだけでなく、切ったり伸ばしたりできるっぽい。 2Dのアクションゲームを作るのに便利そうだ。

久々にアイコン描いた

久々にアイコン描いた。 最近、ジョジョのアニメ見始めておもしれ〜ってなったので、承太郎をモチーフに。 Photoshopでだいたい2時間くらいかかった。 ツイッターで使おう。 アイコン新しく描いた!!!— タカシカンパニーの奇妙な冒険 (@takashicompany) 20…

Flashアニメーター向けのUnityアニメーションエディター見つけた

Flashでアニメーションを作ってた人が、Unityでアニメーションを作ろうとすると、 「Unityのタイムラインアニメーションは○○できないのか…(´・ω・`)」っていう感じで悲しい顔をされることが結構ある気がする。 SmoothMovesやSpriteStudioといったアセットや…

UnityでPrefabの中に別のPrefabを配置しても同期ができるアセット

たまたまAssetStoreを開いたら、目についたアセット。 Nested Prefab 実際に使っていないので、細かいことは分からないが、 「PrefabにネストされたPrefabの参照を保持して、更新がある場合は、ネストされたPrefabも同期される」 というものらしい。

UnityのScene内のGameObjectを共通化する際に気づいたこと

Unityでビュー作る時、似た機能のコンポーネントに対して、interfaceで共通化を図るより、継承を使った方がいいのかな。 継承だと、画面クラス => 共通化クラス => MonoBehaviour って感じでMonoBehaviourの関数とか変数使える。— Sato Takashi (@takashicom…

Unityで空のフォルダをOpen Projectする

Unityでプロジェクトを作る際は、Create New Projectを選択して、プロジェクトのフォルダとプロジェクト名を設定して…というフローが一般的(多分)。 既存の空のフォルダをUnityプロジェクトのフォルダにしたいということもあるので、今回はその方法について…

UnityのDebug.Logの内容を自作のクラスで取得する

Unityのログの内容を自作クラスで取得したい場合、Application.RegisterLogCallback関数を使用すると、ログ(UnityEngine.Debug.Log等)を自作クラスで取得することができます。 Application.LogCallBack(デリゲート)に対応した関数をApplication.RegisterLogC…

UnityのGame ViewにLogを表示するツールつくった

Unityでゲームやアプリを開発している際に、エディター上では問題なく動作しているが、 iOSやAndroid端末で実行するとエラーになったり、クラッシュしたりというケースがあるかと思います。 Xcode(iOS)やLogcat(Android)を使ってログをチェックすれば、原因…

UnityのConsoleをGame Viewに表示するAsset

Unityエディターで、デバッグする際はConsoleビューでログを確認することができるが、iOSデバイスやAndroidデバイスだとログの確認がしづらい。 端末をPCにつないで、Xcode(iOS)やLogcat(Android)を使えばログをPC上に表示することもできるが、いまいちめん…

モテないので3Dモデルで秘書を作って仕事場(Unity)に連れ込んだ

Autodeskから、無料で人型の3Dモデルを作れるAutodesk Project Pinocchioというブラウザアプリが公開されていたので使ってみた。

Unity 4.3 2D Spriteの使い方:スプライトアニメーションを作ろう

Unity4.3から2Dがサポートされたことにより、スプライトアニメーション(コマアニメーション)も追加された。 今回はスプライトアニメーションの作り方についてまとめた。 サンプルの.unitypackageはこちら。

Unity 4.3 2D Spriteの使い方:TextrueとSpriteのパラメーターについて

Texture(Sprite)とSprite(Sprite Renderer)のパラメーターについてザッとまとめた。

Unity 4.3 2D Spriteの使い方:スプライトをシーンに配置しよう

Unity4.3から公式で2Dをサポートするようになった。これで2Dのゲームが作りやすくなりそう。今回は手始めに画像をUnityにインポートしてシーンに配置することをやってみた。

Unity4.3とUnity2DとNew Unity GUIの話

第7回テックヒルズに参加してUnity4.3とUnityの2Dの話を聞いてきた。 ポイントとなるところをざっくりまとめた。 スライドはこちら。

2時間で3Dモデルを作ってUnityでアニメーションさせた

Unity x 3Dでゲームを作れるようになりたい!という願望がでてきた。今回第一歩ということで、3Dモデルを作ってUnityでアニメーションさせるということをやった。

UnityのEditorスクリプトでアプリアイコンを変更する方法

UnityのEditorスクリプトで、プロジェクト内のフォルダから取得したアプリアイコン画像を設定するコード。 プラットフォーム毎、開発版/リリース版でアプリのアイコンを切り替えたいという時に使うと良いかも。