【Unity】メインのプロジェクトを壊さないために別のプロジェクトを用意しておこう
なにか新しい技術や機能を試す時には、いきなりメインのプロジェクトで試すのではなく、検証用のプロジェクトを作って試すようにしましょう。万が一プロジェクトを壊してしまった時の焦燥感、やっちまった感は結構心にくるので、影響を抑えつつ検証するのがグッド。
あなたのゲームをいち早く完成させるための研究所
なにか新しい技術や機能を試す時には、いきなりメインのプロジェクトで試すのではなく、検証用のプロジェクトを作って試すようにしましょう。万が一プロジェクトを壊してしまった時の焦燥感、やっちまった感は結構心にくるので、影響を抑えつつ検証するのがグッド。
個人開発者だと、知らない用語などもたくさんあるので、ブログを使って自分の言葉で説明することで理解を整理しています。このページではインゲーム、アウトゲームの2つの用語について自分の言葉でまとめています。あなたの理解のたたき台になれば嬉しいです。
メッシュを結合することでメッシュを描画する命令を行うバッチ数が減らせます。このページではバッチ数を減らしつつ、同じマテリアルのメッシュごとにまとめる簡単なサンプルを紹介しています。マテリアル単位でまとめることで元々のマテリアルの情報を維持できるのが嬉しい点です。
メッシュを結合する場合はインデックスバッファが16bitに達するとうまく結合してくれないんですよね。大量のメッシュを結合する場合はインデックスバッファのフォーマットを32bitに変更しておくと上限に引っかかることも少なくなると思います。
CombineMeshesを使ってメッシュを結合するサンプルを紹介しています。このページではパーリンノイズを使ってなだらかな地形を作成して、それらのオブジェクトのメッシュをまとめています。メッシュを結合することでどれだけパフォーマンスの負荷が軽減されるのか確認するのも勉強になりますね。
UnityではMathfクラスにPerlinNoiseメソッドというパーリンノイズを扱うことができるメソッドがあります。このメソッドを使ったサンプルとして、オブジェクトをインスタンス化する高さについてパーリンノイズを使って、ランタイムでなだらかな地形を生成してみます。なお、実際に使うにはパフォーマンス面で辛いので調整が必要です。
パーリンノイズ(Perlin Noise)を使う機会はたびたびありましたが、パーリンノイズそのものについての理解を深めようと思いちゃんと調べてみることにしました。実際にコードをかいて値を取得してみると面白いですね。色々と使いやすいノイズです。
MathfクラスのClampメソッドとClamp01メソッドは個人的に地味に使う機会の多いメソッドなので、ついつい紹介したくてこのページを書いてしまいました。数学的計算がたくさんできるMathfクラスはワクワクしますね。
Mathfクラスはリファレンスを眺めているだけでも色々と便利なメソッドがあってワクワクします(理系脳)数学というと敬遠してしまうこともありますが、プログラミングでは答えを見ながらコーディングできちゃうので、恐れることなく使ってみると案外楽しいかもしれません。このページではサイン、コサインを使った超シンプルなコードを紹介しています。
ゲーム開発を含む創作活動では、続けることで技術が高まっていきますし、自分が実現したいことをどんどん実現できるようになります。ただ、続けるのがいいと分かっていても中々それができないのが人間なんですよね。
この記事は「あーあるある」と割と軽い気持ちで読む感じの記事です。休日などに作業をする際、想像していたより作業が進まなかったり、そもそも別のことをしてしまうことも。もしかしたら単に疲労が溜まっているというのもあるので、自分のコンディションも確認するといいかも。
自由に使える時間が多くなるほど、本来やりたいことに割くべき時間が少なくなってしまう気がします。そこでいっそ時間割を決めてしまってその通りに動いた方が作業が進んだりすることも多いんです。何をやって、何をやらないかを事前に決めておくと当日迷いがなくなって使える時間が増えます。
UnityでAndroid向けにゲームアプリをリリースしようとする時に見かけるAPIレベルについてOSのバージョンやSDKのバージョンとの関連を整理しています。ストアでリリースする際の要件にも関わってくる部分なので調べておきたい部分です。
ゲーム作りではテストに割く時間は大きなものです。その中でも正常系のテスト、異常系のテストの両方をやっておく必要がありますが、この異常系のテストは個人的に大変だと感じています。大変であってもやっておくことでゲームの安定性が向上します。
Unityで使用しているAndroid SDKのパスと、Android Studio側で使用しているAndroid SDKのパスが異なる場合、どちらのパスを使うのか確認するダイアログが表示されます。個人的にはエクスポートしたプロジェクトでビルドするかどうかでどちらのSDKを使うか決めています。
UnityでAndroid向けビルドを行う場合はマニフェストファイルを自動的に作成してくれます。直接apkファイルを出力する場合は目にする機会がないこともあるので、apkファイルに含まれているマニフェストファイルについて簡単に紹介します。
Unityで作ったゲームをAndroid向けにビルドする時にはGradleというオープンソースのビルドシステムを使います。ビルドする際はUnityがいい感じにやってくれるのであまり意識することも少ないかもしれませんが、自分でカスタマイズしたGradleのテンプレートファイルをUnityで使って自分用に最適化することもできるので知っておくとAndroid向けの開発がさらに楽しくなります。
このページではAndroidビルドで見かけるJDK、SDK、NDKのワードについて簡単に解説しています。ざっくり言えばUnityでAndroid向けにアプリをビルドするために使うツールです。Unityで、というよりはAndroidアプリそのものを作るときに使うツールの方が近いかも。似たような名前が並んでいるので、省略前の名前を意識すると頭に入りやすいかもしれません。
自分のメンタルの状態を把握するのはとても大切です。同じ言葉を聞いたとしても、メンタル次第ですんなり心に入ってくることもあれば、抵抗感を持ってしまうこともあります。相手が発信してくれた良いヒントになる言葉はなるべく受け止められる状態の時に取り入れるようにするとグッド。
このページではUnity製アプリをAndroid向けにビルドする際にx86を選択できなくなったことからAndroid Studioのエミュレータを使ってのテストは難しいかも……という点を紹介しています。普通にAndroid StudioでAndroid用アプリを作る場合はエミュレータも使えるのでご安心ください。あくまでUnityの話です。