先月からの進捗。
引き続きモンスターの動きを作っていっています。
状態異常を作ったのでエフェクトも。
あと水中のステージを作ったのでキャラの移動スクリプトいじってました。


アニメーションはUnityで作ってます。
最初はファイルサイズ比較的大きいなとか
ネガティブなイメージを持ってましたが
結構便利な機能があるので積極的に使ってます。


異なるアニメーションのブレンドも便利ですし、
アニメーションの指定フレームで
スクリプト内の関数を呼び出したり変数の値を変更したりできます。


Animatorを追加したGameObjectで、
publicの変数を持ったスクリプトをインスペクターの一番上に持ってきます。
プロパティからスクリプトの変数を選択してパラメータを変更できます。

Unityアニメーションでスクリプトの変数を操作
(画像をクリックすると大きな画像を表示します)


指定のフレームで弾を出したい等の場合、
スクリプトでpublicの関数を用意しておいて
アニメーション時間軸の下の部分を右クリック、
イベント追加で関数を選択すると実行時に呼び出せます。
※ staticな変数や関数などはAnimationからは呼び出せません。

Unityアニメーションでスクリプトの関数を呼び出し


他のゲームエンジンで困ってる方を見かけると
Unityをおすすめしたくなるけど
慣れるまでにやっぱりそれなりに時間がかかると思うのです。
でもUnity良いですよ。

テーマ:Unityゲーム制作 - ジャンル:コンピュータ

最近はステージ作りを進めております。
どんな表現ができるのか調べて思考錯誤です。


Unityで地形を作るならTerrainが比較的作りやすそう。
地面を盛り上げたり凹ませたり、
テクスチャをペイントしたり、草木を植えたりできます。

Asset Storeに公開されているデモでは、地面はTerrainを使っていて
岩や凝った地形は3Dモデルを使っているものが多い印象でした。

ただし工夫して作らないとモバイルでは重い、
正方形サイズが基本で横長にするとブラシが荒くなる、
後から空きスペースを広げることができない等、、、
結局のところ使い方次第になってくると思われます。



今回のステージ制作では、現在のところBlenderで制作した3Dモデルを使っています。
グリッド状の板を盛ったり凹ませたりしただけの簡単なものです。

Terrainのようなテクスチャペイントを3Dモデルでもやりたいと思い
調べていたらKarasuさんの記事にやりたかったことが記述されておりました。

【Maya Tips】 Mayaでの頂点カラーを使ったシェーダー調査 - Karasuのアプリ奮闘記
http://hideapp.cocolog-nifty.com/blog/2015/04/maya-tips-maya-.html


Unityなら頂点ペイントのアセットを使った方が楽そうですが、
5ドルのアセットはUnity5に対応していないようでした。
50ドルのアセットもありましたがそっちは試していません。


Shaderに手を加えたいので自前でなんとかやりたいけど、
Mayaは手を出せそうにないかも。ということで
Blenderで頂点カラーの色成分によってテクスチャを貼り分ける方法を調べました。

Can Vertex Paint Normalize Color Channels? - Blender Stack Exchange
http://blender.stackexchange.com/questions/18972/can-vertex-paint-normalize-color-channels

ノードエディタという機能初めて使いました。
使いこなすのは難しそうですが、見よう見まねでなんとかできました。

Blender頂点カラーによるテクスチャ塗り分け



Unityで同じようにやるにはShaderを用意する必要がありそうです。
Shader ForgeというAssetを使って専用のShaderを作りました。

Texture Splatting - Shader Forge Wiki
http://acegikmo.com/shaderforge/wiki/index.php?title=Texture_Splatting


Shaderの簡単な変更をちょこちょこするようになってきたのですが
小回り効かせたくても自分で一からShader作るのは難しいですし、
今後も活躍してくれそうだなと判断しまして、ついに購入。

Unity頂点カラーによるテクスチャ塗り分け

こちらも見よう見まねでやってみました。(さりげなくテクスチャ変わってます)


できることが増えてくるとやりたいことも増えてくるぞ(@_@;)

テーマ:Unityゲーム制作 - ジャンル:コンピュータ

ざぼいどさんの記事を参考にして風のギミックを試作しました。

[Unity] Rigidbodyが風を受けるようにする - ftvlog
http://ftvoid.com/blog/post/752

物陰に隠れた時に風を凌げるようにしたいという贅沢な悩みもでてきて
もう一つ、パーティクルの当たり判定を使う方法も考えました。
ただ風っぽくするには最高精度の当たり判定で
たくさんパーティクルだす必要があるので置き過ぎるとパフォーマンスの心配も、、、

他に良い方法あるかなあ、、、
どういうステージにするかによるかも。
試作したもので遊んでみてどんな活用ができるか模索していました。




操作キャラがダメージを受けた時に画面全体の
エフェクトをかけていましたが、
敵キャラ等がダメージを受けた時にも
キャラが真っ白になるエフェクトを付けました。

アクションに応じて気持ちの良いリアクションがあると楽しそうです。




植物系モンスターのラクガキ。
植物系モンスターのラクガキ

テーマ:ゲーム開発 - ジャンル:コンピュータ

Unityで制作中のゲーム、現在は本編の作り込みをしています。


先日、フルスクリーンで実行した時に
GUIのボタンが期待通りの位置に表示されているものの
判定領域だけがずれてしまっていました。
バージョンは4.6.7です。

ボタンの判定領域

ゲーム画面のサイズ設定がPCの解像度と同じアスペクト比の場合は
大丈夫なのですが違っていた場合にずれてしまっているよう。
スクリプトからScreen.SetResolusion関数を実行して
直接解像度を指定しても回避できるようです。

解像度設定

試しに他のアスペクト比の画面でも確認してみましたが大丈夫でした。
確認用に使用したパソコンはWindowsXPが入った10年前のものです。

このPCの性能ではUnityエディタでの制作は無理がありますが、ゲームは動作しました。

性能の低い動作環境では解像度やFPS(画面の更新頻度)を
下げていないと厳しいかもしれません。


今回は30fpsで動作するようスクリプトで固定にして解像度は640×480にしました。
重い処理のところはCPU100%になりましたが処理落ちはありませんでした。

昔のパソコンではノロノロで遊べる状態ではないという先入観を持っていましたが、
チューニング次第で動かすことができるのが分かって良かった。


フレームレートの固定方法はこちら
フレームレートの調整 - nocchi* ゲーム制作メモ


ヌエコさんが主人公ちゃんをラクガキしてくださったのでご紹介します。
手練習+リアナ落書き - らくがきちょう

テーマ:ゲーム開発 - ジャンル:コンピュータ

ついにUnity5が公開されて、有料版Unityでしか使えなかった機能も無料版で使えるようになりました!

UnitySample_AircraftJet2Axis.jpg

Unity5のサンプル。FPSやTPS、車や飛行機の操縦、2Dアクション等、実際開発するにあたってゲームの基礎として参考にできるシンプルなものが用意されているのが嬉しいです。



ハイエンドな最新のゲーム開発でも使われてるUnreal Engine 4も前日に無料化されたようで運営大丈夫なのかなって感じはありますが、ツール本体の売上よりもストアや広告等に収益の柱を移していくのですかね。

Unreal Engine 4の方はグラフィックの描写がものすごく綺麗なのがウリのようです。その代りそれなりのスペックが要求されるようで私の使っているPCではインストールできませんでした。



Unity5をダウンロードしてきて、Unity4.6.0で制作していたゲームプロジェクトを移行しました。そこで2ヶ所つまづいたところがありました。

まず一つ目、uGUIで配置したボタンがタイミングによって押せたり押せなかったりしました。

ここ最近Unityのアップデートをしていなかったので気付かなかったのですが、4.6.1からuGUIのCanvasに付属されるGraphic RaycasterからPriorityの項目が消されて設定したカメラから自動で優先度を決めるようになったそうです。

原因は、カメラ1つしかないけどCanvasを2枚重ねにしていた為に優先順位の制御が曖昧になりボタンが押せたり押せなくなっていた可能性が高いと思いました。

対処方法としてGraphic RaycasterをオーバーライドしてPriorityを設定することで問題は起きなくなりました。参考にさせて頂いた記事はこちら。

Unity 4.6.1でGraphic RaycasterでタッチのPriorityを有効にする - Qiita



もう一つは物理エンジンによるキャラの移動がうまくできなくなっていました。
高い所からキャラを落下させてもすごくゆっくり落ちてくる。重力値等の物理エンジンの設定見直したけど特に問題無さそう。アップデート後に新しく追加したオブジェクトは普通にすとんと地面に落ちる。

他に思い当たる項目といったらアニメーションが影響してるのかなと思い、キャラに取り付けていたAnimatorを無効にしたらすとんと地面に落ちました。

バージョンアップ後にオブジェクトへ追加したAnimatorコンポーネントはApply Root motionというパラメータがデフォルトでOFFになっていたので、元々あったオブジェクトのAnimatorも同じ設定にしたら解決しました。

Apply Root motionというパラメータはONのとき、アニメーションを使ってキャラ移動をするというもののようで4.6.0のときはデフォルトがON設定になっていたし特に不都合も無かったのですが5.0ではONになっているとオブジェクトが思うように動きませんでした。Unity上で編集できるアニメーションをいじっても動かなかったので、このパラメータが意味するアニメーションというのは3Dモデル付属のアニメーションデータのことかな。

ApplyRootMotion.gif



画面操作をアニメーションgifで貼り付けるのやってみたくて、デスクトップ操作を録画してgifファイルにするソフト入れました。

操作も簡単なのでちょっとした画面操作をブログやTwitterに貼り付けるのに良いですね。「デスクトップ 録画 GIF」等で検索したら色々でてきました。Macで使えるソフトもあるみたいです。ソフトの使用は自己責任でお願い致します。

Screen To Gif - k本的に無料ソフト・フリーソフト
LICEcap - k本的に無料ソフト・フリーソフト

テーマ:ゲーム開発 - ジャンル:コンピュータ

Powered By FC2ブログ. copyright © 2017 nocchi* ゲーム制作メモ all rights reserved.
プロフィール

nocchi*

Author:nocchi*
ゲーム制作してます。楽しみながら制作していきたいと思います。
Home Page
Twitter
Pixiv
SoundCloud

最新記事
カテゴリ
月別アーカイブ
検索フォーム

リンク
ブロとも一覧
RSSリンクの表示
QRコード

QR

ブロとも申請フォーム
メールフォーム

名前:
メール:
件名:
本文: