チラシの裏をどう作るか

雑に書き連ねた日々のチラ裏のメモ書きをどう管理するか。

Scrapboxを始めてみたので使うにあたって考えたこと等を書いておこうと思います。はてなブログからScrapboxに移行したというわけではなく、ブログにならないような大量の雑文を管理するツールとしてScrapboxを使い始めました。

残したいもの

URLがあるもの

URLがないもの

  • テキスト
    • 考えたこと
    • やったこと
    • やりたいこと

ツールに求めるもの

  • 考えたことややったことを雑に書けさえすればいい
    • リッチなエディタは不要
    • Markdownの見出しとリストがあればいい
  • テキスト以外のコンテンツはURLで残すことができる
    • 画像の添付機能等は不要
  • クラウド上に残したい

ツール遍歴1: Evernote

pros

  • クラウド上で管理できる
  • 雑に何でもクリップできる
  • ノートの移動やマージが簡単にできる

cons

  • Markdown非対応(重要)
  • とにかく遅い・重い
  • 特に同期中の操作が重い
  • アーカイブすると見れなくなる

ツール遍歴2: Boostnote (& Google Drive)

pros

  • 軽い
  • Markdown対応(重要)
  • 必要なものだけがある
  • Evernoteのように同期処理がエディタの動作に干渉しない
  • Github上でバグ報告ができるし対応が早い!

cons

  • 特にない
    • 強いていえばMarkdownエディタであること(矛盾)

というわけで、Evernoteを愛用してたんですが重いしMarkdownに対応していなかったので、ここ最近はBoostnote&GoogleDriveを日常的に使っていました。こういう感じで半ば日課のように雑に書き連ねてます。

f:id:cignoir:20180620195007p:plain:w400

ツール遍歴3: Scrapbox

大好きサービスでプレミアム会員継続中のGyazoと同じ会社が作ってるScrapboxというものがあるらしいと、結構最近になって存在を知りそのコンセプトに共感してScrapboxに移行してみることにしました。Scrapboxの思想等については別の方がわかりやすく解説されていますので、そちらを参考にしていただければと思います。

参考

Scrapboxを触ってみてわかったことなんですが、Markdownは簡単だけどプレビューモードが必要な程度には難しいんですよね。個人的にはMarkdownのうち見出しとリストとリンクぐらいしか使ってなかったのでMarkdownの仕様は少し重い感じがあって、Scrapboxの箇条書き文化にすぐに馴染むことができました。

情報整理の手法として限界を感じていた階層・ラベル管理システム、テキストを記述する行為を少し難しくしていた各種記法やプレビューモードから開放された気分ですが、Scrapboxにも不満がないことはないので使ってるうちにまた気が変わるかもしれません。例えばリンクを辿るコストに比べて辿ったリンクを戻るコストが大きいためにリンクを開くのを躊躇してしまうことなどです。

まぁ、しばらく使ってみます~~~✌ ('ω') ✌

scrapbox.io

最後に、書きながら思ったのですが、自分自身Evernoteをフル活用していたときはEvernoteに不満はなかったし、Boostnoteをフル活用していたときはMarkdownに不満はなかったし、使い倒してみてわかることや新しいものに触ってわかることがたくさんあるので、その人に合った、その人のタイミングで手段を変えていくのが良いのかなと思います。特定のアプリケーションについてメリット・デメリットをいくつか挙げましたがあくまで個人の感想としてあまり鵜呑みにしないようにしてくださいませ。

✌ ('ω') ✌

制作日記: 年末年始

2017/12 ~ 2018/01 上旬の作業記録。

年末からリギングの動画とトポロジの写経という沼に落ちています(現在進行系

やったこと

リギングの勉強

Sergio Mucinoさんの教則動画「Character Rigging Course」で引き続き勉強中です。

▼ Episode30までで学んだこと

  • ガイド用のリグの作成
  • メインとなるリグの作成
  • IK/FK リグとコントローラ作成
  • IK/FK ブレンディング
  • 鎖骨とか足の凝ったリグ作成
  • 首・腕・背骨のねじれ用リグ作成
  • リグのモジュール化

Episode64のうち30が終了。約17時間。

前まではリグというと、ボーン一組とIKゴールがいくつかあるだけみたいなイメージだったので、アニメーション用の様々なコントローラを用意したり、ノードでジョイントの連動や制限を行ったり、モジュール化を行って再利用しやすくしたり、やることのすべてが目新しくて勉強になります。小難しいことを抜きにして一言で一番の大きな成長点を挙げるなら、スケマティックへの恐怖心がなくなったことです。

f:id:cignoir:20180117012036p:plain:w300

こんな感じで一見いい感じに出来てきたなぁと思ってたんですが、ガイドのジョイントの位置がずれてたり、回転軸が関節の曲がる方向と違ったり、IKとFKを切り替えたときにジョイントが大幅にずれたり、色々と細かいところで崩れていました。コンストレイントが張り巡らされているために修正がなかなか面倒だったので最終的に、作ったロケータを流用しつつまたEp1からやり直すことにしました(3回目

動画を追うことに必死になって確認しないといけないポイントを見ることができていなかったので次こそは!

トポロジの写経

少し前にtwitterで「このCMで使われてるローポリモデル風のワイヤーフレームモデラーから見ると気持ち悪い!」みたいなツイートが流れてきてたのでその画像を見たんですが、自分の能力不足で何が気持ち悪いかわからなかったんですよね。むしろ自分が作るトポロジより綺麗に感じましたw

こういう美的センスは「良いモノ」にたくさん触れることで培われるだろうと思い、トポロジの勉強になるような何かを探していたところArtStationで素敵な投稿が見つかったので、トポロジをパク……写経(模写)することにしました。リギング動画がそろそろスキニングの作業に入っていく流れだったのでその前に作業用のモデルを見直したかったというのも理由の一つです。

https://www.artstation.com/artwork/eNq43

素晴らしいですね。素晴らしいと思うんですけど、今の自分には何がどう素晴らしいのか力不足でちゃんと認識出来てないんだろうと思います。本当はもうちょっとポリゴン数が少ない方がわかりやすくていいんですが、ローポリはそれはそれでチューニングされすぎて思考の跡が省略されてたりするのでやるならとことんやるかと思い、お手本そのままの解像度で素体にポリゴンを貼り直してみてます。

f:id:cignoir:20180117013442p:plain:w300

f:id:cignoir:20180117013452p:plain:w300

ZOZO SUITできた

実際に手を動かしてやってみると、やっぱり単純なコピー作業にはならなくて、「あれ枚数が狂ってる?どこで間違えた?試しにループ選択してみよう。螺旋状に想定外の大量のポリゴンが選択された!逆に要点のループをちゃんと抑えておけばループの間はブリッジで埋めればそれなりにみえる。画像でここは確認できないから推測しないと」みたいな試行錯誤を繰り返していました。

過去に見かけた「エッジループやポリゴンループが大事だよ」「ZRemesher(ZBrushの自動リトポ)するときは螺旋が出来ないようにしないとつらいよ」という先人の言葉の意図が今までよくわかってませんでしたが、やっと点と点が繋がってきた気がします。

  • よく修正しそうな場所のループ選択がしやすい
  • ループが螺旋になっておらず閉じている
  • 人体の流れに沿っている

とりあえずこの3つがちゃんと出来ていればマシなトポロジになるのではないかなぁと思いました。ループ選択がしやすいと部分的な修正がやりやすいし、ループが閉じていることで修正の影響範囲を小さく出来ますし、人体の流れに沿っているとアニメーションで破綻しにくくなるのかなぁというあたりが理由です。

リギング動画は大きな手戻りも発生していてまだまだ先が長いですが、FacialRigを組むのを楽しみに頑張ります。それではまたしばらく沼へ。

そういえば明けましておめでとうございます。今年もよろしくお願いします!

制作日記: テキスト起こしの続き/字幕化

昨日、GCPのSpeech APIを使用して、動画の音声をテキストに起こしましたが、csvから字幕用のsrt形式に変換することで動画と一緒に再生することが出来ましたのでメモを残しておきます。

f:id:cignoir:20171202013904p:plain:w300

フォーマット変換

  • 昨日吐き出した変換前 csv ※srtへの変換スクリプトは長いので最後に載せておきます。
00:22:33,00:23:44,Hello
00:24:10,00:24:15,Fuck
  • 変換後 srt
1
00:22:33,000 --> 00:23:44,000
Hello

2
00:24:10,000 --> 00:24:15,000
Fuck

字幕対応のプレイヤーで再生

VLC Media Playerの例

f:id:cignoir:20171202014418p:plain:w300

メニューから変換後のsrtファイルを読み込むだけです。 設定画面から字幕位置やフォントの変更なども出来ます。

f:id:cignoir:20171202014544p:plain:w300

srt変換 rubyスクリプト

require 'csv'

dir_path = 'D:\result\\'

def wrap(s, width = 80)
  s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n")
end

csv_files = Dir.entries(dir_path).select{ |filename| filename.end_with?('.csv') }
csv_files.each do |file|
  blocks = []

  csv = CSV.read(dir_path + file, headers: false)
  csv.each_with_index do |row, index|
    start_time = row[0]
    end_time = row[1]
    body = row[2].strip

    block = <<"EOS"
#{index + 1}
#{start_time},000 --> #{end_time},000
#{wrap(body, 120)}
EOS
    blocks << block
  end

  srt = blocks.join
  File.binwrite(dir_path + file.split('.').first.gsub('audio_', '') + '.srt', srt)
end

約35時間分の動画の非同期音声認識にかかった料金

f:id:cignoir:20171202024811p:plain:w300

4327円

登録時のおまけのクレジットで余裕で支払うことができます。

制作日記: 動画でRiggingのお勉強

f:id:cignoir:20171201011020p:plain:w300

ちょっと前から上のジーナさんモデルを作っていて、ACSでリギングを行っていたのですが、独自のボーンを追加したいときはどうすれば……フェイシャルリグってどう組めばいいんだ……と、標準機能の知識が不足しすぎてて迷走していました。

そんな中、コメントで Character Rigging Course というチュートリアル動画(有料・35時間)が勉強になると教えていただきました。英語の文章は少しわかるのですが、動画となると自信ないなぁと思いつつ思い切って購入してみました。現在、35時間中の6時間分ほど見終わったのですがもう本当に目から鱗がぽろぽろ落ちる感じです。ヒアリングはあまり出来ないので操作を真似して盗むスタイルの勉強になるのですが、それでも十分といっていいほど勉強になってます。

ただ、やっぱり解説とかが聞き取れないのはもったいないなぁと思い始め、 GoogleCloudPlatform(GCP) の Speech API を利用しての自動テキスト起こしを試してみました。

twitterでのしげぽんさんとの会話で思いつきました💡

下準備

動画から音声ファイル抽出

GCP 関連

GCP のことはよくわかっていないので他のサイト様の解説におまかせします。本当は今日発表された AWS の Transcribe を試したかったんですが申請が必要だったので……

音声認識スクリプト実行

必要な情報

  • プロジェクトID
  • 認証情報(json)のファイルパス
    • サービスアカウント作成時にダウンロードしたファイル
  • 音声ファイルのCloudStorage上のパス(gs://~)

gem インストール

$ gem install google-cloud-speech

スクリプト

require "google/cloud/speech"
require 'csv'

# 音声認識結果の整形用(適当
class Google::Cloud::Speech::Result
  def start_time
    Time.at(@words.first.start_time).utc.strftime('%X')
  end

  def end_time
    Time.at(@words.last.end_time).utc.strftime('%X')
  end

  def simplify
    [start_time, end_time, @transcript]
  end
end

project_id = "***" # プロジェクトID
credentials = "/path/to/credentials.json" # 認証情報のファイルパス
src_audio_file = "gs://~" # CloudStorage上の音声ファイルパス
dst_csv_file = "result.csv" # CSV出力ファイルパス
encoding = :flac # 音声ファイルの形式
language = "en-US" # 音声の言語

speech = Google::Cloud::Speech.new(project_id: project_id, credentials: credentials)
audio = speech.audio(src_audio_file, encoding: encoding, language: language)

response = audio.process(words: true)
response.wait_until_done!

result = response.results.map(&:simplify)

CSV.open dst_csv_file, "w" do |csv|
  result.each{ |row| csv << row }
end

結果

こんな感じで概ねうまく認識出来ていました。非同期の音声認識をやってる人やRubyの例が少なかったので参考になれば幸いです。料金は見積もりが間違っていなければ35時間分の動画で$50ぐらいみたいです。メリットを考えたら全然安いですね。

師走

年内は動画のお勉強で終わりそうです。ジーナさんの続きの制作は年明けになると思いますが成果を発揮できるように勉強を頑張ります。

制作日記: 妲己

f:id:cignoir:20171024010715p:plain:w400

原作ファンの方すみませんすみません、モンストの獣神化妲己の二次創作です。

今回は本当に色々と学びが多くて大きく成長出来たと思うし、いつにも増して楽しい制作となりました!

出来たこと

  • 比較的短い制作期間
    • 平日3時間 * 14日ほど。今までは最低2ヶ月ぐらいかかってた。
  • テクスチャの手塗りに挑戦
  • 厚みのある髪のワークフローが自分の中で整理出来てきた

出来なかったこと

  • 表情付け
  • 口内・舌
  • 炎や煙のいい感じのエフェクト
  • 狐の制作
    • 動物の制作経験がないので是非リベンジしたい

あとは、イラストに近づけようとするほど、魅力を引き出す力が圧倒的に不足していることも感じました。精進します。

次に頑張ること

表情作り。

簡単な1つのモーフマップを使用した表情作りは出来るのですが、複数連携させるフェイシャルリグでやりたいです。やり方がさっぱりなので調べるところから地道にやっていこうと思います。

習作: #ハロウィン

f:id:cignoir:20171006013226p:plain:w400

もうすぐハロウィンということで、2,3週間前からお題をもとに制作に取り組んでみました。3Dモデルを用いた絵作り自体をまともにやったことがなかったため、いろんな困難を体験することが出来て勉強になりました。

言葉で説明するのが難しいのですが、今までは造形面しか見えてなかったんですが、光と影を操るライティングの重要性を今回初めて認識しました。

  • 色や質感について掘り下げる
  • 髪のワークフロー整理
  • スキニングの問題を解決するべく素体新調

課題が無限に噴出しますが、ざっくりここらへんに取り組んで、次作で成果が出せればと思います。

制作日記: SyFlex for Modo を触る

髪とスカートの物理シミュレーションは自分の環境や用途で出来るのだろうか、出来るにしても出来ないにしてもそれらを知った上でセットアップ作業をするのが段取りが良いだろうということでソフトボディとSyFlexを触ってみました。

ソフトボディ

SyFlex for Modo

クロスシミュレータ界(?)で有名らしいプラグインModoにも対応してるみたいだったので試してみました。金額は$200 ぐらいです。まずはスカートをクロスに設定するためにAddClothし、身体にCollideMeshを設定していきました。しかし、何度やっても身体がスカートを突き破ってしまい、丸一日設定をいじって調整してたんですが、うまくいかず。最終的に原因は設定ではなく、ローポリすぎたことだとわかりました。動作が重いイメージがあったのでポリゴン数減らしていたのがまずかったようです。CollideMeshの仕様や形状が可視化されていればもっと早く原因を特定出来た気がしますがまぁ盲点でした……

スカートを再分割してやり直すとデフォルトの設定ですんなり動いてくれました!

Pinのテスト

www.youtube.com

クロスシミュレータならではの美しいドレープを作ることができました。これだけで結構感動的です。スカートを手でつまむ挙動はスカートのつまむ部分に設定したPinに手を触れさせて無理矢理吸着させています。ただし、これだと手以外の部分(手首など)がスカートに触れてもそことスカートのPinが吸着してしまったり、太ももにくっついてしまったり色々な問題があります。

Nailのテスト

www.youtube.com

Pinの問題を解決するために、Nailを使用してみました。Nailを使うことでスカートの一部を空間に固定し、それをロケータと連動させ、Pinでやったのと同様の動作を実現できました。こちらの方が色んな用途に使いやすそうです。ついでにこれらの作業をやる過程で、ACSのバインドメッシュに後からメッシュを追加してウェイトを手付けで設定する方法を学び、ビスチェを身体に含めました。

髪にも適用してみる

スカートとは別に髪にもClothを追加して試してみました。

www.youtube.com

お、惜しい。

身体との衝突の挙動や動きは良い感じなんですが、髪同士が雑に絡まっています。おそらく自己のメッシュとの衝突を考慮しないといけない気がするので、後日その線で調査してみます。

f:id:cignoir:20170821015937p:plain:w300

しかしこの、雑に髪をふわっとした状態を作る用途だけでも便利そうな気がしますね。SyFlexすごい。