スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Unity5が公開。無料版でもプロ版の機能が使用可能に

いつのまにかUnity5が正式公開されていた。

Unity公式サイト
unity5.jpg

Unity4からの違いは、いくつかの機能の追加や、APIの仕様が若干変更されているようだが、
無料版を使うユーザーにとって大きく変わったは、プロ版でしか使えなかった機能が無料版でも使えるようになったことだろう。

Unity4以前の無料版では、Movie Textureなど、いくつかの機能が制限されていて残念な思いをしたが、それもなくなった。
これで無料版を使うユーザーでも、オープニングムービーを作ったり、キャラクターを動画で動かしたりできる。(そこまで使い込む無料版ユーザーがどれ程いるか分からないが。)

さすがにスプラッシュ・スクリーン(起動時のUnityロゴの表示)の変更は無料版ではできないが、それ以外のゲーム開発の部分ではプロ版との違いはほとんど無くなったと言える。

最近では「Unity」に対抗して、「Unreal Engine」も無料化されたが、こちらは色々とライセンス契約が面倒くさそうなので、無料版を使うなら、今のところ「Unity」以上に優れたゲームエンジンは無いと思う。
スポンサーサイト

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

制作中に気づいた事の断片的メモ

Resources.Loadの使い方


Resourcesフォルダ下に置いたtexture/sprite/prefab等のファイルを読み込める。

Resources.Load<読み込むファイルの型>("読み込むファイルの相対的パス");
(例)
Resources > Sprites > sample.png を読み込む。
Resources.Load<Sprite>("Sprites/sample");

指定するパスは拡張子までは含めなくて良い。

Resources.Load("Sprites/sample") as Sprite;
のようにしても読み込めるはずだが、なぜか失敗する。
失敗するとNullを返す。

Unityで日本語フォントを使う

Unityは標準で "Arial" という欧文用フォントを使用できますが、これをそのまま使うのは問題があります。
実際に漢字を幾つか表示させてみると分かりますが、中国語っぽい漢字になったり、環境によっては表示されなかったりします。
その為、Unityで日本語テキストを表示させる時は必ず日本語フォントをAssetに追加して使用するようにした方が良いでしょう。(日本語テキストを使わない場合でも、Arialは余り綺麗なフォントとは言えないので自分で別のフォントを追加すべきです。)

Arial(標準フォント)とM+ FONTS(日本語フォント)の比較


↓Arialでの漢字表示例
alial.jpg
↓M+ FONTSでの漢字表示例
antique.jpg

Unityに日本語フォントを追加する


Unityで日本語フォントを使えるようにする方法は簡単です。
imageやmaterialを追加するのと同じようにAssetにフォントファイルをimportするだけで使えるようになります。
フォントファイルは一般的なTrueType Fonts( .ttf .dfont ) OpenType Fonts (.otf)の2種類に対応しているので、特に迷うことは無いと思います。

日本語フォントをゲームに使用する際の注意点


フリーフォントや無料フォントを謳っている日本語フォントはインターネット上に無数にありますが、
そのほとんどはゲームでは使えません。
問題点は2つあります。

まずはライセンスの問題です。
ダウンロードして個人的に使用するのは認めていても、ゲームに同梱して使用すること(再配布)は認めていない場合が大半です。

そしてもう1つは漢字が収録されていないフォントが多いこと。
常用漢字だけでも数千字ありますから、個人で作ろうと思えば果てしない労力を費やすことは目に見えてます。
アルファベット26文字を作れば使える欧文用のフリーフォントは無数にあるのに、日本語のフリーフォントが数少ないのも収録文字数が多すぎるせいですね。

この為、漢字もしっかり収録した日本語フォントはほとんどが有料で販売されています。
しかし、極僅かですがゲームにも使える無料の日本語フォントもあります。

M+ FONTS及び派生フォントを使おう


M+ FONTS
http://mplus-fonts.sourceforge.jp/


M+ FONTSはかな文字と記号類、漢字の約 7,000 文字を収録した無料の日本語フォントです。
ライセンスもかなり優しく、改変、商用利用、再配布なども認められています。
変な自分ルールの押し付けとかも無いので、安心してゲームに使用できます。

また、M+ FONTSを利用して制作、公開されている派生フォントも数多くあるので、デザインに拘る人にはオススメです。
それらもM+ FONTSと同様にゲーム制作など自由に使えるライセンス形式で公開されていることが多いです。

GL-アンチックPlus
http://gutenberg.sourceforge.jp/ja/license.html


漫画の吹き出しなどによく使われるアンチック体のかな文字にM+ FONTSの漢字を合成したフォントです。
ライセンスはM+ FONTSと同じです。

ロゴたいぷゴシック-コンデンスド
http://www.fontna.com/blog/1345/


ロゴデザイン、タイトルロゴ、見出し等に使いやすいデザインのフォントです。
ライセンスはM+ FONTSと同じです。

やさしさゴシックボールド
http://www.fontna.com/blog/736/


手書き風の優しい印象を与えるフォント。
ライセンスはM+ FONTSと同じです。


もう1つ、漢字が使える無料の日本語フォントとして有名なIPAフォントというのがありますが、かなり細かいライセンスが定められているので、ここでは紹介しません。

テーマ: プログラミング | ジャンル: コンピュータ

UnityでFPSを設定する方法

Unityのデフォルト設定では、実行環境によってFPS(フレームレート)が自動で調整されるようになっている。
(スタンドアローンのゲームでは可変フレームレート)

移動などの処理には Time.deltaTime (前のフレームから今のフレームまでの時間)を掛けて
可変フレームレートで開発するのが良いらしいが、設定でFPSを固定することもできる。

Quality Settingsで垂直同期を変更


まずはUnityのメニューから"Edit"→"Project Settings"→"Quality"を選んで、
インスペクターから"VSync Count"の項目を変更する。

デフォルトでは"Every VBlank"(垂直同期)が設定されており、モニタのリフレッシュレートに同期されている。
(60Hzのモニタを使用なら60FPS、90Hzのモニタを使用なら90FPSとなる)

他に、ドロップダウンメニューから"Every Second VBlank"(垂直同期の半分)と"Don't Sync"(垂直同期無し)があるので、
FPSを固定する場合は"Don't Sync"(垂直同期無し)を選ぶ。

Application.targetFrameRate


static int targetFrameRate;

Application.targetFrameRateに数値を入れることで目標FPSを自分で設定できる。
デフォルトでは-1。(スタンドアローンでは可能な限り早く、ウェブプレイヤーでは50~60FPS)
垂直同期無しに設定して、パブリッシュしないとコードを書いても反映されないことに注意(エディター上でゲームを再生しても反映されない。)

(例)
void Awake() {
Application.targetFrameRate = 60; //60FPSに設定
}

テーマ: プログラミング | ジャンル: コンピュータ

Unityで入力情報を取得する方法

Input.GetAxis


static float GetAxis(string axisName);

引数に "Horizontal"<水平> または "Vertical"<垂直>を指定すると、-1~1の間の実数がfloatで返ってくる。

(例)
float translation = Input.GetAxis("Horizontal"); //左右キーの情報を取得
translation *= Time.deltaTime; //フレーム単位で移動するように調整
transform.Translate(translation, 0, 0); //水平方向に移動

Input.GetAxisRaw


static float GetAxisRaw(string axisName);

Input.GetAxisとほぼ同じだが、返ってくる値が-1、0、1のどれかになる。

Input.GetButtonDown


static bool GetButtonDown(string buttonName);

ボタンが押された瞬間にtrueを返す。(ボタンの押しっぱなしに対応できる)

(例)
bool fire = InputGetButtonDown("Fire1");

buttonNameの設定方法


Unityのメニューから"Edit"→"Project Settings"→"Input"を選んでインスペクターで設定する。
初期状態では"Horizontal" , "Vertical" , "Fire1" , "Jump"など18種類が設定されているが、
例えば右ボタンが押された瞬間と左ボタンが押された瞬間の処理を分ける場合などは自分で設定する必要がある。
("Horizontal"は初期状態では左右キー両方に反応する)

Input.GetButton


static bool GetButton(string buttonName);

ボタンが押されている間、常にtrueを返す。

Input.GetButtonUp


static bool GetButtonUp(string buttonName);

ボタンを話した瞬間にtrueを返す。

テーマ: プログラミング | ジャンル: コンピュータ

Page top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。