書籍 Unityゲーム開発 オンライン3Dアクションゲームの作り方 Unity5対応

  • 14
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

http://www.sbcr.jp/products/4797374407.html

この書籍がUnity4対応で、最近のUnity5で学習する際に気を付ける点があるかを流し読みして調べた結果を書きます。

同書を片手にUnity5を勉強していて他に困った点があれば教えてください。

先にまとめ

  • Lighting周りの設定場所が変わっているので注意
  • MaterialはLegacyシェーダーを使う
  • 古いOnGUI()を使っているが、問題は無い
  • スクリプトのUnity5対応は、自動変換任せで問題ない

以下に気になった点を章単位で書いています。

4章

EditorSettingsの変更はしておくと良い
editorSettings.JPG

shaderをBumped Specularにする

4.legacyShaders.JPG

P72, rex_player_n.tgaのimport settingsでBuminessが高いとボッコボコになるので、0.046くらいに落とす

4.p72.JPG

その他specular colorや Shinessの値は、パッと見で可愛い感じを優先したい。

light

skyboxの設定場所が変わった

4.light1.JPG
4.light2.JPG

P.84時点の絵作り(?)としてはこんな感じ
4.light3.JPG
4.light4.JPG

5章

P103
Player Position (250,0,180)だとterrainを通り過ぎる
http://www.sbcr.jp/support/12021.html
に従って

Player
50, 0 , -40

Camera
50 , 1 , -45

あたりで良いかと思う。
P104のテストも x= -30くらいを入れて試すと良い

6章

P119時点で動く事を確認する。

ここまででスクリプトの作法をちゃんと読み解いておくと良いと思う。

9章

P155 アニメーションイベントの設定
イベントの挿入位置をパーセント指定しているのは、下のアニメーションプレビューでパーセントを合わせてから赤線にイベントを移動させる。
9.animEvent.gif

P165時点でアタックさせると下記のようなエラーが出る
"Player Animation event hoge has no reciever!"

しかし、それは気にしなくても良い。

また、P170等で
Player@Attackや
Warg@Attackなどのアニメーション用FBXについて

Loop Time> LoopPoseや
RootTransformRotation>BakeIntoPose
などの設定が出てこない場合は
9.anim.JPG

Projectビューから該当アセットを選んでRigの欄の「Root node」を「Root」に設定してApplyすると出てくる。

(Dragonの場合は「CENTER_C」)

分かりにくいがP172のアニメーション確認は Assets/3D Assets/Enemy/ 内のFBXモデルではなく、prefabに作った狼やドラゴン に対して行っている.

走ったり攻撃に移るモーションがへの移行がワンテンポ遅いとき

mecanimのアニメーション遷移のhas ExitTimeチェックを外したりする。
animInterrupt.JPG

10章

この章は誤りが多いので正誤表を参照する事。

P182

■P.182ページ上部
誤:「UNIDRA_DATA/Data/MainGame/Scripts/Chapter10/HitArea.cs」
正:「UNIDRA_DATA/Data/MainGame/Scripts/Chapter10/HitArea.cs および UNIDRA_DATA/Data/MainGame/Scripts/Chapter10/AttackArea.cs」

この章以降のスクリプトはUnity5変換が走るので自動変換を行う(するとコンパイルエラーは消える)

P185 (10-2終了)時点でPlayerやDragon,WargはPrefab→Applyをしておくと良い。

また、プロジェクトに対してスクリプトの上書きをがこの章から起きるので、上書きはUnity上ではなく、エクスプローラー上で行うようにする。

P189

■P.189ページ
誤:「UNIDRA_DATA.zipの~~AttackAreaスクリプトを取り付けてください。」

正:「すでにHitArea.csと一緒にインポートしたAttackAreaスクリプトをHierarcyビューのSword01オブジェクトに取り付けてください」

P206も同様に


■P.206ページ中
誤:「攻撃を当てたらWargをHierarcyビューで選択して……確認してください。」

正:「敵に攻撃が当たると
SendMessage Damage has no receiver!
というエラーメッセージがConsoleウインドウに表示されますが、これはEnemyCtrl.csにDamage関数がまだ存在しないためSendMessageで呼び出せる関数が無いのでエラーとなっています。敵のDamge関数は11章でインポートするEnemyCtrl.csの中にPlayerCtrl.csと同様のDamge関数が実装されています。」

P207
Dragonのダメージを喰らう(Playerの剣が当たる)判定をなぜかLOWDRG(skinned mesh rendererがある)に対してコンポーネントを付加しているが、特に理由は無さそう。狼と統一感を持たせるにはCENTER_Cに付けても同じである。

13章

OnGUI()で書くようになっているので、イマドキにするならuGUIで再実装する。

正直なところ、2015年10月現在に新規でこの古いGUIシステムを学ぶ意味は無いので、この章だけは、さっさとP257まで飛んでコピペで実装してしまう方が良い。