テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

ユニティちゃんライブのシーン構造について軽く解説してみる

今日はユニティちゃんライブのステージ構成について説明します。

 


ユニティちゃんライブ公開!とりあえず役立ちそうな情報とか、入手方法とかまとめてる - テラシュールブログ

 

f:id:tsubaki_t1:20141109212859p:plain

ユニティちゃんのステージ構成について

 

f:id:tsubaki_t1:20141109231836p:plain

まず、初期設定でシーン構造を理解するのは相当しんどいです。

なので、ステージをエディタ上で構築出来るようにしました。ダウンロード後に適応して下さい。

これで、色々動かしながら内容を確認出来るようになります。

 

ユニティちゃんライブパッチ

11/8 音が出なかった問題を修正

※髪の毛が立つ(アホ毛みたいに)場合は、CandyRockStarのPrefabを選択した状態でRevertを押して下さい。

f:id:tsubaki_t1:20150919003422p:plain

使い方は、Stage Setup(EditorOnly)のSetupDirectorのコンテキストメニューから、Setupを選ぶとセットアップします。この方法でセットアップした場合、StageDirectorへオブジェクト参照関係がセットアップされます。

Cleanを選ぶとステージ情報を削除します。

 

f:id:tsubaki_t1:20141109234300g:plain

実際のフローとしては、以下の様な流れを想定しています。

  1. SetupDirectorのSetupでステージを構築
  2. シーン上でステージの位置を調整し、Applyで確定 
  3. コミットする前にCleanでシーンをスッキリさせる
    もしくは、そのままアプリとして出力

シーンをスッキリさせるのは、下のドキュメントでも言われている通りマージをしやすくするためです。Unity 5でマージシステムが積まれますしシーン構造もスッキリするのですが、4系だとマージしやすくするためには、こういった工夫が必要となります。

まあ、ここまでしてマージを頑張る意味があるのかと言われれば微妙ですが

 


Home · unity3d-jp/unitychan-crs Wiki · GitHub

 

もしどうしてもユニティちゃんライブ方式(ステージを再生しないとゲームが構築されない)で開発したい場合は、結合用シーンと作業用シーンを用意し、作業用シーンではプレハブ等を全配置した状態で調整し、調整したプレハブと結合用シーンをコミットする…といった形で運用するのがオススメです。

但しその場合、StageDirectorが幾つかのオブジェクトへのメッセージングを行うため、StageDirectorもしくは各オブジェクトに何らかの改造が必要です。

 

ユニティちゃんライブのステージ構造

ユニティちゃんライブのシーン構造は、大きく分けて6つに分割する事ができます。

  1. 中央でダンスするキャラクター
  2. バックスクリーン
  3. 反射する床
  4. 定期的にジャンプするカメラ
  5. 紙吹雪
  6. ステージの謎ビーム

これらはゲームの再生時にStage Directorが全て生成し、その後タイムラインでイベント制御します。具体的には、カメラの位置調整や、パーティクルのONになるタイミング、口パク等がStageDirectorのAnimation Eventで管理されています。

 

1. CandyRockStar(ユニティちゃん CandyRockStarバージョン)

f:id:tsubaki_t1:20141109213416p:plain

キャラクターの表現は、CandyRockStarLipSyncControllerCharacterLightが該当します。

 

CandyRockStarはユニティちゃんのモデル情報です。ダンスモーションの管理や、髪・胸の揺れものや手・腰の揺れものオプションを管理しています。

手を振った時に出るキラキラは、手や腰のパーツにパーティクル(Spray)付いており「動いた距離に応じて」生成しています。

 

f:id:tsubaki_t1:20141109215941p:plain

 

視点の向きはDelta Look At Axisが管理しており、「locator_Eye_R」と「locator_Eye_L」の向きを変える事で視点の方向を変更する事ができます。近づいた時にLookAtをlocatorにかけると、そっちの方向へ視点だけ向けることが出来そうです。ただし、回しすぎると白目になってしまうので角度は調整した方が良いです。

ちなみにシーンを再生中じゃないと動作しません。再生せず動かしたければExecuteEditMode。何故ついてないのかは不明です。

 

f:id:tsubaki_t1:20141109215755g:plain

 

後、多分LipsyncControllerが口パクを管理してます。内容は完全にAnimationのタイムラインで管理していますが、何がどれに該当し、どうすればどうなるのか分からないので、その内よく読みます。

 

胸や髪・その他の揺れものについては、昨日説明したのでその通りに。まさかあんなに反響があるとは…おっぱい強ぇ


ユニティちゃんのおっぱいとか髪とかを揺らす仕組みの設定方法について - テラシュールブログ

 

2.  バックスクリーン

f:id:tsubaki_t1:20141109213514p:plain

バックスクリーンは、Back Screen Camera RigとBack Screenオブジェクトが担当しています。

 

これのギミックはすごく簡単です。単純にBackScreen Camera Rigが(正確にはBack Screen Camera Rig/CameraSwitcher/BackscreenCameraが)ユニティちゃんを撮影し結果をRenderTextureへ転送、転送した画像をBack Screenオブジェクトのメッシュで表示しているだけです。*1

転送したRenderTextureの画像は、BackScreenシェーダーでノイズが付与されてバックスクリーンぽい絵として表示されます。

 

RenderTextureじゃなくても、一枚絵を表示するアイディアも良いアイディアかもしれません。RenderTextureがPro専用機能なので、こういったアプローチも有りです。

特にモバイル環境の場合、RenderTextureではなく独自の画像を定期的に差し替えるほうが見栄えが良いかもしれません。*2

 

f:id:tsubaki_t1:20141109221051p:plain

 

このカメラは、定期的にcameras_R03cameras_L03の位置をスイッチします。それでもCameraSwitcherで常にユニティちゃんの頭(Character1_Head)を見るので、ユニティちゃんを追い続けてくれます。キャラクターを差替えた場合、CameraSwitcherTargetNameにキャラクター名を指定しておくと良いかもしれません。

 

f:id:tsubaki_t1:20141109221519p:plain

 

 

3. 反射する床

f:id:tsubaki_t1:20141109213539p:plain

 

Visualizerオブジェクトが担当しています。VisualizerやMirrorReflection、Visualizerシェーダーで構築しています。

モバイルで重い場合、MirrorReflectionのTextureSizeを小さくしたりすると、大分軽くなります。後はReflectLayersを制限するとか。

反射する床はぶっちゃけ謎技術で、よくわかりません。その内解説するか、その内作った人が解説してくれると思います。彼が。


CEDEC 2014 & C86 - primitive: blog

 

丸投げ?敵前逃亡? いいえ、適材適所です。

 

4.  カメラ制御

f:id:tsubaki_t1:20141109224103p:plain

 

カメラはMain Camera Rigオブジェクト以下のオブジェクトで管理しています。このオブジェクトは定期的にStageDirectorから(Animation経由で)指示を受けるようになっています。

 

カメラの機能は概ね3つで「カメラの位置を定期的にスイッチしつつユニティちゃんを追いかけるCameraSwitcher」「画面全体のエフェクトのImageEffect」「カメラの手ブレを再現するJitterMotion」の3つです。

特に、シーン開始時の画面いっぱいの「ユニティちゃんロゴ」も、この画面全体エフェクト(ScreenOverlay)で行っています。

 

CameraSwitchについてはバックスクリーンと同じものが使用されています。違いは、顔ではなく、ユニティちゃんの胸の上のCamera Targetを追跡します。もしキャラクターを差し替える場合、適当な位置にCamera Targetオブジェクトを置いておけば、勝手に追跡してくれる寸法です。

また、CameraSwitcherの移動ポイントが結構な数登録されており、様々な角度でユニティちゃんを眺められるようになっているみたいです。

f:id:tsubaki_t1:20141109213656p:plain

 

画面全体のエフェクトとしては、以下のエフェクトを選択しています。設定パラメータ等は凄く参考になります。

  • Global Fog(フォグ)
  • Depth Of Field Scatter(焦点ぼかし)
  • Bloom(光ってる奴を輝かせる)
  • Vignetting(周囲を暗くする)
  • Antiailiasing as Post Effect(アンチエイリアス

f:id:tsubaki_t1:20141109224612p:plain

 

ちなみに、ScreenOverlayがenableになっていると、ゲームビューで画面の状態を確認するのが困難になります。で、screenOverlayはStageDirector様が勝手にONにしてくれるので、エディタで再生する前はdisableにしていても大丈夫です。

 


Image Effectの実行順番 - テラシュールブログ


Bloomで光の演出 - テラシュールブログ

 

JitterMotionはこちらをどうぞ


Unityで手ブレ風にカメラを揺らす - テラシュールブログ

 

5.   なんか沢山ちってる紙吹雪っぽいやつ

f:id:tsubaki_t1:20141109213718p:plain

Confettiが管理しています。

ぶっちゃけ中身は単なるパーティクルです。ただし、起動時にはActiveではなく、一定時間後StageDirectorのAnimation経由でアクティブになります。

Active化の方法はSendMessage経由でActivePropsをコールされる形なので、ちょっと追いにくいかもしれません。

 

これを切るととても軽くなります。

 

6.   謎ビームとか、背景とか

f:id:tsubaki_t1:20141109213749p:plain

その他、ステージの謎ビームとかその他諸々のオブジェクトです。

BackgroundやStageなどが該当します。

 

謎ビームに関してはモデルの頂点アニメーション、色の切り替えはMaterialGearとかその辺り。幾つかのパーツは挙動にAnimatorを使用しています。

 

 

とりあえず何がどれに対応し、何を見ればよいのかを解説しました。反響を見てもう少し細かく解説しようとは思います。

ユニティちゃんライセンス

このコンテンツは、『ユニティちゃんライセンス』で提供されています

 

*1:RenderTextureはカメラが写した絵をテクスチャとして書き出すって認識でOKです

*2:RenderTextureの解像度が高すぎるのとユニティちゃんシェーダーが重い為、GPUに負荷がかかる

ユニティちゃんのおっぱいとか髪とかを揺らす仕組みの設定方法について

目次

はじめに

今日はユニティちゃんの髪とか胸とか、そういった揺れものパーツを揺らすギミックについて解説します。

 

f:id:tsubaki_t1:20141108224650g:plain


ユニティちゃんライブ公開!とりあえず役立ちそうな情報とか、入手方法とかまとめてる - テラシュールブログ

 

さて使い方についてですが、ぶっちゃけユニティちゃんパッケージ付属のドキュメントに詳しく書いてあります

 

ユニティちゃんライブには付いてないかもしれません。のでUnityChanパッケージから入手して下さい。

UnityChan.unitypackageを展開後、Assets/UnityChan/Documents/unitychan_dynamic.pdfで確認出来ます。

 

f:id:tsubaki_t1:20141108230040p:plain

 

f:id:tsubaki_t1:20141108225506p:plain

 

実際細かい設定についてはドキュメント読めば多分OKなので、とりあえず設定したい人向けに設定方法を紹介します。

ただしプロ生ちゃんで。

f:id:tsubaki_t1:20141108230411p:plain

 

せっかく先日設定したんで。


プロ生ちゃんの髪やスカートをユニティちゃんの揺れものでセットアップしてみた - テラシュールブログ

 

揺れもののギミックについて

このギミックは、ricopin氏の揺れものギミックを流用して作成されています。なので、揺れものを作りたいけどユニティちゃんライセンスが嫌な場合は、ricopin氏のを使うと良いです。


Unityで揺れものを揺らす | Rocket Jump

 

このコンポーネントはPhysicXといった物理演算は実は使用しておらず、単純にバネ強度や抵抗値を元にSpringBoneでボーンを回転させるスクリプトを記述する事で揺れものを実現しています。

ボーンの回転順番はSpringManagerで制御しており、高速で動いた際にパーツが伸びるといった事を防いるみたいです。さらにUnityの物理演算を使用していないため、コライダーのレイヤー調整といった面倒でかつゲーム自体に干渉しやすい実装を回避出来るメリットもあります。

 

なお、この表現方法はアニメの乳揺れやスカートの挙動に近いらしいです。基本的に定位置にあり、ちょっとの振動でめっさ揺れて、しかし捲れないバランスという感じ。あと暴れにくいです。

 

揺れる対象の設定

まず揺れものを設定するに辺り、動いて欲しいボーンを探します。例えばスカート・ネクタイ・髪等々です。

これは実際にモデル内のオブジェクトを動かしてみて、該当するボーンを探します。例えばプロ生ちゃんのスカートは、以下のボーンが該当します。

pronamachan/root0_Arm/root/center/lower_body/skirt_0_0 等々。

 

f:id:tsubaki_t1:20141108231439g:plain

 

揺れもののパーツを見つけたら、揺らしたいパーツにSpringBoneをアタッチします。オブジェクトを選択中にInspectorタブのAdd ComponentボタンにSpringBoneと入力して追加でOKです。

 

f:id:tsubaki_t1:20141108231757p:plain

 

追加したらSpringBoneのChildの項目に「揺れものの1つ先」のオブジェクトをドラッグ&ドロップで登録します。スカートの根本からスカートの中間・スカートの先…といった感じです。

今回の場合、skirt_0_0、skirt_1_0、skirt_2_0に追加します。というか、スカート全部に追加します。

 

f:id:tsubaki_t1:20141108233353p:plain

ちなみに、Siffness Forceが柔らかさ、Drag Forceが揺れの減衰を管理しています。

通常のユニティちゃんはSiffness Forceが高く設定されており、ライブ用ユニティちゃんはSiffness Forceが低く設定されています。なのでよく揺れます(服装の違いにより揺れが分かりやすいのもあります)

 

 

大抵の場合「Hip(尻)/Spine1(背骨1)/Spine2(背骨2)/Neck(首)/Head(頭)」のような構造を持っていて、そのボーンの周りに足や手・胸や髪があります。例えばスカートはたいてい尻の下の階層にあります。

ちなみにユニティちゃんの胸ボーンはBreastとかBoobiesではなくMuneです。

しかし胸ボーンがあっても根本しか動かないのとわかりにくい服装のため、揺れてるように見えません。たぶん仕様です(スク水がききつくて揺れない、またはパットの可能性が微粒子レベルで存在。回答はディレクター次第)

 

f:id:tsubaki_t1:20141109004136p:plain

 

あと、揺れものといっても揺れる可能性のある物を全部揺らすより、先っぽだけをダイナミックに揺らしたほうが綺麗に見える事があります。ユニティちゃんARのユニティちゃんを動かした時の挙動等では、先っぽだけ動かしてます。

ユニティちゃんAR (Android)

ユニティちゃんAR(iOS)

 

揺れものの順番を制御

SpringBoneの登録が終わったら、SpringManagerを「スカートの根本」であるlower_bodyに追加します。このコンポーネントは揺れもののパラメータを指定出来るため、出来れば揺れものの素材単位で分割するのが良さそうです。(スカートならスカート、髪なら髪のSpringManager)

その後、SpringManagerのSpringBones親から順番に登録します。根本が違う場合は優先順位はありませんが、親子関係が有る場合は必ず親から順番に登録します。

これは純粋に揺れもの処理を行った際に「親から順番に処理する事で揺れものの破綻をなくす」為だと思われます。

f:id:tsubaki_t1:20141108235359p:plain

この順番を設定する機能の自動化は今やってます。正直面倒なので…

 

スカートや髪のめり込み対策

このままではスカートや髪が頭のなかや太ももにめり込んでしまうので、めり込まないようにします。

SpringBoneはCollidersで指定した範囲内には入らないようにするみたいです。なので、頭や太もものようなめり込んでほしくない所にSpringColliderをアタッチし、SpringBoneのColliderへ登録する事で、スカートをめり込まなくします。

 

SpringColliderはOffsetの値を持っていない為、太もものような棒状の場合は適当なオブジェクトを作成し、それをオフセットのような形で使用します。今回の場合、太もも(foot_L)の下にL_Leg_Collider 1のようなオブジェクトを作成して対策しています。

f:id:tsubaki_t1:20141109000847p:plain

f:id:tsubaki_t1:20141109000904p:plain

衝突判定は各ボーン毎にColliderに登録された数だけ行うので、接触しようがないBoneColliderは登録しないのが吉と思われます。また、範囲内に入って弾かれるのではなく、範囲内に入ると入らないように調整する…が挙動なので、少し大きめのコライダーを設定しておくのが良いです。

 

こっちの方法でも揺らせるみたいです。コッチのほうが綺麗?


Unityで、今すぐ簡単にできる!おっぱい揺らし!! - 銀の弾丸、はじめました

 

次回はユニティちゃんライブのステージの構造についての予定

ユニティちゃんライセンス

このコンテンツは、『ユニティちゃんライセンス』で提供されています

 

ユニティちゃんライブ公開!とりあえず役立ちそうな情報とか、入手方法とかまとめてる

f:id:tsubaki_t1:20141105231053p:plain

 

以前コミックマーケットで公開され、東京ゲームショウOculus RiftやGearVRに対応sていたユニティちゃんライブのプロジェクトが公開されました。

 


ユニティちゃん Candy Rock Star ライブステージ! - YouTube


電撃 - 独占情報!! TGSで“Oculus Rift”を体験するならユニティちゃんの“目”を見るべし!! 絶対にだ!【TGS2014】

 

プロジェクトの入手方法

 

ユニティちゃんライブのプロジェクトを入手するには、以下のサイトの「Candy Lock Starをダウンロードする」を選択後、規約を読んで同意→ユニティちゃんライブステージの右のZipでZipをダウンロード出来ます。


ユニティちゃんディレクター杯|UNITY-CHAN DIRECTOR CUP

 

f:id:tsubaki_t1:20141105231527p:plain f:id:tsubaki_t1:20141105231712p:plain

 

フォルダを展開後、以下のシーンを開くとライブシーンを確認する事ができます(ライブシーンは再生時に組み立てられる仕組みを採用しているみたいです)

unitychan-crs-master/Assets/Scenes/Main.unity

 

Unity Pro ライセンスの入手

今回ユニティちゃんライブはProの機能をそのまま使っている所があり、Unity free版では動作しない所があります。背景とか、地面の反射とか、カメラエフェクトとか。

 

 

なので、ディレクターズ杯に参加してイベントライセンス(期間限定の非商用Proライセンス)を入手します。

 

 

 

f:id:tsubaki_t1:20141105232345p:plain

ベントライセンス申し込みフォームからメールアドレスと登録ユーザー名を入力後、しばらく後にライセンス文字列が送られてきます。

 

ライセンスは以下の手順でアクティベート出来ます。

  1. Macだと「メニューバー>Unity>Manage License」 
    Windowsだと「メニューバー>Help>Manage License」を選択。
  2. Active New License を選択
  3. 入力欄に送られてきたライセンスを入力します。(T3-◯◯◯◯-◯◯◯◯-◯◯◯◯-◯◯◯◯-◯◯◯◯)

f:id:tsubaki_t1:20141105233402p:plain

f:id:tsubaki_t1:20141105233411p:plain

 

ちなみにディレクター杯は、動画で今回配布されたユニティちゃんライブを使用して「面白さ」「斬新さ」「かっこよさ」「可愛さ」を競う大会みたいです。

ニコニコ動画に動画を投稿して参加するみたいです。せっかくライセンスを貰えるので、参加するのもまた一興。

 

プロジェクトを紐解く上で役に立つ情報

今回配布されたプロジェクトですが、ぶっちゃけ読むのがちょっと大変です。なので、次回以降に機能の説明やカスタマイズ方法等を紹介しようと思いますが、とりあえず現在出てる情報を紹介しておきます。

 

Unitychan-crs

今回のプロジェクト構造のドキュメントです。目パチや表情切り替え、シーンの構造やイベント制御等を紹介しています。


Home · unity3d-jp/unitychan-crs Wiki · GitHub

 

Making of ユニティちゃんステージデモ

アニメーションのセットアップやUnity内での適応方法についての内容を紹介しています。

 

Making of ユニティちゃんステージデモ in ComicMarket 86

 

紹介サイト


Unityで使える「ユニティちゃんライブステージ - Candy Rock Star -」のプロジェクトデータが本日無料公開。同データを使用した動画投稿イベントも開始 - 4Gamer.net

 


ユニティちゃんのおっぱいとか髪とかを揺らす仕組みの設定方法について - テラシュールブログ


ユニティちゃんライブのシーン構造について軽く解説してみる - テラシュールブログ


ユニティちゃんライブのシーン構造、オブジェクト間やコンポーネント間の参照関係を解析してみる [Unity] - テラシュールブログ

 

 

「ディレクターさん、大会ですよ!大会!」

 

ユニティちゃんライセンス

このコンテンツは、『ユニティちゃんライセンス』で提供されています

UNIBOOKの電子書籍版が発売

UNIBookの電子書籍版が発売されたみたいです。

 


UNIBOOK - 達人出版会

 

内容は以下のとおり。

500円という低価格でこの文量は凄い

 

第1章 Everyplay入門

  • 1.1 Everyplayとは
  • 1.2 Everyplayのデベロッパーズサイトについて
  • 1.3 Everyplay SDK
  • 1.4 Everyplay の登録と設定
  • 1.5 Everyplayの実装
  • 1.6 ビルドして動作を確認
  • 1.7 ビルドに関するトラブルシューティング
  • 1.8 読んでおくことをオススメ
  • 1.9 まとめ

第2章 Unity Ads入門

  • 2.1 Unity Adsとは
  • 2.2 Unity Ads DashBoard
  • 2.3 Unity Ads Documents
  • 2.4 Unity Ads SDK
  • 2.5 Unity Adsの登録と設定
  • 2.6 Unity Adsの実装
  • 2.7 さらに詳しく
  • 2.8 まとめ

第3章 ゲームジャムで役立つアセット7選!!

  • 3.1 アセットストアにあるものたち
  • 3.2  まとめ

第4章 ADV作成ツール「宴」

  • 4.1 公式サイト
  • 4.2 特徴
  • 4.3 拡張予定
  • 4.4 Unity+ADVの可能性

第5章 MonodevelopのIndentWidthを強制的に4にする

  • 5.1 いろいろな面で見ずらい
  • 5.2 なぜIndentWidthが8になったのか
  • 5.3 じゃあ自動でIndentWidthが4になるようにしよう
  • 5.4 OnGeneratedCSProjectFiles

第6章 コードテンプレートでらくらく補完

  • 6.1 コードテンプレートを知る
  • 6.2 メッセージのコードテンプレートをインポートする
  • 6.3 VisualStudioとReSharper用のテンプレートもあるよ!

第7章 サクッとTwitter/Facebook/LINEにシェアする

  • 7.1 Social Connector

第8章 Spriteのパラパラアニメーションをサクッと作る

  • 8.1 UnityToolBag is 何
  • 8.2 SimpleSpriteAnimation is 何
  • 8.3 とりあえず使おう!

第9章 2D用のSpriteのTips

  • 9.1 はじめに
  • 9.2 Spriteの設定
  • 9.3 Packタグの付け方について
  • 9.4 DrawCallを下げるには
  • 9.5 Spriteを使うデメリット

第10章 データを保存する

  • 10.1 PlayerPrefs
  • 10.2 EditorPrefs(Editorのみ)
  • 10.3 ScriptableObject
  • 10.4 AssetStoreにあるデータ保存系のアセット
  • 10.5 MBaaSを使おう

第11章 スクリプトからGameObjectを作成するには

  • 11.1 空のGameObjectを作成する
  • 11.2 プリミティブなGameObjectを作成する
  • 11.3 Instantiate (複製)してGameObjectを作成する

第12章 スクリプトからGameObjectまたはコンポーネントを検索するには

第13章 Prefabのあれこれ

  • 13.1 突然ですがPrafab豆知識
  • 13.2 Prefabを作成する(Editorのみ)
  • 13.3 Prefabを更新する
  • 13.4 複数のPrefabを同時にApplyする
  • 13.5 PrefabExtension

第14章 検索バーで出来ることまとめ

  • 14.1 Hierarchyビューで検索
  • 14.2 Projectブラウザで検索
  • 14.3 フィルターで使えるコマンド一覧
  • 14.4 例:AnimatorControllerの一覧を表示したい

第15章 スマートフォンHMDで使えるジャイロカメラを作成する

  • 15.1 とりあえず使えるスクリプト
  • 15.2 やっぱSDK使おう - Durovis Dive

第16章 Syphonで映像を扱う

  • 16.1 Syphotnとは
  • 16.2 Syphon for Unity
  • 16.3 Unity (Server) -> Simple Client
  • 16.4 映像を録画する
  • 16.5 Server -> Unity (Client)
  • 16.6 最後に

第17章 SendMessageの効率的な使い方

  • 17.1 SendMessageとは
  • 17.2 SendMessageの仕組み
  • 17.3 SendMessageは遅い?
  • 17.4 実際にSendMessageはどれくらい遅いのか?
  • 17.5 SendMessageの使い所
  • 17.6 注意点

第18章 Transformで拡張しておきたいメソッド

  • 18.1 使い方
  • 18.2 実装している拡張メソッド

第19章 GameObjectで拡張しておきたいメソッド

  • 19.1 Find系に検索条件をつける
  • 19.2 Find系にBaseHierarchySortを使ってソートする
  • 19.3 Instantiateのキャストを省く
  • 19.4 タグ名を自分も含む子要素をすべてに適用する
  • 19.5 レイヤーを自分も含む子要素をすべてに適用する
  • 19.6 GameObjectExtension.cs

第20章 Monovehaviarで拡張しておきたいもの

第21章 iOSのビルド時にFrameworkを自動で含めるには

  • 21.1 予備知識
  • 21.2 PostprocessBuildPlayerでFrameworkを含める
  • 21.3 PostProcessBuildAttributeでFrameworkを含める

第22章 シーン名/タグ名/インプット名を定数で扱う

  • 22.1 typoが怖い
  • 22.2 定数を使おう

第23章 プラットフォームごとにスクリプトの挙動を変更させる

  • 23.1 Defineを使用する
  • 23.2 Conditional Attributeを使用する
  • 23.3 Application.platformを使用する

第24章 手軽に追加できるシェーダーの効果

  • 24.1 マテリアルカラー
  • 24.2 解説
  • 24.3 キューブマップ、リムライト
  • 24.4 解説
  • 24.5 アウトライン

第25章 シェーダでのアニメーション

  • 25.1 UVアニメーション
  • 25.2 頂点アニメーション
  • 25.3 注意点

第26章 シェーダーで知っておくと便利なこと

  • 26.1 vertexFlagmentシェーダーでTiling、Offsetが反応しない場合
  • 26.2 シェーダーでの描画順 Tags {"Queue"="Transparent"} について
  • 26.3 SubShaderについて

第27章 メッシュへの情報の追加とシェーダーについて

  • 27.1 モデルのインポート
  • 27.2 uv2をtangentsへコピー
  • 27.3 シェーダーの設定

第28章 Unity5での新アニメーションシステム

  • 28.1 StateMachineBehaviourの追加
  • 28.2 Animator周りのAPIが触れるように

第29章 アセットのインポート設定をまとめて変更する

  • 29.1 まとめて出来るアセットと出来ないアセット
  • 29.2 Editorスクリプトを書く

第30章 Missingを見つけるには

  • 30.1 MonoBehaviourを継承したスクリプトのMissing
  • 30.2 コンポーネントが参照しているオブジェクトのMissing
  • 30.3 Missingを探す
  • 30.4 全てのシーンをチェックする

第31章 Singletonのまとめ

  • 31.1 Monobehaviorを継承しない普通のC#のクラスの場合
  • 31.2 Monobehaviorを継承するクラス(コンポーネント)の場合
  • 31.3 改良版
  • 31.4 まとめ

第32章 モバイルでの描画速度最適化について

  • 32.1 「画面に描き込むピクセルの数」を少なくする
  • 32.2 モバイル用のシェーダを使う
  • 32.3 ドローコールを押さえる
  • 32.4 ライトとシャドウはなるべく使わない
  • 32.5 CPU負荷を減らす
  • 32.6 最後に

第33章 UnityでGit(バージョン管理)

  • 33.1 GItとは
  • 33.2 セットアップ
  • 33.3 コミットしたくないもの
  • 33.4 運用

第34章 Jenkinsでビルドのコスト(手間)を100分の1にする

  • 34.1 Jenkinsとは
  • 34.2 ビルドコスト
  • 34.3 プラットフォーム
  • 34.4 本章の対象Unityバージョン
  • 34.5 基本設定
  • 34.6 Jenkinsの設置
  • 34.7 Job、Plugin(プラグイン)の設定

第35章 LINQのススメ

  • 35.1 この章について
  • 35.2 こんなコードを書きませんか?
  • 35.3 LINQだとこんなに短くなるんです!
  • 35.4 LINQって何なの?をざっくりと
  • 35.5 LINQでコードは短く、読み安くなる!
  • 35.6 この章のまとめ
  • 35.7 おまけ。デリゲートとラムダ式をちょっとだけ
  • 35.8 ゲーム開発で使えそうなLINQメソッドサンプル集

第36章 UnityPackageにアイコンをいれる

  • 36.1 アイコン画像を用意する
  • 36.2 アイコン画像を埋め込むには
  • 36.3 UnityPackageを解凍・圧縮する

第37章 ScriptTemplatesを作成する

  • 37.1 ScriptTemplatesで使用できるパラメータ
  • 37.2 ScriptTemplatesの作成

第38章 HierarchySortを作成しよう

  • 38.1 TagSortを作成する
  • 38.2 現在何でソートされているかを知る

第39章 SerializedObjectについて

  • 39.1 SerializedObjectとは
  • 39.2 UnityEngine.Object
  • 39.3 SerializedObjectの使い方
  • 39.4 そもそもシリアライズの仕組みってどうなっているの
  • 39.5 最後に

第40章 ScriptableObjectについて

  • 40.1 独自のアセットを作る
  • 40.2 アセットのアイコンを変更する
  • 40.3 ScriptableObjectはどこで使う?

第41章 Undoについて

  • 41.1 Undoの対象
  • 41.2 Undoの種類
  • 41.3 キャンセル処理
  • 41.4 グループを理解する

第42章 AnimatorControllerとAnimationClipについて

  • 42.1 ランタイムでAnimationClipのSprite差し替えはできない
  • 42.2 ランタイムでAnimatorController自体の差し替えは可能なのか?
  • 42.3 AnimatorOverrideControllerとはなにか?
  • 42.4 AnimationClipのスプライト差し替えは可能なのか?
  • 42.5 エディタスクリプトで自動化することは可能なのか?

第43章 自作のステートマシンを作る

  • 43.1 GridWindowを作成する
  • 43.2 ステートを描画する
  • 43.3 スクロールを行う
  • 43.4 トランジションを描画する

第44章 GUIを自作する

  • 44.1 GUIを作る
  • 44.2 GUIStyle
  • 44.3 Event
  • 44.4 Control ID
  • 44.5 ObjectPicker
  • 44.6 DragAndDrop
  • 44.7 HandleUtility.Repaint
  • 44.8 GUIUtility.ExitGUI
  • 44.9 GUILayout対応
  • 44.10 最後に