2015/02/16

SexLabに自作アニメーションを追加してみる

先日、SSL1.6のテストをしていてアニメーション登録のしくみがなんとなくわかったので、今日はためしに自作モーションをSexLabのアドオンModとして追加してみることにしました。
久しぶりにblender弄りましたよ。もう完全に操作忘れてた……

最初は何か適当なモーションをよそから借りてきて追加してみようかと思ったんですが、一人用のモーションならなんとか私でも作れるかなあ、と思って久しぶりにblenderと格闘してみることに。
そういえば男性用のオナニーモーションって、デフォルトだと一種類しかなくて物足りないよなあ、と思っていたので、寝転がった体勢で自慰しているモーションを作ってみることにしました。
それにしてもあれですね、エッチなモーションを作る時は、裸の素体でちゃんとアレが戦闘状態になったものをアタリのモデルとして用意しておかないと難しいですね。
実際にゲーム上で確認したら股間と手の位置が全然合ってなくて、調整に手こずってしまいました。
そんなわけで何十回とblenderとスカイリムを行き来して大事な物をしっかり握り締めることに成功。

テストしてる最中、リディアさんの視線がものすごく痛かったです。
ちなみにSSLにアニメーションを登録するスクリプトは下記のような感じでOKでした。
意外にシンプルでしょう?(そうでもない?)
SexLab様の「RegisterAnimation(string Registrar, ...)」って関数で、アニメーション枠を確保できるんですが、これ、1.59cのスクリプトだと登録成功したアニメーション枠の戻り値があるような感じなのに、実際は戻ってこないんですよね。
正確に言うと、すでに同じレジスト名のアニメーションが登録されてた場合のみ、それが返ってくる感じです。
しかし新規登録に成功した場合はなぜか何も返ってこない。
その辺、1.6では修正されてたんで、たぶん見落としてたんじゃないかなって思ってるんですが……まあそんな現状なので、戻り値には期待せずに、アニメーションの詳細の登録はコールバックのMod Event内で行ってます。

ちなみに「RegisterAnimation(レジスト名, コールバックを受け取るForm)」と引数を指定すると、アニメーション枠の確保が完了した際に、コールバックを受け取るFormで登録したレジスト名のModEventを受け取ることができます。
その際、確保されたアニメーション枠が何番目のスロットか、という情報(id)が取得できるので、それを使って実際に登録されたアニメーション枠(実体はエイリアス)を特定して、アニメーションの名前やステージのモーション、タグや効果音といった詳細を保存する……という流れです。
私は最初、ModEventってのは「Event イベント名~EndEvent」という書き方じゃないとイベントを受け取れないと思ってたんですが(CK Wikiにもそれしか載ってないし)、イベント名の関数が設定されてるだけで実行されるんですね(知ってました?)
SexLab様のデフォルトのアニメーション登録の部分を見ていて、どこぞで呼んでる気配もないのに何ゆえレジスト名の関数が実行されるんだろう、とずっと不思議に思ってたんですが、まさかModEventにそういう書き方があったとは思いもしませんでした。
なんだか英語名の中に日本語があると思いっきり目立ちますね。

ちなみにblenderなどで作った自作モーションをSexLabで使うためには、そのモーションをスクリプトから呼べるようにFNISでAnimEventを登録する必要があります。
以下はその下準備の手順のメモです(忘れちゃうので書いておきます)

まずモーションファイル(hkxファイル)の用意が出来たら、FNISを使ってBehaviorのhkxファイルを作成します。
これは新規モーションをFNIS様に読み込んでもらうための定義ファイル?なので、いつも使う赤いFNIS様の方じゃなくて、青いアイコンの「GenerateFNIS_for_Modders」の方を使って作成します。。
ファイルの構成、置き場などはこんな感じ。
「Data/Meshes/Actors/Character/animations」の中に自分のMod名のフォルダを作って、そこに作ったアニメーションのファイル(hkxファイル)とFNISのリスト(FNIS_Mod名_List.txt)ファイルを入れます。
FNISのリストはメモ帳などのエディタを使って作成します。中身はこんな感じ↓です。
SexLab様のリストファイルを見たら、どうやらアニメーションごとにモーションをシークエンス(順番に連続再生すること)で設定しているみたいなので、ステージ1に再生するモーションには「s」を、それ以下のステージには「+」をつけてシークエンスアニメーションとしてグループ化しておきます。
ちなみに今回はアニメーションを1種類しか作らなかったので1グループしか記述していませんが、リストファイル1個の中にアニメーションをいくつでも設定することができます。

「GenerateFNIS_for_Modders」で作成したリストファイルを読み込むと 「Data/Meshes/Actors/Character/behavious」の中に、「FNIS_Mod名_Behavior.hkx」というファイルが作成されます。
あとは赤いFNIS様で、いつもやってるように他のModのモーション達と一緒にジェネレートしておきます。
これでFNIS様の下準備は終了です。

# # # # #

1.6ではどーんとアニメーション枠が増えるので、皆様もぜひお試しいただきたいなと思います。
まあモーション作成自体が至難のワザなんですけどね……

2015/02/08

SexLab1.60Alpha試食レポート

ファイナル宣言の衝撃で複雑な思いを禁じえないSSL1.6ですが……早速試してみたので、感想など気づいたことを書きたいと思います。
ちなみに私のスカイリム環境はカオスと化していたので、データを全削除してしまいました。
なのでテストはニューゲームのまっさらな状態で行ってます。
しかも裸体化のメッシュやテクスチャの類さえも入れていない、SSLが動作する最小のMod構成です。
アドオンModもMatchMakerのみ…という、完全なテストモード仕様。
そんな無菌室みたいな状態では何の参考にもならないかもしれませんが、1.6を新規に導入するだけではなく、いったん1.59cを導入してから1.60Alphaにアップデートしてみる…というのも、試してみました。
1.59c→1.60Alphaのアプデは、とりあえず無事に動作するのは確認しました。しかし、ざっと触った感じ、コンフィグ設定の引継ぎなど、まだ細かいところが調整されていないようです。
開発版なので当たり前なんですが、まだまだ1.59cから移行するのは時期尚早…といったところですね。

まずは1.6で追加されたアニメーション……「Arrok Bed Blowjob」というのが増えてました。
名前の通り、ベッドに腰掛けた男性に、手→胸→口でのご奉仕を行うモーションです。

このモーション、stage3~4の男性の動きが激しすぎて爆笑しちゃいました。
ちなみにこのモーション、ちゃんとベッドの側面で再生されるのに感心しました。
今までベッドで行為を行うと、やたらベッドの下の方でヤリ始めたり、頭の向きが逆なのでは?と思われるような状況だったりで、微妙だなーと思ってたのですが、これはしっかりベッドの側面の端に男性の体が来るような位置で始まります。
しかもダブルベッドでもシングルベッドでも、ちゃんとベッドの端にフィットしてるんです。
今回のバージョン1.6の更新箇所で、ダブルベッドとシングルベッドを判別するスクリプトの処理が追加されていて「おや?」と思ってたんですが、このようなベッド専用のモーションの発動のために用意されたものだったのか……とようやく合点がいきました。
この機能追加によって、ベッドに並んで腰掛けていちゃいちゃしたり、背もたれにもたれてピロートークしたり…みたいな、ロマンス系のベッド専用モーションがもっと増えるといいなあと思います。
なにしろ今回は対人用だけで350個ものアニメーションの登録枠がありますからね。


さて、今回のアプデの目玉は、なんといってもアニメーション・表情・ボイスといった、Sexシーンに使われるオブジェクトのスロット数が350まで拡張されたということだと思うんですが……果たしてそんな大量のアニメーションが問題なく動作するのか、動いたとしても処理が重くなったりしないのか……別に作者さまの技量を疑うわけではないんですが(笑)、気になったので実際に試してみることにしました。

ちなみにSSLの本体で登録済みのアニメーション枠は62個です。
当然ながら本体だけでは、以前の1.59cまでの限界数の125枠にすら達しません。
そこで、まずは「ZaZ Animation Pack」(v6.02)を導入。
こちらは「Prison Overhaul」や「Devious Devices - Integration」といったModの導入必須ModとなっているSM系の小道具類を含むモーション追加パックですが、こちらのモーションをレジストすると、SexLabのアニメーション枠を20個ほど消費してくれます。

それからお次は「Non-SexLab Animation Pack」(v2.1a)も導入。
こちらは私は今回初めて導入させていただいたのですが……なんと、SexLabのアニメーション枠を55個も埋めてくれたのでびっくりしました。
凄い追加数ですね。ほとんど本体並みです。
そんなわけで、ZazとNon-SexLab Animation Packを合わせて、合計137枠が埋まりました。

パピルスのログを確認すると、アニメーションのスロット枠が137個
(※0から始まるのでAnimations[136]は137個目です)埋まってるのが確認できます。
それにしても、ZazとNon-SexLab Animation Packを入れると、1.59cまでの限界数125枠では全部のモーションを登録しきれない状況がすでに発生してたんですね。
私が思ってた以上にアニメーション枠の拡張はかなり差し迫った問題だったようです。
正直言うと、アニメーション枠なんてそんなに沢山あっても使わないのでは……とか思ってたんですが、たとえ使いたくなくても必須のModに指定されてたら入れざるをえない状況があるわけだし、1.6が最後の更新かもしれない(涙)ことを考えると、350でも決して多くはないのだな、と再認識しました。

さて、残りの350個に足りない分は、ダミー用のアニメーションを自作して埋めることにしました。
自作と言っても、SSL本体のアニメーションの定義をしている「sslAnimationDefaults.psc」というスクリプト内には、テスト時に使ったらしいダミー用のアニメーションの定義がコメントアウトされて残されていますので、それを参考にダミー枠を213個分作成してコンパイルしなおしただけです。
これでSSL本体だけで275個のアニメーションが登録されてるはずなんですけど、
MCMのSEXアニメのページは125個までしか表示されない仕様らしくて、全部は表示されませんでした。
(でも現在作業中の項目に上がってたので、いずれ対応されるんじゃないかと思います)

ところでこのSEXアニメのページ、全部のアニメーションを一気にオン・オフするトグルが欲しいです。
さて、ZazとNon-SexLab Animation Packの分を合わせて、これでMAXの350枠が全部埋まりました。
ラストのスロット(Animations[349])は、Zazの「$Zap_Wri_Boobjob01」というアニメーションです。

350の枠にアニメーションがフルに登録された状態でMatchMakerを発動すると……さすがに一瞬、間が空いて……アニメ再生が始まりました。
でも、そんなに気になるほどの遅延ではありません。裏でやってる処理の凄まじさからしたら、よくもまあ、ここまで最適化してくださったものだなと思います。
もっともアドオンModをじゃんじゃん入れまくって、そこいらで同時多発的にセックスシーンが始まるような状況になったら、どれほどの負荷がかかるものなのかはわかりませんが。

ちなみにMatchMakerでアニメーションを発動すると、再生の候補にあがってくるのは最初の方に登録されたSSL本体のアニメーションばかりになるので(MCMでオフにしようにも126番以降は表示されないのでオフにできない)、モーションを名指しで再生するテスト用のModを作成して、最後のスロット枠に登録されたZazのアニメーションがちゃんと再生されるかどうかも試してみました。
Animations[349]に登録された「$Zap_Wri_Boobjob01」こと「Boobjob (bound)」の動作を確認。
良かった。ちゃんと問題なく呼び出せますね。

ちなみにセックス中にコンソールを開くと、再生中のアニメーション名が表示されてます(知ってた?)
そういえば1.6ではセックス稼働中のログに、どれだけ行為を楽しんでいるかというEnjoymentのステータスの値などが表示されるようになっていました。
このEnjoymentやPainのという値は、ボイスがHotなものに切り変わったり、表情の変化にも作用してくる重要なステータスなので、確認しやすくなるのは大変ありがたいです。
搭載予定のArosal(欲情)ステータスも、私はすごく期待しているんですが、こういった本家が用意してくださってるステータスを積極的に利用して、何かアドオンModを作れたらいいなと思ってます。

まだまだ1.6の更新箇所は沢山ありますが……今回はこの辺で。

2015/02/04

SexLab1.60Alpha~SSL終幕への序章

ここしばらく、どうもやる気が出なくてスカイリムから離れてたんですが、しばらくぶりにLLを覗いてみたらSexLab様の1.60のアルファ版が人柱を募集してたので、ちょっとテンション上がってきました。
早速試食してみたんですが、さきほどフォーラムの過去ログを見てたら、作者さまのこんな爆弾発言があって……頭の中が真っ白に。

↓SexLab Framework DevelopmentスレのSSLの作者さまの2015/1/23の投稿より
Ultimately, I feel like the 1.6x series is very likely going to be the "final" version(s). At this point I'm considering just finishing up whatever absolutely needs to be finished to put out 1.60 ahead of schedule and just do bugfix and minor API updates. Running out of steam and besides the 2 important new features coming in 1.6, I'm just out of ideas of what else to do with the framework.
最後に、私はこの1.6xシリーズが「ファイナル」バージョンになるような気がしている。
この時点で私は予定よりも早く1.60を出して、バグフィックスや主要でないAPIのアップデートなど、SexLabを終わらせるために絶対に必要なものはすべてフィニッシュアップしようと考えている。
気力を失い、そのうえ1.6で二つの重要な新機能を追加して、私はもうこのフレームワークでするべきことを何も思いつかない。

ええええええええ……そんなあああ……
私の英語力は中学生以下なんで、ニュアンスとかは全然わからんのですが、作者様のコメからは「やりきった感」みたいなものが感じられて、それがまた……せつないです。
まるで平家物語の平知盛の「見るべき程の事をば見つ(見るべきものは全て見た)」…という、すべきことをやり尽くして達観してしまった人のセリフのようじゃありませんか。
まあ、そう言うだけの資格は充分にあるとは思うけどさ……でも、でも。

SSL1.6でArousedと融合して、この先、SexLabはいったいどうなるのかしら、作者さまはどんな野望を抱いているのかしらと密かにワクテカしていたのに……
アニメーションやボイスの登録枠を350個も増やして、これから一体何をする気なの、とドキドキしてたのに……それも全部、最後の置き土産のつもりだなんて……悲しすぎます!


今回は1.60Alphaの試食レポートでも書くつもりだったんですが、衝撃すぎて……また今度。