マヤ道!!

 前日発売になったマンガ形態の、Autodesk Maya 解説本です。

 途中でふと値段を見ると、なんでマンガ本が二千円超えてるのか?…とか。はた、と考える事もありそうですが、あくまで解説本な上にそれをわざわざマンガ仕立てにすることを考えたら、寧ろ安いかもしれないです…(´・ω・`)

 内容は、リガー入門であると同時にモデラー向けの啓蒙本(データを綺麗にすることの真意を説いた内容)になっています。

 この本だけ読んで、すぐさま役に立つ人達というのは、実際にプロダクションに入って働きたい学生さんや既に入っている新人さん(特にリガー)ですが、それ以外の方でも、何故リガーがデータの造りに執拗にこだわる面があるのかを知るのにちょうど良い内容かと思いました。

 機会があったら、手にとってみては如何かと。

Amazonの登録は以下。
https://www.amazon.co.jp/dp/4862463290

「音を生成する」ということ

 音は、人間にとって感覚的なもの。
 その感覚を、いろいろ論理的な理屈を元に組み上げていかないと、機械的に生成することはできない…なので、感覚的なものを知覚した事象として分解・整理、論理的な形にした上で、再構築する作業が必要。

 ということを、本をいろいろ読んでいて気付いた。
 理解したということではなく気付いたことなので間違っているかもしれないが、少なくともそういう道順を辿らないと感覚的なものを具現化させる方法が思いつかないので、特に間違っていないと思う。

 プログラム的に生成しようと思ったなら、図としては「波形」で表現される周期的な波長を計算で求めることになるので、音の数理的な表現が必要になる。

 「数理的に」というのは、現実的にはどういった周波数の音がどのように組み合わさっているかを数式で表す作業になる。
 基本的には、周波数と音圧の組み合わせ。スペクトル分析の領域では、どういった周波数の音が組み合わさっているか、を数値で表すことになる。

 従って、細かく計算式を立てて自分で信号生成する方法は採らずに、一般化された手法の上でツール化された MAX(Cycling’74社製)のようなソフトを用いて、音声合成を行う方が現実的かもしれない。

 MAX(MAX/MSP)を利用した場合でも、計算で音声を生成することは求められる。
 ただ、一般化された音声合成の方法は初めから用意されているし、外部拡張モジュールなどでパラメトリックな設定だけでも音声合成できる機能を多々利用できるので、数学が得意ではなくても自分の出来るところから始める形で徐々に理解を深めることもできる。
 実際には、最終的に自分で思い通りの音声合成をしたくなるだろうから、数理表現を学び独自の音声合成方法を試したくなるだろう。
 そうなると、もう完全に音声合成プログラミングの領域に踏み込むことになる。

 「純粋に音の生成ができればOKで、プログラミング記述は必要ない。」という場合には、その為の機能に特化したツールなので MAX/MSPはとても強力なツールになる。(言うまでもなく、音声合成の為の数学的知識は必要。)
MAXで、正弦波(サイン波:5Hz)を生成する、とてもシンプルな例。
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-06-%e5%8d%88%e5%be%8c0-07-31
 cycle~オブジェクトに周波数を与えると正弦波の信号が生成されるので、その信号を音声出力デバイス(PC接続中のスピーカーやヘッドホンなど)と信号表示オブジェクトに出力するよう指示している。

 通常のプログラム言語だとPCMデータの生成やPCMデバイスの準備・駆動といった処理も用意する必要があるが、そういった部分の作業から解放されるので、そのあたりの煩わしさを感じずに信号処理に注力できる。

MGSC

MGSDRV向けの mml->mgsコンパイラがgithubに公開されていたので、メモ。

>MGSC@github
https://github.com/digital-sound-antiques/mgsc

>MSXplay.js
>※こちらはmgs形式など、MSX向けサウンドドライバ向けプレーヤ(及び、コンパイラ)
http://digital-sound-antiques.github.io/msxplay-js/index.html

[iTunes] アルバムを表示したときに収録曲が全部まとめて表示されない場合

めも。


アルバムを表示したときに収録曲が全部まとめて表示されない場合
iTunes で「アルバム」表示にしたときに、同じアルバムの収録曲がすべてまとめて表示されないことがあります。

iTunes ライブラリをアルバム別に整理したときに、同じアルバムの収録曲が、別々のアルバムの中に表示される場合があります。
同じアルバムの収録曲が 1 つにまとめて表示されない原因としては、以下の 3 つが考えられます。

1. アルバム名が少し違っている。
2. コンピレーションアルバム (さまざまなアーティストの曲を収録したアルバム) である。
3. アルバムの一部の収録曲のアルバムアーティストが違っている。

対処法は、ここを参照

OSXで PCM再生(問題発生…)

 CoreAudioとか覚えるの大変そう…という理由で、OpenALを弄り始めてみたり。
 …しかし、それすら調べるのも面倒に感じてしまい、kindle本「チュートリアル形式ではじめるOpenAL」を見ながら、動かしてみることに。(なんという、ぐーたら)

 ちなみに、以下はまだ基本の出力デバイスとコンテキストを用意しただけで、音を出す処理は入ってない。

しかし、早速WARNINGと共にこんな出力が…

 ArturiaVみたいなソフトシンセをインストールしてると、OpenALって上手く動作しない可能性あるんだろうか…

 上記WARNINGは、単に不要な出力だけで済んでいるけど、正直消したい。が、これを消すのを調べるのは、結局1からOpenAL学ばないと無理。。

 なんかいきなり面倒くさいパターン遭遇で、出鼻挫かれたナリ。(=_=;

その後…

 一旦そのままチュートリアルを進め、サイン波の生成及び再生の確認は出来たので、PCM再生をしたい人は上記のkindle本とか読んでみるのもいいかもしれない。
 チュートリアル形式なので、その通りに手順を進めることが出来れば、サイン波を鳴らすことが出来ますw

 とりあえず、自分は「サウンドプログラミング入門 -音声合成の基本とC言語による実装-」とかを読みながら、PCM再生実装の基本的なことを試してみる予定。

 理論から攻めてみようと本を物色していたけど、結局学校の勉強みたいな方法で攻めるのは苦手なので、実践から攻めることにしました。

ダブルバッファでストリーミング再生する方法は、この回答みたいな話でいけるのかしら?
http://stackoverflow.com/questions/13907289/circular-buffers-in-openal
ストリーミング再生で調べたら、まんまの記事があった。
https://www21.atwiki.jp/opengl/sp/pages/174.html

[modo] Character Box

いつの間にやら発売されていたので、とりあえずメモ。
リグはモジュラータイプかな?
そこまで先進的には見えないけど、モダンな作りを感じる。

しかしスタンドアロンで6万円か~。
趣味で買うには、なかなかのお値段です…が、現状Windows版オンリーですね。(Macユーザー的には残念な感じ…)

http://www.psoft.co.jp/jp/product/cbox/index.html

[modo] Head-less モードというものがあるのか…

Zで行こう!のページを読んでいて見つけたので、メモ。

要は、コマンドラインベースで modoを操作できる仕組み。

レンダリング以外で自動実行を使って作業するなんて、よっぽど特殊な場面のように思う…
ページにも書いてあるけど、普通に考えるとバッチレンダーくらいしか利用場面を思いつかない。

http://blog.livedoor.jp/take_z_ultima/archives/51396260.html

カスタムフィールドを扱うには

 ”Custom Fields Suite”が便利。(前に”Advanced Custom Fields”を使ってたけど、ループは使えなかったと思う。)

 こことかここに、PHPで要素へのアクセス方法が書かれている。

場合により、オブジェクトを設定した変数名が“$cfs”から”CFS”に変更が必要な模様…
(自分は”$cfs”でないとエラーが出るが…どういうこと?)

 ループという概念があって、このページの解説のように一連の項目を複数連ねて書き込むことが可能。

ループの子階層に要素を設定するには、ループ追加後に一旦”公開ボタンを押す”必要がある。
投稿を標準の記事と分けたい場合

 自分で投稿タイプをコーディングするのは大変だと思うので、”Custom Post Type UI”や”Toolset Types”などを併用するのが得策。

いろいろ試してみると

 微妙に痒いところに手が届かない感じがしてきた。。

 ”Advanced Custom Fields”だと、タイトルなしでも登録できるが、これはタイトルを入力していない場合には”投稿した”ってステータスを出すわりに投稿リストになにも反映されない。(ID消費しているのでどこかに記録だけされているかもしれないけど、一覧にリストされない。)

 他にもちょっと困った部分があって、”Search Everything”を使っても、ループ内に入力した内容は検索対象にならない。
 …なので、ループ内を検索するには、独自に実装を追加するしか手がなさそう。

Computer Chronicles

昔の番組らしい映像をYouTubeで見つけたので、めも。

あとで調べてみると、司会者の一人は、CP/Mを開発したゲーリー・キルドールその人でした。

 
>C64

>Macintosh

>Windows98 & Linux

 リーナス・トーバルズの映像は初めて見た。
 日本じゃ拝むことないような気がする…

C++の多重継承の罠

本読んでて、あー忘れてるなーと思った話なので、めも。

このへんとかこのへんを読むと言及されているが、C++言語仕様的な話。

 クラス継承をした新しいクラスのインスタンスを生成すると、親のコピーと1セットでメモリ配置されることになるのだが、ダイヤモンド継承の形になった場合に、親のコピーの中に”同じものが2つ生成されてしまう”という問題が起きる。

 C++の場合”仮想クラス(virtual)”という定義があり、これを大元のクラス定義に使用することで、問題を解消(最終的にメモリ配置される場合に、1つだけメモリ配置するように自動調整)できる。

C/C++を学ぶ際には

 「内部動作やメモリ配置についてよく把握しなさい」と釘を刺されるが、こういった問題がポピュラーなことが要因。

 忘れないようにしたい。。

モジュラー・リギングとは

 めも。

 リギングの一手法。

 人型(ひとがた)を作るには、背骨、腕(左右一対)、脚(左右一対)という制御用の構造が必要になる。
 「背骨:しなるように曲がる構造」
 「腕:肘及び手首関節、肘の先には5本の指を持つ掌」
 「脚:膝及び足首関節、足首関節の先に5本の指を持つ足 」

 こういった基本的な構造を1つの部品として定義・用意しておき、必要に応じて”部品としての構造(モジュール)”をモデルに適用することで、リギングを行う手法。

 「プロシージャル・リギング」という表現は一般化されたツールでは聞かない気がするが、設定されたリグを必要に応じて付け外しする。という、手順の自動化を行うツールはあるし、こういうのもプロシージャルの一種ではあるかと思います。

 そもそも、モデル形状に対する関節位置決め(ボーン位置決め)〜頂点とボーンのバインド〜モジュールとボーンのフィッティングの流れをなかなか機械的に行えないので、その辺りは結局人の手に頼っている状況があるわけです。。

 それでもモジュールの適用を全自動で…というレベルのプロシージャル・リギング・ツールはあるのかしら?

パラメトリックとは

 めも。

 コンピュータ系でも特にCG分野に限った話として、「パラメータに依存して、振る舞いを変えるもの。」というような意味合い。
 アトリビュートの数値を変更すると規定のパターンに従っていろいろな振舞いをする。という話なので、特にそれ自体が目新しいものではない。

 要は、「パラメータを操作する事で、振舞いを自由に調整できるような形にパッケージされたもの。」という話で、その自由度はパッケージ化される際の想定や設計次第となる。

プロシージャル・モデリングとは

 めも。

 じわじわと聞かれるようになった「プロシージャル・モデリング」とは、なんだろうか。
 基本的な事は知っているんですが、あまり気にする範囲の技術ではないので放置していました。

 基本的には、「手続き型モデリング法」と呼ぶべき手法です。
 モデリングの操作(1ステップ分)を1つの”パターン”として考え、形状はパターンの積み重ねで出来上がるもの…という考え方でモデリング(形状編集)を行う手法です。

 ネジのような工業部品のモデリングを例に採るのが一番わかりやすい例で、こんな感じの話です。
 
 あと、こんなのとかね。

modoのヘルプの参考は…

 こんなシンプルなものだった。

スクリーンショット 2016-06-19

 機能をざっと見た感じ、そんなに細かい機能はまだ用意されてないように見えるので、今の状況で手続きを全部残しながら細かいモデルを作れるような機能というわけではなさそう。
 大雑把にパラメトリックな要素を持ったオブジェクト編集が可能。って印象。(かと思えば、頂点や範囲指定で影響範囲を指定するオブジェクトとかあるので、面倒そうではあるが使い方次第ではそれなりに操作可能には見える…)

 サンプルムービーでは、MeshFusionと一緒に使ったようなモデリング参考を見せているので、いまのところは既存のブーリアン機能とセットで使うことで表現方法の幅を広げる想定かも。

modoのこの機能の場合に言えるのは…

  • Mesh Operation Stacks の構造。
  • Mesh Operation Inputs は、入力としてなにを必要としているのか。

この2つをちゃんと理解しないとまともに動かせない。なので、最初のとっつきは非常に良くない。