Unity Package Installer
npmベースでUnityのパッケージを管理するツールを作りたい
yarnでもいいかな?
UPMと名前がかぶりそうだから変えておく
UPIという名前のnpmモジュールがあったのでupkに名前変更
.unitypackage
はUnityがパッケージ配布用につかうフォーマットUnity Package Installer
npmベースでUnityのパッケージを管理するツールを作りたい
yarnでもいいかな?
UPMと名前がかぶりそうだから変えておく
UPIという名前のnpmモジュールがあったのでupkに名前変更
あらまし
Unityを使ってソフトウェアを作る際に、ほぼ必ず使うであろうコンポーネントがMonoBehaviourである。MonoBehaviourはゲームスクリプトをコンポーネント指向の思想に基づいて、ゲームのシーンを構成する最小単位であるGameObjectにアタッチして利用する。その名前が表すとおり、MonoBehaviourはMono(C#)で記述されたゲームオブジェクトのBehaivour(振る舞い)である。スクリプタブルなゲームオブジェクトは、必ず個別にその振る舞いを持つ。ゲームはゲーム自体のロジックによってその進行は変わるものの、基本的にはフレームという単位でリニアに進行する。
MonoBehaviourは、Unityであらかじめ決められたイベントに基づいたイベント駆動のコンポーネントである。色々なイベントがあるが、実際に重要なのはUpdateである。Updateはfpsに関わらず毎フレーム実行される。Unityではグラフィックに関するプログラム的記述をMonoBehaiourにゴリゴリ書くことは基本的にはないので、実際はゲームオブジェクトの状態を変化させる記述を行う。具体的には、ゲームオブジェクト固有の数値やブーリアンである。transform.positionなどはよく使う典型的な状態である。
MonoBehaviourの問題点を指摘する前に、MonoBehaviourのよいところを考える。個人的にMonoBehaviourの一番の利点は、スクリプトが疎結合になりやすいという点だ。あるスクリプトはそれがどのゲームオブジェクトにアタッチされたとしても同じように動作する(べきである)。もしあるスクリプトが特定のゲームオブジェクトでしか動作しないのであれば、MonoBehaviourを使うメリットは、その基本的な機能以上はない。
コンポーネント同士が疎結合である、というのはソフトウェア設計の理想だが、あくまで理想でしか無い。ソフトウェアの中にはそれがどれだけシンプルなものに見えたとしても、数え切れないほどの状態とそのスパゲッティな遷移が存在する。FSMはコントローラブルなソフトウェアの理想形に思えるが、実際はひとつのオブジェクトがひとつのFSMのみを持つということは現実的ではない。そして多層的になったFSMは開発者の認知を容易に越えてしまう。
#Unity #Crashlytics
Unity: 5.6.1f1
原因はここ。
CLUIsInitialized()というネイティブプラグインの呼び出しで不正メモリアクセスで落ちているようだ。
おそらく、DLLImportしている静的リンクライブラリがユニバーサルでないのだろう。
#Unity #iOS
黒羽のアリカでエラーログをメール添付して送る機能を作っていたときのメモ
もともとApplication.OpenURLでmailtoスキーマを開いていたが、ファイル添付をしたかったので自作した
結論
iOSのNative Pluginを作って、MFMailComposeViewControllerを呼び出す
Unityで3Dモデルにセルルックな輪郭線をつけたい
既存シェーダはいくつかあるが、なんかすごい新鮮はない
Pencil+という謎技術があるけど、プロプライエタリなので乙
国内
リアルタイム 3DCG における物体の形状を考慮した輪郭線の誇張表現手法の提案
アリカのトゥーンシェーディングを頑張るためにUnityのシェーダーを嫌々々々々々々々々々々勉強する
参考サイト
https://www.mokastudio.com/
なんか面白そうなツール見つけた
http://unityshader.hatenablog.com/
QiitaのAdvent Calenderの記事を書く
内容はBlender x Unity x ARKitでアリカさんを実世界で動かす感じ
書きたい内容
キャラクターを3Dにするということ
なぜするのか?
#Unity #UniCommon
あらまし
Unityで複数のプロジェクトを作っていると似たようなコードを書くことが多い
今までの数個のプロジェクトは気合コピペでなんとかしてきた
黒羽のアリカを作ったときに開発したUnity用のコードには再利用性の高い有用なコードが多数含まれているので、それを今のプロジェクトにコンフリクト無しで組み込みたかった。
#Unity
https://github.com/keroxp/UniCommon
黒羽のアリカを作ったときに作成したUnity用のライブラリをリビルドしたもの
UnityEngine
に依存しているけどゲームロジックを管理するクラスはほとんどない
どちらかというと俺流C#のCommonライブラリかも知れない
Unityでfbxとかの3Dモデルを読み込むと、「Avator」という物が生成される
これは外部形式の3DモデルをUnityでどう扱うか?という情報が含まれている重要なデータ
実質的に、これがUnity上での3Dモデルデータと言っても過言ではない
ほんとうの意味でのavatorは何かはググってください…
しかし、不思議な事にxxxAvatorというデータはファイルになっていない
Unityのテスト環境とランナーであるTest Runner
これはUnityを起動しないと使えないと思っていた
でも調べたらできるらしい
https://docs.unity3d.com/ja/current/Manual/testing-editortestsrunner.html
これで一時的にUnityが立ち上がってテストを実行して終了する
この一年ずっと俺は何をやってるんだという思いが強かった
アニメを作りたい、アニメを作らなければ、という思いであがいているけど、何が作れるのか結局まだ何も分かっていない
あまり満足のいく出来じゃないゲームを作ったが、これは俺の作りたいものじゃないとまた振り出しに戻ってしまった
プログラムでキャラクターを表現するとゲームにならざるを得ないのか?
Unity + 3Dキャラをつくるとどんなモノができるのか? どれくらいのコストが掛かるのか?
Unity用パッケージマネージャ
過程: upk作っていく
2018/1/12 ~ 2018/1/20
1週間くらいでできた
UnityでiOSアプリをビルドする時、ネイティブ拡張を使っている場合など、.framework
をビルド設定に追加する必要することがある
UnityのiOSビルダーはプロジェクトファイルごと生成する豪快なお方なので、Xcode側で編集したビルド設定は基本的にクリーンビルドすると消える
これが非常に困っていたのだけど、UnityにはPostProcessBuild
という仕組みがあって、Unityのビルド後にアーティファクトを色々編集できたりする
iOSの場合、PBProject
というクラスを使うとXcodeの.xcproject
を直接編集できる