ここからみれます。
これからUnity3Dを学ぶ人のための最初に知っておくべきこと
使ったAsset
- NGUI
作業時間
- 6時間ほど
プロジェクトの途中、いろんな環境で作業しているスタッフが混在していたり、スタッフが途中で増員すると環境が一人だけ違っていたりする事がある。特にコミットされたファイルの文字コードが違っていたりすると後で変更することは可能だが、svnのdiffが効かなくなったりblameで変遷を追えなくなる。
とはいえ、Unityで生成されるファイルはデフォルトでUtf-8なので、これ以外を使おうとする場合はコミット前に毎度確認しなければならなくなる。
そういった事態を回避する為に、予め特定の文字コードでファイルが生成されるように設定しておくと後々の不幸な出来事が無くなるのでメモしておく。
[wp_ad_camp_1]
新規に生成されるファイルは特定のファイルをコピーしただけになるので、親ファイルを特定して変更すればすべて解決する。
NewBehaviourScript.csとかjsとかbooとかshaderとかのファイルがあるのでこれを書き換えておく。
生成時にこれがまるっとコピペされるので署名等も入れておくと便利。
ちなみにこれらは3.xの場合。
ファイルは.txtとして完全にテキストファイル化している。さらに、環境変数っぽいものも使えるようで、これを駆使して様々な記述ができそうではある。
4.xについては様々な問題により調査してません。が、多分Mac版同様の構成になってると思われるので次の単語で検索すると出てきそう。
– 80-Javascript-NewBehaviourScript.js.txt
– 81-C# Script-NewBehaviourScript.cs.txt
– 82-Boo Script-NewBehaviourScript.boo.txt
– 83-Shader-NewShader.shader.txt
– 84-Compute Shader-NewComputeShader.compute.txt
※最後のファイルは何なんでしょう…。はやく4.x環境に完全以降したい!
UnityのTextAssetはiOSむけにコンパイル後、UTF-16withBOMのファイルを読み込ませてパースしようとすると、BEだろうがLEだろうがパースエラーになって落ちる。
下準備・用意するもの
やってること
※zは描画順やカメラの有効射程から外れるので無視。
bottomにすると原点が中央下部になるので、3Dオブジェクトのちょい上にあらかじめ表示が可能になる。
planeObject
に参照させるそうするとパネル内で表示物を切り替えたりするときに便利だから。
[wp_ad_camp_1]
日本語が使えるフォントと使えないフォントが入り交じっているが、表示用文字挿入カラム内に日本語を入力してフォントを選択することで、日本語フォントを内包するフォントを洗い出す事が出来る。
試用不可能な場合は画像の様に使用可能には見えなくなる。
フォント一覧カラム内をアローキーで順繰りにしていけばプレビューに日本語が表示されるので、仕様可否が判別できる。
日本語が表示可能だとプレビューが変化する。
一つ注意をするとすれば、フォントを選ぶ際は最低限の文字列で行うべきだ。プレビュー作成にけっこうな時間を要してしまう。
青空文庫のサイトで漢字の基準がまとまってUPされている。
青空文庫
ここから任意の基準の文字列をDLしてbmGlyphに記入する。
suffixを記述しないとその旨のエラーが出る。
記述してもエラーが残る場合は、bmGlyphを再起動することで回避できる。
bmGlyphで作成したテクスチャとテキストデータをドラッグしてフォントを作成する。
名前を新たにつけておく。
Create the Fontをクリックしてしばらく待つとドラッグ元にプレファブが生成される。
UILabelをアタッチしたオブジェクトに名前を入れる。
ちゃんと表示された。”晋弘”部分はフォントに無いので表示されない。
このとき、UILabelのx,yのスケールはポイントを表すので画面サイズに対して何ポイントで表示させたいかでスケールを決める必要がある。
またUILabelには文字数の上限があって、1800文字程度入力すると表示がされなくなる。
よって、規約などの文字列がおおいものを一度に表示するのではなくて、複数のオブジェクトに分けるか、WebViewを出現させるスクリプトを仕込んで別アプリケーションで対応させるなどが現実的だ。
[wp_ad_camp_1]
企業内でデバッグチームが組まれ、開発とデバッグチームが乖離している場合、バグチケットでの文章説明だけではバグの症状を伝えにくい事が多々ある。
その際は画面撮影等も有効な手段だけれども、動画が撮れるなら再現性が低いものでも確認がとりやすい。
そんな状況でiOSのキャプチャ方法はないものかとグーグル先生に聞いてみたところ、いくつか紹介されていたのでまとめておく。
元ネタはこちら
スリープボタン+ホームボタンでスクショが取れる。
けど10秒以上押すととリセットなので注意。
Screenchomp
Explain Everything
ShowMe,
Replay Note
Doodlecast Pro
Educreations
完全にネタ。
これが一番現実的かと。
Reflectorというアプリをキャプチャする側にインストールすることで無線で描画内容を取得できるようです。
Win/Mac両対応。
WinならBandicam
MacならQuickTimesで表示されている内容を保存可能。
—
[wp_ad_camp_1]
Unityのプロジェクトで日本語をコード内に記述してる事案があって、これを解消した時の構造をメモ。
staticで定義したテキストデータをKeyValue形式で保持したライブラリを複数所持するクラス。
プロパティは次に説明するXMLPlistContainerクラスで定義される。
使い方はライブラリの種類と取得したい文字列と対になっているkeyを渡すことで文字列データを取得する。
クラス生成時にファイルを読み込む。
Editor上でのみ、ファイルのタイムスタンプを参照して使用時に読み直しをする。
文字列を取得する際にはインデクサを用意して、key文字列を渡すことで得られる仕組み。
ここのファイルにkeyと対になる文字列を定義しておく。
ファイルは同名にして各国分用意する。
サンプルではアプリケーションサーバを各国で分ける前提での設計なのだけれど、各国のファイルを平行して保持したいのであれば、XMLのファイル名を国別に用意し、XMLPlistCOntainer内での読み込み時の”_default_”を、引数として受けた国名文字列と差し替える記述をすれば対応可能になる。
先日作ってみたものを公開します。
今回作るにあたっての目標は以下の通り。
でした。
メタセコイアはMac上でMikuinstaller経由で動作してます。
FBXプラグインを入れたのでUnityでも直ぐ読み込めます。
ただ、こういったものを作りまくってノウハウやデータの蓄積は大事だなと。
そして公開するという一つの区切りは、通過儀礼的な役割として非常に重要なメンタルエネルギー源になりますね。
影おちない非プロなので見栄え良くするにはシェーダいじるしか無い様で、勉強する事が常に山積みです。
—-
三宅陽一郎氏がAIに関する記事を書いたとか。楽しみにしています。
何を血迷ったかこんなエラーを発生させていた。
真上からパース無しで撮影した映像を手前に描画する。さらに描画させる座標を変える。マップ用に手順は作り直すやり方にしてるので前回の手順を無視してかまわない。
カメラを複数用意した際の設定等を参考に。
http://unity.gameenginejp.com/2010/12/2d-guitexture.html
SHADER GURU with Direct3D10/11(シェーダーを完全にマスターできる本)
検索するときのワードは気をつけようと思う。
専門家に聞く事で知り得なかった固有名詞を知る事が出来た。