TVMLZは”Z”、つまり、アルファベットの最後で、この後は無し、ってことで。
NHKでの開発コードはtvmlxで、ま、それに似てるんだけどTVMLZってことでよろしく。
You may also like
前の投稿で予告したので、リアル系のセットとキャラで今回のTVMLエンジンを動かしたところを貼っておく。 セットはUnity5のGlobal illuminationとかPhysical based shadingとか、わりとふんだんに使っている。キャラはフリーのキャラで、動きもフリーのBVH再生で、リアルというよりは気持ち悪いが、いつものPooni君ばかりでないことだけは分かってもらえるであろう。 実はこれまでのTVMLエンジンではこれがきちんとできなかったのである。今回、CGのセットやキャラ、照明などはすべてUnityのScene任せにしてTVMLからは一切コールしないことで、このようなことが格段にやりやすくなった。TVMLは演技を記述しているだけで、一切の初期設定は不要である。TVMLスクリプトには、最初からいきなり character: look(name=Mia, target=camera, wait=no) character: talk(name=Mia, text=”こんにちは、みなさん”) character: talk(name=Mia, text=”これはまだリハーサルなのですが、お見せしています”) と書けば、その通りに動く。 まだまだ、ショットとかぜんぜんイマイチなのだが、急ぎでやったのでご勘弁を。とにかくも、今回のエンジンのおかげでこんな絵も作りやすくなりました、ってことで。 ではでは。
TVMLのエンジンをUnity5で新規にスクラッチで作り始めた。ほとんど、いや、完全に趣味である。 始めたきっかけだが、学校の授業でClean codeっていう「いかにきれいなコードを書くか」という、自分におよそふさわしくないテーマで講義をしているのだが、そこで使うちょっとした課題を作ったのが始まりだった。昔作ったキャラを引っ張り出してきて、Unity5の上に登場させ、ごく基本的なアニメーションをC#で書いて仕込んだ。このコードを学生に渡し、コードをきれいにしなさい、とやったわけだ。A4でほんの一枚以下のC#のコードだ。 キャラが動いて声を発するのが面白くて、ちょこっといじってこんなのを作った。 このコードはひと月ほど放置されていたのだが、ちょっとヒマができた時になんとなく取り出し、以前に買っておいた、Unity5で動くTTS(音声合成)と自動リップシンクソフトをやはり引っ張り出し、つないで、セリフをしゃべらせてみた。 コードに打ち込んだセリフをこいつが初めてしゃべったとき、思わず微笑んでしまった。すぐに、およそ20年近く前、同じようなCGキャラが初めて合成音でしゃべったときのことがフラッシュバックした。あれが最初の感動だったな、と思い、しばらく感慨にふけった。 と、まあ、そういうわけで、ヒマができたときだけ、非常にノロノロと、このコードをあれこれいじり始め、いろいろ考えてはみたのだが、結局、このままTVMLエンジンをゼロから作ってみるか、と思うようになった。そして、今に至る。 当面、ビジョンは無い。途中で放置する可能性も大である。というわけだが、自分はなぐさみで文を書くのも趣味なのでこのようなブログとともに開発してみようかな、と思っているのである。
TVMLスクリプトが一応再生できるようになった。もちろん仕様の一部だけど、こんなのが走るようになった。TVMLスクリプトはコレ コマンドにして10個ぐらいをサポート。TVMLの仕様自体は7、80個ぐらいあったと思う。ただ、今回、従来のTVML仕様にこだわる気はなく、作りながらTVMLの方も変えていってしまう予定。今のところ、少ししか変えてないが、一か所、従来と大きな違いがある。 それは、CharacterデータをTVMLスクリプト内で読み込むのを止めたこと。従来は、たとえば character: openmodel (model=POONI, filename=”Characters/pooni/pooni”) みたいにfilenameに外部データファイル名を指定して、それをオープンして、それを使っていた。上述の「Characters/pooni/pooni」は、実際にはUnityのプロジェクト内のResourcesフォルダ内に配置したキャラクタデータだったんだよね(あるいはどこぞに配置したAssetBundle)。今回、このやり方は止めて、キャラクタとセット(実際はカメラも照明も全部)をUnityEditor上で最初からScene上に配置しておき、これをもとにTVMLスクリプトを動かすようにした。 UnityEditor上では最初からこうなっている。 キャラクタ、セットはプレハブをドラグアンドドロップして、Editor上で配置を行う。照明やカメラも配置調整して絵作りをしてしまう。その後、このシーンに対してTVMLスクリプトを再生して、こいつらに演技させるのである。そのため、今回TVMLに「assign」というコマンドを追加した。こういう風に書く。 character: assign (name=A, gameobject=”pooni”) pooniという名前のゲームオブジェクトに、TVML内の「A」というキャラクタ名をアサインし、以後、これを使う。 character: talk (name=A, text=”こにゃにゃちわ”) という風になる。ということは、UnityEditor上でシーンさえ作っておけば、以下の正味2行のTVMLを書けば、キャラクタを動かすことができる。 character: assign […]
TVML SDKの会員制限を外したので、誰でもDLできて使えます。ダウンロードページの一番下からどうぞ。 使用上の注意もそこに書いてますんで、そういう感じにてよろしくお願いします。 ソースコードもそのまま入れてるんで、いかようにでもご自由にどうぞ。 tvmlzっていう別プロジェクトもあるんですが、そっちも2年ぐらい止まってるかなあ。とはいえ、そっちは現用で使ってて、vizclassっていうアプリ(ビデオレクチャーを作るツール)はそれで作ってるし、vizclassは今でも英語の講義作成用に使ってるんで、まだ現用なんですよね。 ほんとはtvmlzもフリー公開したいんですが、未完成なんでまだ公開できる状態じゃないのね。完成はいつになるか分かりません・・・ よろしく!