ガレージ暮らしのトライタム

プログラムやツールの解説や技術を公開する場所

「Live2D Drawer」AviUtlでLive2Dを使う01

概要

今回はAviUtl内部でLive2Dのパラメータ諸々がいじれるプラグインが公開されたので、それの導入や使い方などを備忘録も兼ねて書いていこうと思います。
使うスクリプトは、がねーしゃさん(がねーしゃ@Live2Dいじり回し勢 (@Ganeesya) | Twitter)が開発されたLive2D Drawerです。記事執筆時点ではバージョンが1.0.1です。

AviUtlを導入してない・できない!

使ってみたいけどAviUtlの導入をしてない・できない!
確かに、AviUtlは便利ですけども導入が少々難しいです。
そんな方へ。以下の動画リンクから導入してみてください。
www.nicovideo.jp

こちらの導入編・初期設定編。任意でマイリストから2本のチュートリアル動画を観れば、AviUtlの導入・操作が分かります。
ネックはプラグインの部分になりますので、その点を気を付ければ他動画の導入動画でも使えるようになるはずです。
では本題へ。

Live2D Drawerとは?

youtu.be

AviUtlでLive2Dを直感的に扱えるようになるプラグインです。
これはEntyの出資者に公開される「完全版」。そうではない方の「一般版」があります。
一般版は機能限定版になっていて、完全版と違い一部使えない機能があります。
けれども基本的な機能は揃っています。
今回は一般版を使っていきます。

ダウンロード~導入

ダウンロードリンクは動画本文内にありますので、リンクをクリックしEntyへ飛びます。
ダウンロードはEntyのアカウントが必要になるので、ログインします。
もしEntyアカウントを持っていない場合はグーグル・ツイッター・メールアドレスのいずれかでアカウントを作成します。
ダウンロードが済んだら解凍します。

解凍出来たらinstallフォルダを開き、赤枠内の2つをコピーします
f:id:traitam:20170616204235p:plain

それをAviUtl/Pluginsフォルダにペーストします。
f:id:traitam:20170616204659p:plain
ここで大事なのは、exedit.auiというファイルがある場所へペーストするという事です。
これが無い場所へプラグインを入れても動作しません。

ペーストした後は、AviUtlを開き、
拡張編集ウィンドウを「右クリック」→「新規プロジェクトの作成」でプロジェクトを作成します。
その後、拡張編集ウィンドウを「右クリック」→「メディアオブジェクトの追加」でオブジェクトを追加します。
そして、カスタムオブジェクトの種類選択で「@Live2D」のカスタムオブジェクトがあれば導入成功です。
f:id:traitam:20170616205518p:plain

カスタムオブジェクトはどこから編集するの?という方へ。
赤枠内にあるカスタムオブジェクトをダブルクリックすれば表示・非表示ができます。
f:id:traitam:20170616205559p:plain


今回はここまで。次回は実際にLive2Dを表示したり、各カスタムオブジェクトの説明をしようと思います。
それではみなさん、楽しい創作ライフを!


次回
traitam.hatenablog.com

簡易ディスプレイボードを作る

ディスプレイボートとは?

ディスプレイの上にスペースを作って物を置くボードの事です。
以下リンクは製品です。
www.kingjim.co.jp

あると何かと便利ですが、小さいサイズでも1000円~2000円、大きいサイズだとそれ以上のお値段がします。
個人的にはちょっとお高い。

でも使ってみて、本当に使えそうか試してみたい。
という訳で100均のものを使って簡易ディスプレイボード作ります。こういうの作ります。
f:id:traitam:20170313151601j:plain

この記事は以下の方にオススメです

ディスプレイボードの大まかな使い心地を知りたい
製品が高くて手が出しづらい
100均スキー

作り方
  • 用意するもの

f:id:traitam:20170313150911j:plain
・ワイヤー型タブレットスタンド2つ
・水切りスタンドネット

小さいものを作りたい場合はタブレットスタンド1つでも事足ります。
水切りスタンドネットにした理由は「埃が溜まらない」という理由で採用しました。
細長い板状のものであれば代用可能です。花壇受け皿、木の板、まな板等々……。

  • 組み立て方

まず以下のようにタブレットスタンドを形作ります

f:id:traitam:20170313151251j:plain

コの字型の方でディスプレイに引っ掛けて、もう片方で支えるという形です。これを2つとも同じように作ります。

次に、作ったら実際に引っ掛けて面が水平になるように調整します。
調整が終われば、ねじをキツめに締めてしっかりと固定します。
ここが緩いとモノが落ちます。
f:id:traitam:20170313151339j:plain

最後に網を乗せれば完成です。
f:id:traitam:20170313151519j:plain

好きに物を乗せましょう。
私はカレンダー置いたり、Kinect置いてモーキャプ台座にしたりしてます。
f:id:traitam:20170313151601j:plain

注意点
  • 極端に重いものは乗せないようにしましょう(崩れる危険性を考慮して。大体1.5kg以下?)
  • 液体類は乗せないようにしましょう(飲み物をディスプレイの後ろでこぼして突然の死を防ぐため)
  • ディスプレイとの相性問題があります。ディスプレイのフチが狭いものはディスプレイを破損させる恐れがあります。私のディスプレイは20mmで、ちょうどコの字部分がフィットしました。
  • 実践して、万が一損害が起きても当ブログは一切責任を負いません

それではみなさん、楽しい創作ライフを!

apricotモデル作成(その7)

前回
traitam.hatenablog.com


今回は特定の時間や特定の日時にセリフを言わせるように加筆していきます。

ここでは主に、正規表現を取り扱うので理解されている場合はやっていることは前回より前と変わることはありません。では、始めていきましょう。

記述としては以下のようになります

    <!--サービス開始日ボイス-->
    <sequence name="Tick" state="\d{2,4}-04-23[\w\s]00:00:00">
      <sequence name="Samidare.ArmSwing" />
      <message>提督、今日は記念日ですね!<break/>素敵ですね!<break/>五月雨、いつもよりがんばっちゃいます!♪</message>
      <sequence name="Samidare.Say" />
    </sequence>

艦これのサービス開始時が4月23日だったので正規表現を用い、state内を書いていきます。

そもそも、正規表現とは。です。
だいたい「この文字があったら拾って処理にかける」とか「この文字はいらないから捨てる」みたいなかなり抽象的なシステムを書く時に使います。
今回、上記の記述だと「(何年でもよい)4月23日の(何時でもよい)タイミングで呼び出す」という形です。

正規表現は、書いてる私も現在勉強中なので多くの事が言えないですが、そんな感じだと思います。

また、シーケンスがTickですので、「今日は何日です」というタイミングで呼ばれます。

別の例を見てみます。

    <!--梅雨ボイス-->
    <sequence name="Tick" state="\d{2,4}-(05|06)-([0-2][1-9]|30|31)[\w\s]00:00:00">
      <message>梅雨の季節、五月雨、結構好きなんです。<break/>なんかこう…雨って良くないですか?ね♪</message>
      <sequence name="Samidare.Say" />
    </sequence>

state内が一気にごちゃっとしました。
これは「5,6月の01~29、もしくは、30日、もしくは31日のタイミングで呼び出す」という形です。
縦棒で、もしくは、orの表現ができます。日にちは2桁あるので[2桁目][1桁目]という記述になっています。これは時間でも同じような表現で記述ができます。
結構複雑なのですが、正規表現は結構大事な分野なので覚えておきたいですね。

無事に実装が終わると、Startシーケンスの後に期間内であれば以下のように喋ってくれます。
f:id:traitam:20170208105732p:plain

本日はこれでおしまいです。

それではみなさん、楽しい創作ライフを!

あ、そうだ。現段階から五月雨ちゃんモデルをGithubの方に上げました。
興味のある方はどうぞー。
github.com


次回
traitam.hatenablog.com

HUION GT-220V2購入しました pt.2 使用感編

前回、購入しましたレビュー記事を書いたのですが、使用感についていくつか気になった場所を列挙します。

探して同じようにレビューを書いている方が居ましたので、併せてご覧ください。
HUION製液晶ペンタブレット GT-220 V2 の簡易レポ - Togetter

【初めての】HUION GT-220 導入記録【外国製液タブ】 - Togetter

2017/02/08追記しました
2017/04/02追記しました


本題の前に。保護シート貼り換えました。型番はLCD-230Wです

https://www.amazon.co.jp/%E3%82%B5%E3%83%B3%E3%83%AF%E3%82%B5%E3%83%97%E3%83%A9%E3%82%A4-LCD-230W-%E6%B6%B2%E6%99%B6%E4%BF%9D%E8%AD%B7%E3%83%95%E3%82%A3%E3%83%AB%E3%83%A0-23%E5%9E%8B%E3%83%AF%E3%82%A4%E3%83%89%E3%83%8E%E3%83%BC%E3%83%88PC%E3%83%BB%E6%B6%B2%E6%99%B6%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BB%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E5%AF%BE%E5%BF%9C/dp/B0030CRI8W/ref=pd_lpo_147_lp_t_4?_encoding=UTF8&psc=1&refRID=8R3V75PDYRZJASECSW1J

元々グレアなのが苦手なのでノングレアな保護シートを選びました。
サイズとしては、全体は覆えないものの、書き込む液晶部分はしっかり覆えるサイズです。


次に本題です。なんだかんだでそこそこあります。

配線のわずらわしさアリ
 液晶側の配線が3本あるので、配線が遊んでスペースを使います。WACOMの液晶側一本化という、一見無駄に思えた配線周りも考えられて実装されたのだと感じました。ただ、配線が故障したときに高い正規品を買うか、1本だけ交換すればいいかという配線故障による恐怖感はかなり低いです。

繋げているディスプレイによって、キャリブレーションに問題が発生する
 解像度の違うディスプレイをいくつも使っているとWindowsと液タブドライバーのディスプレイ認識順番が異なるため、場合によっては問題が起きます。Windowsの液晶設定から情報を引っ張ってきてない(ドライバーが独自に液晶認識)ため、液晶のメインパネルを変えたらドライバーの方も手動で変えないといけない。特にSAIだとこの問題が顕著で液タブ含めて4枚液晶をつなげると、どう頑張っても液タブ上にカーソルが出ない問題が発生しました。SAI使いの人はちょっと慎重になった方がよいかも。クリスタ?持ってない検証してないです。ご容赦。
02/08追記
Windowsのウィンドウ認識順番は分かりませんが、ドライバの認識順番は、PC本体で認識された順番です。
Windows画面認識で1,2,3という順番で、ドライバが1,3,2という認識順番だった場合、ドライバ側で2と認識されている映像出力ケーブルを一度抜いて、再度差し込めば、液タブドライバ側で3番だったウィンドウが2番になります。これで画面の順番が同じになりました。


画面配置によって問題が発生する
 3画面以上行っている人は多くないかもですが、これも問題がありました。
 縦配置、横配置の複合で画面設定を行うとSAIでペン先が違うディスプレイもしくは、上面張り付きが起こります。というか画面問題は大体SAIで発生しました。他で問題ないということはSAIとの相性は良くないという事でしょう。公式でも言う通り動きます。(相性が良く、不具合が起きにくいとは言ってない)
f:id:traitam:20170206165134p:plain

f:id:traitam:20170206165147p:plain
画像上が問題の起こる配置、
画像下が問題を解決できた時の配置です。


また、解像度の違うディスプレイを使用するとWinTab API使用時に問題が発生します。詳しくは以下の記事からどうぞ。
traitam.hatenablog.com


SAI上でのペン入り抜きがなかなか独特
ペン先が沈む。そしてその沈み分、入り抜きが発生しないと考えられます。
これは長いストロークの線は影響が少ないですが、まつ毛の先を描くなどの短いストロークを描く時に顕著に違和感が発生します。慣れてしまえばそれでOKですが、ワコムに比べるとこの辺は繊細な事ができないです。
この問題は設定でタブレットPCサポートのチェックを外すと解消され、Wacomペンタブに似た挙動を起こしてくれます。細かく描きたい方はタブレットPCサポートのチェックを外すと良いと思います。

ペン先の角度によってカーソルが動く
 これはWACOMの方にあったかイマイチ分かりかねますが、確かなかったような。
 ペン先の傾きで筆圧が変わったり描写する場合に問題が発生しそうです。キャリブレーションでなんとかなるとは考えにくいです。

キャリブレーションは根気よく。何かの拍子でずれても面倒くさらず再設定
 液タブ全般に言えることですが、キャリブレーションは根気よく。
 また、OSの方でディスプレイ設定をするたび色々変化してしまう場合があります。例えば、複数画面時の位置調整とか。なので、そのような設定を行った場合、キャリブレーション再設定を。

ストロークが一瞬遅れて動く
 この辺は致命的になるかもしれません。
 ストロークが普通にブラウジングで使っても遅れます。
 速いストロークの人はなかなか問題のある症状かもしれません。

入り抜きが強く出る
 同じ設定でもGペンのような感じになった。
 筆圧が13HDよりはっきりと強弱が出る。これはこれでメリットになり得ます。

端で作業しているとグラつく
 大きいサイズのワコム液タブは全体を支えるような構造をしているため、端で作業していてもグラつかないが、
 これは端の支えが無いので、端で作業しているとぐらつく。ちょっと安定感が無くて怖いですね。

筆圧で設定は最も柔らかく
 ペン先の削れ対策もあるが、標準ではsaiでの使用で大分細くなってしまう。そのため最大にします。

新保護シートでゴリゴリ感あり
 キュッキュ言わなくなった。ゴリゴリいうようになった。
 多分、抵抗力が上がった。これだとペン先の消費が備え付けの保護シートより早そうです。

FLASH上でクリックができない
液タブ使って、ペンで艦これしようと思ったらクリックができない。
ニコ動のFLASH部分も同様に無反応でした。ドライババージョンは12.2です。
これは完全に想定外でした。ゆるーく液タブで艦これはできないですね。

[2017-07-29追記]
ドライバ設定の「タブレットPCサポート」のチェックを切ると左クリックが可能になり、FLASHでもブラウザでも問題なく動くようになりました。
f:id:traitam:20170729154038p:plain

2017/04/02追記
SAIでカーソルがディスプレイの上面に張り付く問題と対処
これは他の方の情報も含めての対処方法です。いくつかあります。
まずは問題提起から。
SAIをアクティブにしたとき、カーソルがどこかしらのウィンドウ上面に張り付くという現象です。
これにはいくつか対処があります。

  • 対処法その1

WindowsもしくはMac上で液タブをメインディスプレイに設定したのち、液タブドライバ上でもメインディスプレイに設定する。
その後、SAIを開き問題無ければ解決です。

  • 対処法その2

ディスプレイ設定で以下のような設定を行っている場合、上手くいかないと思われます。
f:id:traitam:20170206165134p:plain

そのため、以下のようなディスプレイ配置に変更してください。
f:id:traitam:20170206165147p:plain

  • 対処法その3

USBハブを経由して、液タブのUSBを挿している場合問題が起きるそうです。
なので、USBハブを経由せず、直接PCに液タブのUSBを挿すことで対処が可能なようです。



このカーソル張り付き問題の遭遇率は高いのでSAI以外でもこのような状況に出くわしたとき、対処方を行ってみると良いかもしれません。


現状ではこの辺です。

HUION GT-220V2購入しました

液晶タブレットです。買いました。
f:id:traitam:20170128173854j:plain

箱にはGT-220としか書かれていませんが購入したのはv2です。
なかなかネットにGT-220v2の記事が無かったので、少しでも購入検討の方の力になれば。

本体ですが。大きいですね。他の方からwacomの13DHを借りていたのですが、それに比べるととても大きいです。
購入時の値段は訳7万。ポイントとか使って6万で購入しました。

内容物はこちら

これは箱の中身です。
f:id:traitam:20170128174032j:plain

ペン充電ケーブル
ペンスタンド
組立用ねじ4本
ペン本体
プラスドライバー
AC電源ケーブル
手袋
購入時のカード
USB2.0<->USBTypeBケーブル

f:id:traitam:20170128174238j:plain
映像出力ケーブルはHDMIとD-subでした。

f:id:traitam:20170128174300j:plain
あとは本体、本体用スタンド、マニュアル・ドライバーです。

他のブログでもたびたび取り上げられていますが、最初からついている液晶保護シートはテープで四隅が留められているだけ、シート自体もあまりよくないので早期に、もしくは本体購入前に保護シートを買うと良いと思います。
f:id:traitam:20170128174445j:plain

f:id:traitam:20170128174459j:plain
f:id:traitam:20170128174503j:plain
f:id:traitam:20170128174508j:plain

本体背面にスタンドをねじで留めます。

f:id:traitam:20170128174526j:plain
13HDの時と違い、机と水平に使用することはできません。
最低角度は大体13HDのスタンドの2段目くらいですかね。

f:id:traitam:20170128174612j:plain
あと、ペンですが。これは充電式です。確か別売りで電池式があったかと思います。

f:id:traitam:20170128174644j:plain
ペン充電時はこのようになります。USB部分は充電器やPCにつなぎます。
そうだ。ペンスタンドですがペンを挿すことができません。寝かせて置くオンリーです。

内容物としては、すごくいいと思います。
WACOMタブレット単価が高いのでこのような選択肢が増えるのは嬉しい限りです。

次回は、使用感などについて書こうかと思っています。

apricotモデル作成(その6)

休みが…。終わる…:;(∩´﹏`∩);:

前回
traitam.hatenablog.com


前回からモーションを追加、喋る量増やして、好感度によるセリフの追加を実装しました。
モーションと喋りの実装はコピペなので割愛です。
好感度の実装について喋ります。

f:id:traitam:20170109203122p:plain

    <!--1~9-->
    <sequence name="Like" state="^[1-9]$">
      <!--好感度作成-->
      <sequence name="ケッコンカッコカリボイス">
        <sequence name="Samidare.TryUnlock" state="1">
          <sequence name="Samidare.NOP" />
        </sequence>
        <sequence name="Samidare.TryUnlock" state="1"/>
      </sequence>
      <sequence name="ケッコンカッコカリボイス" />
    </sequence>

これで、好感度の作成を行います。
ケッコンカッコカリボイスという実績を追加します。
これは好感度が1~9の時に実績のステートを1にするというものです。
Samdiare.NOPはそのStateを覚えるためのシーケンスです。

    <sequence name="Samidare.NOP">
      <!--数値記憶用-->
      <motion fps="30" z-index="-1">
        <image x="0" y="0" opacity="0" />
      </motion>
    </sequence>

イメージの中にopacityを入れてそこに記憶させます。

      <!--ケッコンカッコカリ母港ボイス-->
      <sequence name="Samidare.TryUnlock" state="^[1-2]$">
        <sequence name="Samidare.Activate">
          <sequence name="Samidare.Bounce" />
          <message>さすがの提督も、あまり根を詰めるとドジっ子しちゃいますよ?</message>
          <sequence name="Samidare.Say" />
          <message>ほらっ!休んで休んで!お茶入れてあげますね?待ってて!</message>
          <sequence name="Samidare.Say"/>
        </sequence>
        <sequence name="Samidare.Activate" />
      </sequence>

Activateシーケンスの中に、このような記述を入れます。
喋らせる内容ですね。
TryUnlockの中にSamidare.Activateを入れて、TryUnlockシーケンスの一番下に、Samidare.Activateを実行させます。

      <sequence name="Samidare.TryUnlock">
        <sequence name="Samidare.Activate" />
      </sequence>
      <sequence name="Samidare.TryUnlock" />

また、これに伴い、ActivateTalkをTryUnlockに名称変更しました。
Avtivateシーケンスの一番最後にTryUnlockを実行させます。

最初の記述で上手くいっていれば、「右クリック」 ->「コミュニケーション」->「ダッシュボードを表示」で新規ウィンドウ。
そのウィンドウの左側に実績が出ていれば成功です。
f:id:traitam:20170109203620p:plain

ただ、実際に上手く呼ばれているかは記述のミスの有無で決まるので、呼ばれない時はどこかスペルミスなどがあるので根気よく。
基本的にこのようなランダムで動きを作ると、ミスが増えやすくなりました。適宜デバッグしない箇所をコメントアウトするなどで確認をこまめに行いましょう。

それではみなさん、楽しい創作ライフを!


次回
traitam.hatenablog.com

apricotモデル作成(その5)

前回
traitam.hatenablog.com


少し機能を追加しました。テキストをコピーしたときに喋る機能、言葉を覚える、検索機能、定刻で時間を教えてくれる、計4つを追加しました。

追加記述は以下です。

テキストコピーしたときに喋る
    <sequence name="DrawClipboard">
      <message>{.}ですね</message>
      <sequence name="Samidare.Say" />
    </sequence>

テキストコピーの時に動かすときはシークエンスタグのDrawClipboardを使用します。
このシークエンス内で、言葉とモーションを追加すればいい感じに動きます。
f:id:traitam:20170108152420p:plain


言葉を覚える
    <sequence name="Learn">
      <message>{.}とは、いったい何ですか?</message>
      <sequence name="Samidare.Say" />
    </sequence>

言葉を覚えるシークエンスタグです。
これで言葉を覚えることができます。言葉を覚えるには「右クリック」->「コミュニケーション」から可能です。
ただ、記述的にどこかで{}内にキャラクターや人名などのタグを使用していないと色々出てきません。
マニュアル内では多くの数が選択できますが、今のところ記述が人名とキャラクターのみしか使用してないためそれしか出てきません。
f:id:traitam:20170108152431p:plain
f:id:traitam:20170108152440p:plain


検索機能
    <sequence name="Search">
      <message>{.}の資料をお持ちしました</message>
      <sequence name="Samidare.Say" />
    </sequence>

これで検索することができます。何を使って検索してるのかは知りません…。登録しているfeedやblogから?
f:id:traitam:20170108152949p:plain



定刻で時間を教えてくれる機能

    <sequence name="Tick" state="(01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23):00:00">
      <message>{h時}です</message>
      <sequence name="Samidare.Say" />
    </sequence>

ちょっと記述が長いですが、時間ごとに記述すると今度は下に長くなるのでこれで。
時間ごとに細かくセリフを変えることもできますが記述量が跳ね上がるので今回は見送りです。

今回はここまで
それではみなさん、楽しい創作ライフを!

次回
traitam.hatenablog.com