sm21718962「【MMD】MMD描画ライブラリ作成プロジェクト【プログラミング】」のコメント返信

「OpenGLで使えればマルチプラットフォームが出来たんだろうけど」08/31 18:12

OpenGLでもし実装できれば確かにAndroidなどで利用可能になるとともに、MacやLinuxでもMMD関連のソフトウェアが誕生することを後押しすることになります。
しかしながら、以下の様な問題を解決する必要があります。(既に動画中で指摘してくださった方がいますが。)
  • DirectXの座標系、OpenGLの座標系が異なること。PMXファイルはDirectXの座標系用に設計されています。
もちろん、座標系同士を変換することは容易ですが、設計が多少なりともわかりにくくなることが想定されます。
プロジェクトでは、主にMMD関連のレンダリングに関する技術を共有化できるリソースとすることを目標としているため、わかりにくい方式での実装は避けたいと考えました。
  • OpenGLのシェーダーはGLSL、DirectXのシェーダーはHLSLという言語で記述されています。
つまり、MMEの仕様が全く使えなくなります。MMEの互換性を完全に破棄し、同様の仕様のシェーダーを設計することは、MMDの技術をわかりにくくすることから避けたいと思います。
  • ライブラリがC#で実装されていること。このライブラリはC#で実装を開始しました。
これはライブラリの使用者の負担を下げるためと設計を楽にするためです。C#はMonoを使用すればMacやLinuxで動作しますが、未だに主なターゲットはWindowsです。Monoと最終的に完全に互換性を保てるかわからないままSharpGLなどを用いてOpenGLで実装しても最終的に他のOSと互換性を保てるかは保証されないのです。

以上の理由から、このプロジェクトではDirectXにて設計されているのです。動画中の説明が不足しており、申し訳ないです。

「動画以外に使われたくないモデラーへの配慮はしてくれるんだろうか?」08/31 21:48

これについては、特にしないというのが回答です。
ライブラリのレベルでこの問題に対応する必然性がありません。今まで通り、モデラーがその利用規約によって定めるべきかと思います。
例えば、このライブラリが完成し、あるユーザーがMMDのモデルを利用して公序良俗に反するアプリを作ったとしましょう。(R18のゲームなど)
確かにそのような利用目的で使われるのを奨励をすることはできませんが、オープンソースプロジェクトである以上、ライセンスを満たして使用しているならばライブラリの使用者を非難することはできません。
ただし、モデルの作成者がそのような利用を禁止している旨を書いてあるのであれば、モデルの利用者はライブラリの使用者を非難することはできます。
あくまでも、モデルの利用規定の遵守に関しては、モデルの作成者とモデルを利用するライブラリの利用者の2者間において行われる暗黙的な合意によるものであり、ライブラリが考慮する問題ではないとともに、制限するとなればライブラリ作成者としての権限を逸脱した制限だと考えます。

「とりあえずDirectX11の画面みたいな」08/31 23:42

すでにこの動画に写ってるモデルはDirectX11によってレンダリングされています。
DirectX11だからこそできる事というのは、今実現できている内容からは、見て取れるものは少ないです。
完成が近くなれば、髪をサラサラにするデモなども見せられるかと思います。

「GPLは色々使いにくいのでMs-PLあたりにしてほしい・・・」09/01 23:23

当初はMITライセンスにしようかGPLにしようか悩みました。
多くの人が扱えるという面ではMITのほうが優れているかと思いますが、MMDを取り巻く環境の技術をより広く共有するというプロジェクトの発足当時の理念からGPLが選ばれました。

「これはMMDモデルの規約変更でもめそう」09/02 05:55

このプロジェクトでは、MMEに関する仕様のみ変更の可能性があります。ただし、PMXやPMDファイルの規格を変更する可能性はありません。あくまで既存のモデルを活かせるライブラリとしてのものです。
ただし、MMEに関する仕様だけはシェーダーモデルが上位バージョンとなることにより多少変更の可能性が出てきます。これはHLSLの仕様によるしかたがないものです。殆どの場合、MMEの機能を増やすことはしますが、旧シェーダーはこのHLSLの仕様変更による少しの書き換えをすれば利用できるようになる見込みです。

「MMDforUnityというものがあってだな・・」

MMDDはゲームへの利用も想定していますが、あくまでそれは副産物的なものです。そのため、MMDXやMMDforUnityとは特徴が異なります。それぞれの特徴について以下のように整理します。

MMDX

利点
  1. Unityに縛られず開発が可能。
  2. XNAやSlimDXから選べる。XBoxにも対応できる。
欠点
  1. PMDファイルしか表示できない
  2. MMEには対応しておらず、エフェクトに対応させる場合は自身でコードを多く書き加えなければならない。

MMDforUnity

利点
  1. Unityでのゲーム開発にMMDも利用することを可能にできる
欠点
  1. PMDファイルしか表示できない
  2. MMEには対応しておらず、エフェクトに対応させる場合は自身でコードを多く書き加えなければならない。

この2つの特徴はあくまでもPMDファイルの表示、モーションの適用までをライブラリとしていることです。MMEなどのエフェクト仕様は実装されておらず、利用できません。対してMMDDはMMEの仕様とPMXの読み込みをセットで提供するライブラリです。MMDに関するデータを見える形で出すライブラリだと思えばいいでしょう。
MMDDはゲームへの利用も期待できますが、一番大きな目標は共同開発できるMMDのレンダラであるという点です。MMDやMMMは独自にレンダラを実装しており、エフェクトも適用することができますが仕様が異なります。
MMDDはこのようなエフェクトの仕様の差をこれ以降生まないように共通化するという利点も生まれます。新たにレンダラが必要な人も車輪の再発明をする必要がなくMMDDを利用すればいいことになります。

以上のようにMMDDはゲーム利用可能なライブラリとしての側面を持ちますが、それはMMDXやMMDforUnityとは異なったものであり、エフェクトやPMXの仕様などMMDに関する仕様を統合したレンダラをオープンに提供する事ができるようになるという利点を持つのです。

ライセンスに関する返答全般

MMDDでは、コピーレフト以外のライセンスを適用する気はありません。MMDDを利用したアプリケーションが新たな仕様をMMDに取り入れ、その仕様を公開しなかった場合、また車輪の再発明が必要となってしまうからです。
ライセンスで抑制したい行為はそれだけなのです。別に他のプロジェクトのソースコードが見たいわけでもありません。ライブラリ自身の変更がなくても、ゲーム作成やアプリケーション開発に支障のないように作成するつもりでありますので、安心してください。
また、オープンソースソフトウェアをMMD関連に普及させたいとの意思もあります。もう伽藍方式の開発は終わりでいいでしょう、バザール方式に移る十分なリソースはそこにはあります。

Last edited Oct 11, 2013 at 4:17 AM by atrenas, version 9

Comments

No comments yet.