追記
DLR回りの使用は他のプラットフォームで難しそうな感じ。Windowsでは問題なく動くが、WebGLでもAndroidでも(AndroidはバックエンドがIL2CPPではなくMonoであっても)動かなかった。これはまずい。IronPythonはリフレクションがないとC#側の関数が取り込めない仕組みっぽいのでほぼなにも出来ない。PC専用になってしまうとUnity使う意味があまりないしなあ。PS4とかでは動くんだろうか? 残念ながらIronPythonの使用は見送るかも。この記事内容については訂正します。
MoohSharpで、DLR回りの仕様に頼らず色々グルーコード書いて、HTMLパーサもどこかで用意するしかないか。
モデリング・リギング・アニメーション
コンテンツパイプラインがだいたい確立しそう。
- MagicaVoxelもしくはQubicleでモデリング
- VoxelImporterで取り込む。アニメするモデルの場合はボーンを入れる。
- 簡単なモデルならAnimationClipの編集だけでも十分アニメを作れそうだが、専用の外部ツールを使いたい場合は外に出す。
- VoxelImporterからCOLLADA形式(.dae)でエクスポートする。MayaLTに持ち込んでボーン構造をUnity内部のものと同じにする(オブジェクト名がルートに入ってることが多いのでそれを外す)。
- あとは外部ツール(私はAkeytsuを使う)でアニメを作ってFBXでUnityに持ち込み、FBX内のアニメーションクリップをCtrl+Dで複製すればそちらは編集可能であり、同じボーン構造のモデルに適用出来る。
- HumanoidアニメはもちろんUnityの普通のやり方で流用可能
レベルデザイン
レベルデザインに関してはまだ途中。
現状、マイクラ風のキューブによる地形デザインはめどが立っている。動的に更新出来るのが強み。あとは各面に違うテクスチャを貼り付けられるようにしたり、ハーフブロックや階段(これは1/8サイズのブロックを管理させれば統一して作れる)を実装すればいい。柵とかガラス板とかは別オブジェクトでいいかなあと。とりあえず表示部分だけ作り込んで設定はIronPythonを組み込んでツール作ればいいかなと。

また、地面に関してはUnityの標準のテレインを低解像度で使うといかにも味のある絵作りになるのでこれもありかと思っている。

IronPythonを採用する
IronPythonはリフレクションの取り込みが深いのと、マニュアルがかなり充実している(英語だが)のと、Pythonの各種ライブラリが使えるのとが良い感じなので、今後の開発はこれを基盤に据えていく。基礎部分を作る。こういう構造を考えている。
- C#コード (UnityEditor,VisualStudio)
各パーツ、ゲームオブジェクトなどの細かい機能をここで実装する。例えばAIナビゲーションやアニメーション管理など。それをIronPythonから呼び出す。レベルデザインは未定だが、ここでやるか、外部ツールから取り込むか。ゲームのUIは普通にuGUIで作る。 - IronPythonコード
ゲームのメインロジックはここに書く。リフレクションが使えるので必要ならだいたい何でも出来るはず。特にPCゲームを作る場合は、MODを作成しやすい環境にしたい。標準のHTMLパーサを使ってシナリオスクリプトを読み込んで実行する。 - シナリオスクリプト
シナリオや演出の記述を直列化するための独自文法のスクリプト。HTML形式と同様のタグを使う(意味づけは異なる)。単純で使いやすいはず。変数を処理したり条件分岐したりするところはPHPに似た感じでPythonを呼び出して処理させる。こんなスクリプトを動かしたい。
<label name="samplescene"> XMLと違って<c>閉じタグを必ずしも必要としないのがいいですね。<p> <bg name="town"> <chr name="girlA" x=0> こんな感じで演出。<p> <?py save.v1=1 ?> <!-- Python呼び出し。PHP風 --> <?py if save.v1==1 : labeljump("samplescene2") ?> <!-- Python呼び出し。複数行も化 -->
これなら、直列化したいところだけを独自文法に切り出して、アルゴリズム的なところだけ全部Pythonで書ける。シナリオスクリプトは粒度の高い指令をさせて、細かいことはPythonの関数を呼ばせてそちらで実行する。
https://wakelet.com/wake/zuhPKJhkjXQ8ODXcPYTPx
https://wakelet.com/wake/5sFUppSDgj8vmCnB6ercu
https://wakelet.com/wake/rJRmGwr1uPsIwgw0xMSqT
https://wakelet.com/wake/ybddzEaUYP6qdMrQzii7t
https://wakelet.com/wake/10Jgyd4PYRCB6ykl7SSwa
https://wakelet.com/wake/2Vxl52HLnXyhXZXu0sPAs
https://wakelet.com/wake/lNJ2w_czAzwn5f9SOIH1w
https://wakelet.com/wake/wpSvJUbjz_KtsbHA9zXBa
https://wakelet.com/wake/RTw0cN7UmIL1e1RWITL2C
https://wakelet.com/wake/GudGlKBeMKJ-1MgqXdhZq
https://wakelet.com/wake/OF0UppeemO89_ClXccSm9
https://wakelet.com/wake/IVoAxQroP06YeexCQYc9P
https://wakelet.com/wake/6qFD6SN-E4oewXpviucK6
https://wakelet.com/wake/mm1StC0qirxenwgvJwbKT
https://wakelet.com/wake/R6sQZdFhaYuKu0Qnv99EJ
https://wakelet.com/wake/Ppc9gTQwzxeMwS9StyhBr
https://wakelet.com/wake/1KGNDE5VNHoV8AvMUrucK
https://wakelet.com/wake/ce9mOay_2KmJ16LaFldbv
https://wakelet.com/wake/J74YhvWcI7BGQX1sBZ-yQ
https://wakelet.com/wake/GGhExk5izN_4QH2zjpDjg
https://wakelet.com/wake/jexRXIWXi-RuzMoCDTmxq
https://wakelet.com/wake/2877z0xi3fmQIQlG2q1Mb
https://wakelet.com/wake/x4Dxqep-qxg9OrkxiR3OJ
https://wakelet.com/wake/VZKoPDDZtQvQa4dtMMFVN
https://wakelet.com/wake/N3_MJwmKCVEyNn4hmkP7P
https://wakelet.com/wake/PnO__a34oSsK9h5ljHJhG
https://wakelet.com/wake/Y1yYRg3q0zcLre_-YAkry
https://wakelet.com/wake/HgqkOnF1R3lBkg45Esrzb
https://wakelet.com/wake/QSc8q24Z_f-KnofNSLnBL
https://wakelet.com/wake/ow_mv9LDxzuUNDd5mBDwV
https://wakelet.com/wake/m5ZNhONAEhFp4kpsHYb-a
https://wakelet.com/wake/mfeZ_hzysVRnpkDdCBJJI
https://wakelet.com/wake/-NFOaDBpqbBp3zs6ReBiU
https://wakelet.com/wake/g9d6RTzB1iNRiLq129XMH
https://wakelet.com/wake/4tTVghSS1cU0oM7BWOCmJ
https://wakelet.com/wake/vc4fsD2UpkeMRau1kiLwD
https://wakelet.com/wake/Xcy9M_3ahNeyl6IEOKZpT
https://wakelet.com/wake/SUa_mvNkbaidRd5PJOa-Z
https://wakelet.com/wake/PKibgmYBJBAYyGp9szMcQ
https://wakelet.com/wake/20diEW6WROMM2CuWyA2D7
https://wakelet.com/wake/GM8cZFlaBN0IeoqONgPaf
https://imgur.com/Aze0RRm
https://imgur.com/SNWcui3
https://imgur.com/JgfOrNK
https://imgur.com/v8P58Br
https://imgur.com/4uB8QQd
https://imgur.com/KNct9Db
https://imgur.com/zsDnCCo
https://imgur.com/TzfTOLt
https://imgur.com/pdjCUuq
https://imgur.com/jdNxRu8
https://imgur.com/lg70Agy
https://imgur.com/sptq3Yk
https://imgur.com/GTLFVDR
https://imgur.com/OtXW0tk
https://imgur.com/3C3OhTA
https://imgur.com/7PJdH2k
https://imgur.com/Nb0KYQk
https://imgur.com/zD2wcNS
https://imgur.com/00XXhC9
https://imgur.com/bhWR781
https://imgur.com/rVXgd0b
https://imgur.com/KZLK0FX
https://imgur.com/UQeYJry
https://imgur.com/4AEdlJc
https://imgur.com/m7fNwLu
https://imgur.com/cqTv38L
https://imgur.com/D5aeysB
https://imgur.com/1yRR1CT
https://imgur.com/qF9W3mL
https://imgur.com/2OYGcbm
https://imgur.com/xOYYCtR
https://imgur.com/6BOCstE
https://imgur.com/ni5QG5Y
https://imgur.com/qBEsAvs
https://imgur.com/2QnqMrj
https://imgur.com/u9R9Hfc
https://imgur.com/kiQHj3m
https://imgur.com/Qs7umA2
https://imgur.com/gtduiXQ
https://imgur.com/WibTgfz
https://imgur.com/wrSriBz
https://imgur.com/COeKXa8
https://imgur.com/byRMxSH
https://imgur.com/GX22aga
https://imgur.com/mHGxHV9
https://imgur.com/7EbI8y1
https://imgur.com/2mnrtt3
https://imgur.com/9f6Yssa
https://imgur.com/8v1DKlC
https://imgur.com/iAFK1nl
https://imgur.com/y0axjLU
https://imgur.com/erGGAO7
https://imgur.com/rmZyAHR
https://imgur.com/4rbcwhR
https://imgur.com/hsk6tNA
https://imgur.com/rexITsV
https://imgur.com/fLUzjAC
https://imgur.com/Sp30pZv
https://imgur.com/aNm62kB
https://imgur.com/qE1mGHl
https://imgur.com/09lMbmd