最近の100件  1  2  3  4  5  6  7  8  9  10 

2016.04.24

テクスチャの黒抜き

初音ミク冒険記でも試練の洞窟から出た時に
レンズフレアのエフェクトがある。

元々、下図のようにAstlibra本編の第1章の最初の演出として
レンズフレアがあって
初音ミク冒険記のレンズフレアは、それのマネで作ったものだった。
Astlibra

プログラムの作りとか、エフェクトの向きの都合で
完全丸パクリではないものの
白いテクスチャを使ったものとかは、その名残だったりします。

一応、Game Programing Gems Vol.1の
2Dレンズフレアの章を参考に
自分でテクスチャを作って、
1フレームごとに直線になるようにテクスチャを回転させて
それっぽくなるように作ったつもり。

が、やっぱりレンズフレアだから色が白だけってのも寂しい感じがしてた。

AfterEffectsの標準エフェクトの中にレンズフレアがある。
それを使うと、当然、色もそれっぽくなる。

が、AfterEffectsで作ったエフェクトは、ゲームではそのまま使えない。
このため、調整したレンズフレア画像を
アルファブレンドした画像が必要になる。

でもレンズフレアの画像をアルファブレンドで作ってしまうと
光具合とかの見た目が確認しづらい。
そうなると黒背景で画像を作ったりする必要が出てくるわけだ。

ようやく本題の「黒抜き」にたどり着きました。coldsweats01

AfterEffectsが起点なので、まずはAfterEffectsでの黒抜きから。
黒抜き前の画像はコチラ
Aftereffects

黒バックの素材から被写体付のアルファチャンネルを自動生成には
Knoll Unmult(ノル アンマルチ)というプラグインを使います。
http://www.flashbackj.com/red_giant/free_plugin/

これはTrapcodeなどを出しているRed Giant 社の無償プラグインです。
使い方は下記の動画を見ると分かりやすいです。

Aftereffects 使い方講座 チュートリアル 素材の黒バックを抜く 透明グリッド Knoll Unmult その他ルミナンスキーで白抜き黒抜き tutorial きせりのCGTV
https://www.youtube.com/watch?v=jHuNWDDKIIo

Aftereffectsで黒抜きした後は
メニューの「コンポジション」-「フレームを保存」-「ファイル」を選択し
レンダーキュータブから「レンダリング」すればPhotoshopのファイルを出力できる。

次にPhotoshopで黒抜きしたい場合。
下記のサイトで配布されているUn-Multiplyアクションで行う。
http://www.ayatoweb.com/download/down04.html

■インストール方法
かげさんのPhotoshopはCS6なので
Photoshop Action File for MacOSX・Windows(Photoshop CS5・CS6)をダウンロードしました。

Photoshopのウインドウ>アクションで、アクションパレットを開き
アクションパレットのミニメニュー「アクションを読み込み...」から
ayato@web.atnを開く。(Photoshopのアクションフォルダに直接入れると反応がないので注意)
(MakeFillとUnMultiplyの両方がインストールされる)

なお、「UnMultiply」の実行をする際、ダイアログが表示されて戸惑うかもしれないが
何も考えずひたすらOKを押していくと目的の加工が終了する。

この状態が黒抜きで、白抜きをしたい場合、Ctrl+Iで白黒反転させてから行うと良い。

<適用時の注意>
・RGBモードで適用する(CMYKモードでは動作しない)
・レイヤー状態で適用する(背景状態ではうまく動作しない)
・不透明の状態で適用する(透明部分が存在するとうまく動作しない)

かげさんが使ってて、ちょっとハマったのは
アルファチャネル5が作れないと出る時で、
これはアクションの履歴を綺麗にすると解消されました。

さて、これで黒抜きができるようになったわけで
早速、レンズフレアの処理を変えてみた。

が・・・
静止画で見ると結構差があると思ってたのだけど、
ゲームとして動かして動画比較したら、
スゴく良く見てないと気づかないくらいの差にしかならなくてガッカリ・・・orz
Photo

オレンジの部分が黒抜きで緑っぽくなってて
背景に同化しやすくなってしまい
薄い青もちょっと微妙。weep

まぁ、15~20フレーム(0.25~0.33秒)のエフェクトなので
アルファブレンドされた薄い色合いだと思ったほどの
見た目の変化じゃないのねってことでした。coldsweats01

黒抜き自体は、今後、Optical FlareやTrapcode StarGlowとかで
テクスチャを作ろうとした時に使える方法なので
今回の実験は完全に無駄だったわけじゃないってことで良しとしよう。happy01

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2016.04.17

たまに近況を書いてみる(LeapMotionのことが多め)

2月に入ってから仕事に支障が出るレベルで体調が悪くて
記事更新が滞っているかげさんです。

去年の9月、11~12月も体調が悪かったので
慢性的に体調が悪い感じで、病院で検査を受けたりもしてました。

体調が悪いとやる気も集中力も落ちてしまうので
みなさんも健康管理には気をつけてくださいね。

と、これだけだと近況としては寂しいので、もうちょっと書いてみよう。

■初音ミク冒険記について
細々とですが、開発を続けています。

集中力が落ちている関係で、tracで管理している作業チケットを
行き当たりばったりで、小さなものを消化したりしてます。

各作業につながりがなく、小さいことなので
あまりブログで紹介するような内容でもないことが
記事が少ない要因でもあります。

■LeapMotion
これまで記事にはしていませんが
ヨドバシのポイントが貯まったのでLeapMotionをゲットしました。note

LeapMotionは「手」や「指」、「指示棒」などの動きを検出するセンサです。
どんなものかは、下記の動画で見てもらうと良いかも。


【国内正規代理店品】 Leap Motion 小型モーションコントローラー 3Dモーション キャプチャー システム

amazonだと、こっちのリンクのほうが安価ですね。

下記の本を参考にプログラムしてます。

LeapMotionプログラミングガイド[改訂版] (I・O BOOKS)

集中力を欠いているため、まだ指の検出までしか進んでません。
Photo

PrintScreenキーを押す関係で画像は左手だけですが、
ちゃんと右手も検出しますし、
リアルタイムに指の動きを検出してます。

2

左右の手や指などのフィルターをして
スワイプ、サークル、キータップ、スクリーンタップ
といったジェスチャーを検出できるようになってくると
結構便利かなと思っています。happy01

将来、Oculus Riftを入手時に使えるんじゃないかというのがあって
実は、結構前からLeapMotionには目をつけていました。

もっともOculus Riftの製品版が想定より、かなり高額だったのでので、
そもそも予約すらしていないんですが・・・coldsweats01

今のところ、使いみちとしては、アプリケーションランチャとか
デュアルディスプレイでの
マウスカーソル移動の高速化やアプリケーション切り替え、
現在マウス位置の視認しやすいマーク表示といったことで使おうかな?
と考えています。

ありていに言うと、初音ミク冒険記の開発で不便に思っていることの
解消の入力インタフェースに使おうって感じですね。

どこかのタイミングでLeapMotionについては、
別途記事を書きたいなぁ、と思ってます。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2016.03.10

「MOMODORA 月下のレクイエム」をPS4コントローラで遊ぶために、いろいろと調べてみた

PS4コントローラは、USB接続なのでPCでも使用できる。
(PS3のもUSB接続できるけど、後述の記事のMotionJoyが必要)

実際、初音ミク冒険記やAstlibraの本編や外伝は、
繋いでドイラバなどがインストールされさえすれば使用できる。

もっとも、この状態だと十字キーが使えず、
アナログスティックの左で代用するのと
バイブレーション機能は効かないのだが・・・。

まぁ、バイブレーション機能は、PS2やPS3の時も
ドライバをインストールしないと使えなかったので
そういうものなのかも?と割り切ることにする。

ちなみにPS3のコントローラでバイブレーション機能を有効にする方法は
下記の記事を見てください。
PS3のDualshock3コントローラで初音ミク冒険記をプレイする

さて、PCのゲームコントローラには大きく分けて以下の2つがあるようです。
・DirectInput方式
・XInput方式

どうやらPS2、PS3、PS4のコントローラは
DirectInput方式にしか対応していないみたい。
(DXライブラリのCheckJoypadXInput関数で確認しました)

このため、XInputにしか対応していないMomodoraでは
PS2、PS3、PS4のコントローラは、反応しないらしい。wobbly

XInputに対応しているのは、Xbox 360とかのコントローラですが
かげさんが持っているXbox 360コントローラはワイヤレスなので
xbox ワイヤレス レシーバーが無いと使えません・・・

が、わざわざワイヤレスレシーバーを購入するのもなぁ・・・weep

ってことでPS4コントローラをPCゲームで使う方法を調べてみた

どうやら、2つあるみたい。
1.DS4Toolを使う
2.x360ceを使う

たぶん、使い方としては、1の方が良さそうなんだけど
DS4Toolは、MotionJoyが入っていると競合するみたいなので
今回はx360ceを使うことにします。note

かげさんのマシンは、PS3コントローラを使っている関係で
既にMotionJoyが入っているからアンインストールしないとダメなのよ・・・

なお、DS4Toolを使う方法は、以下のサイトが参考になりそうです。
PS4コントローラでPCゲー? -DS4 Toolの使い方と紹介-

以下、言葉でのみ説明しますが、画像が見たい方は
下記のサイトを見てください。
PCゲームでXbox以外のコントローラーを使う!「x360ce」の使い方

x360ceのダウンロード
https://github.com/x360ce/x360ce
の下の方にDownloadのリンクがあります。
32ビット版と64ビット版がありますが、
Momodoraは32ビットゲームのようなので32ビット版をダウンロードします。

ダウンロードしたファイルを展開したら、展開されたexeファイルを、
起動したい「ゲームのフォルダにコピー」します。
(ここがポイントです)

PS4のコントローラを繋いで
コピーしたexeファイルを起動します。

メッセージボックスが1、2回でますが、全部「YES」を選択します。
「Next」を押すとコントローラが認識されます。
「Finish」を選択します。

コントローラの画面が出たらPS4のコントローラのボタンを押します。
押されたボタンが反応して画面に表示されます。

必要に応じてボタンを設定したら、「Save」して終了します。

起動したいゲーム「MomodoraRUtM.exe」を起動します。
これでPS4コントローラが認識されます。happy02
(バイブレーションは効きません・・・)

Momodoraでパッドは認識されるようにはなったんだけど、
実際には、Momodoraには詳細なパッドコンフィグがないから
ジャンプボタンの位置を変更したくてもできないんだけどね・・・coldsweats01

でも十字キーも効いて、キーボード操作よりは格段に操作しやすいから
プレイはしやすくなると思う。happy01

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2016.03.06

Effekseerのエフェクト描画を一時停止する

Effekseerのエフェクト再生中にポーズボタンを押した時に
エフェクト再生が続いて、ポーズ状態のままで
エフェクト再生が終わってしまった。

なので、再生の一時停止について調べてみた。

EffekseerForDXLibに該当する関数は、なかったけど
GetEffekseer2DManagerでEffekseer::Managerを取得したら
SetPausedメソッドで行けそうな感じがした。

かげさんとしては、ループ再生しないエフェクトは
SetPausedメソッドで一時停止して
ループ再生のエフェクトは描画が続く
としたかったのだけど、
これはやってみたんだけど、なぜかうまく行かなかった。coldsweats02

Effekseer::Managerのソースを見てみると
どうやらSetPausedをすることで、エフェクトの更新をする時に
処理対象から外しているみたいだった。

なので初音ミク冒険記側でエフェクトの更新をスキップするようにした。
一時停止したい状況の時だけ
UpdateEffekseer2DやUpdateEffekseer3Dを
呼ばないようにするだけだった。

他の処理は、通常通りにすることで
描画中のエフェクトは、そこから先のコマに進まなくなった。

このやり方は、エフェクトハンドルを指定しないので
全部のエフェクトが止まる方法だ。
ひとまずコレでも良さそうなので、この方法で行くことにした。

これで時を止めるといった演出もできる感じだ。
いい感じじゃないだろうか。happy01

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2016.03.05

VC++の__debugbreak()が中々便利だ

ゲームエンジン・アーキテクチャ 第2版を読んでて
「3.3.3.3 アサート」に書かれている部分が役立ちそうに思った。
(この本は、分厚いので、気になるところからちょこっとずつ読んでいる)

アサート自体は、自動テストをする仕事だと使うんだけど
初音ミク冒険記では全然使っていなかったんだよね。catface

特に「デバッガへ処理を移すインラインのアセンブリ」が
便利そうなので調べてみた。pencil

どうやらVC++だと以下の命令が該当するみたい。

DebugBreak();
__debugbreak();

この命令をソースの中に書いておくと
デバッガのブレイクポイントを指定していなくても
ブレイクポイントに到達したと判断されるので
Visual Studioから初音ミク冒険記を起動していると
そこでステップ実行のデバッグができるようになる。happy02

Visual Studioを起動していない場合に発生したら
エラーのメッセージボックスが表示されるので
その間にVisual Studioを起動し
メニュー「デバッグ」-「プロセスにアタッチ」で
デバッグ対象のアプリケーションをHatsuneMikuBoukenki.exeにして
アタッチすればデバッグできるようになる。happy01

ちなみに上の2つの命令はどちらも似たような動きだが
__debugbreak();が32ビット、64ビットどちらにも対応しており
ARMにも対応していると明記されているので
かげさんは__debugbreak();を使うことにした。

ということで、
本にある記載を初音ミク冒険記で使うとこんな感じになる。

#if ASSERTIONS_ENABLED
	// 式をチェックしてfalseであれば失敗する
	#define ASSERT(expr) \
		if (expr) { } \
		else \
		{ \
			debugOut(DOUT_Console, DLV_NormalError, DCAT_Etc, "Assertion failed! in SourceFile=[%s] Line=%d\n", __FILE__, __LINE__); \
			__debugbreak(); \
		}
#else
	#define ASSERT(expr)	// 何も起こらない
#endif

これで#define ASSERTIONS_ENABLED 1
と書けば条件のthenブロックが動き、
#define ASSERTIONS_ENABLED 1をコメントアウトすれば
elseブロックが動き、何も起こらないようになる。

debugOutは、以前、かげさんが作ったデバッグ用の関数だ。
これも上述の本の9.1 ロギングとトレースを参考に作っている。

デバッグ出力をもう少し改良しようかな?

__debugbreak()の話ではないけど
debugOutと初音ミク冒険記のログの仕組みについても
書いておこう。

■第1引数:コンソールに出力
 初音ミク冒険記のデバッグでは
 「早速脱線してデバッグ用コンソールを表示してみた
 に書いたコンソールが自動的に起動するようにしている。
 ここに出力する。

■第2引数:通常のエラー
 アサートは、式のチェック結果が、真か偽かチェックするので
 エラーとは限らないのだけど、debugOutではエラー系の情報は、
 第1引数の出力先の他にも
 ログファイルにミラーリングするようになってるから
 後から情報を確認するときにも役に立つ。

■第3引数:ログ出力カテゴリ
 ログファイルは、目的のログを探しやすいようカテゴリ分けしている。
 今回は、カテゴリをその他としている。
 初音ミク冒険記では、下図のようなカテゴリに分けてる。
 
Photo

 ちょっと、多すぎな気もするが、複数カテゴリにまたがる確認の時は
 カテゴリ分けされていると便利なのだ。
 上図だとその他にチェックが付いていないので普段だと出力されないが、
 エラー系の情報は、別のデバッグオプションで
 カテゴリのチェックの有無にかかわらず出力されるようにしてる。

Photo_3

 ログが分割されていると時系列で追いにくくなるが
 そこはカテゴリログの他にサマリーログというのを作っているので
 カテゴリ別のログに書かれたものは
 全体のサマリーログに時系列で書き込まれるって寸法になっている。

■第4引数以降:ログ出力する内容
 ここはprintfとかと同じ書式で設定できる。
 ポイントは__FILE__と__LINE__で
 それぞれ、ソースファイル名と行番号を出力する。
 今回作ったASSERTはマクロ関数なので
 ASSERT(チェックしたい式);と書いたソースと行番号が勝手に入ってくれる。

こんな感じでコンソールやログファイルに情報を出力した上で
デバッガで止まってくれる。

なので、想定していない条件になっていないかチェックしたいところで
ASSERT(チェックしたい式);と書けば
条件に引っかかった時にデバッグができるようになるので便利だ。

早速、マップ描画で時々変になるパターンで
もしかしたらと思いついたチェック式を書いて実行してみたら
該当するパターンでデバッガに切り替えれた。happy02

ブレイクポイントを貼って止めるのも良いんだけど
ブレイクポイントが多くなってくると
鬱陶しくて全部のブレイクポイントを外すことがあるので
ブレイクポイントをつけてなくても気になる判定で
デバッガに移れるというのは、再現性が低いテストをしやすくなるので
とても便利そうに思った。note

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2016.02.21

Jenkinsのjobが正常終了に見えてDirectoryNotEmptyException を出してた・・・

昨日、今日とJenkinsが起動しているのに
VC++側をSVNにコミットしたにも関わらず
コミットをトリガーとしたジョブの成否を告げる音が鳴らない。

なんでだろ?と思ってJenkinsのCppCheckのジョブを見たら
正常終了しているっぽいんだけど
CppCheckの結果やその後のステップ数グラフが出ていない。

調べるとJenkinsのビルド出力結果に
java.nio.file.DirectoryNotEmptyExceptionというのが出てた。coldsweats02

jobs\ジョブ名\lastStablelastSuccessful failed
jobs\ジョブ名\lastStable failed

というのでディレクトリが空でないと出ているみたい。

確かにいろいろとファイルがある・・・

Java側でエラーが出られてもJava側なんぞ変更していない。
よくわからないのでGoogle先生に聞いてみた。

Jenkinsのビルド出力結果にjava.nio.file.DirectoryNotEmptyException
という記事が、ズバリ該当していた。coldsweats01

どうやらlastSuccessfulは本来シンボリックリンクで管理されるものらしく builds/lastSuccessfulというディレクトリに対するシンボリックリンクになっていました
自分がJenkinsをインストールした際に前に使っていたジョブの設定を そのままインポートしたくてjobs配下のファイルを 事前にバックアップしておきました そして、普通に.exeファイルからJenkinsをインストール後 jobs配下のファイルやディレクトリを ごそっとバックアップしておいたものに置き換えました おそらく、この置き換えの動作を行ったときに シンボリックリンクからディレクトリに変わってしまったのだと思います

かげさんもバックアップから戻したことがあって
どうやらその頃から、この問題が起きてたみたい・・・

今度からバックアップから復元する時は
last~関連フォルダは消してからって手順が良さそうですね。

実は、この解決前にJava側だからJenkinsのバージョンとかか?
と思ってJenkinsのバージョンアップをしようとして
どうやら失敗したらしく、そのリカバリのほうが数倍大変だった・・・crying

まぁ、リカバリ手順は過去のブログ記事にあったのですが
断片的なところもあったのがキツかったかな。
とりあえず、今日中に全部終わったから良かった。happy01

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

今更ながらMSBuildを使ったバッチを作った

■MSBuildを使ったバッチを作ろうと思った背景
現在、C#を使った「デバッグ設定ツール」で「オプション追加」ボタン押下すると
初音ミク冒険記の既存のVC++ソースを読み込んで
入力したオプション設定に従い、修正したソースを自動生成するようにしている。

この時、生成されるものの中には、
ほとんどのVC++ソースでincludeしているヘッダファイルがある。

本来だと、そのヘッダをincludeしているソースだけ
ビルドすれば良いんだけど、
ごくたまにビルドしたら期待通りに動かず
リビルドしたら期待通りに動くという現象が起きる。

このため、リビルドするようにしてるんだけど
このリビルドが1分20秒くらいかかるので、その間に別の作業がしたい。

具体的には、「オプション追加」ボタン押下は
C#側のソースも修正する必要があるのでそれをやりたい。

そのため、「デバッグ設定ツール」で「オプション追加」ボタン押下の時は
大抵「デバッグ設定ツール」のC#ソリューションを開いた状態で行っている。

だから、途中でVC++側のビルドのため、ソリューションファイルを開く
といったことはしたくない。

ということで、「オプション追加」ボタン押下時に
MSBuildでVC++側をリビルドするバッチ処理を動かして
すぐにC#側の作業をしたいと思ったわけだ。

■リビルドバッチ
バッチファイルの中身はこんな感じ

Set PATH=%PATH%;"%ProgramFiles(x86)%\MSBuild\12.0\Bin"
F:
cd "F:\Visual Studio 2008\Projects\HatsuneMikuBoukenki"
MSBuild.exe HatsuneMikuBoukenki.sln /p:Configuration=Release /t:rebuild
pause

要するに
・MSBuild.exeへのパスを通す
・リビルド対象ソリューションのフォルダへ移動
・MSBuild.exeでソリューションのリビルド
という流れだ。

初音ミク冒険記は、常にReleaseモードでリビルドしたいから
MSBuildの引数を指定しているが
単純にDebugモードのビルドならソリューションファイルの指定だけで良い。

/pはパラメータ指定
/tはターゲット指定

パラメータやターゲットの詳細は、
後述の参考情報のリンクに載っています。
(たらい回しですみません)

■作業した感想
かげさんのマシンのVisualStudioは
2008、2010、2012、2013と4バージョン入っているため
CドライブにMSBuild.exeがあちこちにあって
どこにパスを通すのが正しいのか分からず時間がかかった・・・

MSDNでMSBuildの知りたい情報が見つけにくかったり
パスを通さないとCL.exeとかでエラーになったり
通すパスを間違ってv120の設定がないとか出たりして
想像以上に苦戦した・・・coldsweats02

■参考情報
MSDNの情報って、
VisualStudioのバージョンアップとかが原因と思うけど
リンク先が変わっていたりして
後から確認し用とした時に見れなかったりするので
MSDN以外のサイトで分かりやすくまとまっていたサイトや
便利そうと思ったサイトも載せておく。

•MSBuildの基本
​http://smdn.jp/programming/netfx/msbuild/

•MSBuild オプション基礎文法最速マスター
​http://cointoss.hatenablog.com/entry/2012/09/14/220425

•チュートリアル: MSBuild プロジェクト ファイルのゼロからの作成
​https://msdn.microsoft.com/ja-jp/library/dd576348.aspx

•VISUAL STUDIO 2013 のビルドツールセットを拡充する プロフェッショナル編
​http://lab.planetleaf.com/windows/development-win/expand-build-tool-set-visual-studio-2013-pro.html

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

ニコ生のコテハンの付け方

今までずっとニコ生の固定ハンドルネームの付け方知らなかったのだけど
KEIZOさんにコテハンの付け方を教えてもらった。

コメント欄に「@コテハン名」と入れると良いことが分かった。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2016.02.20

鏡音リン・レンV4Xを購入

当初想定してた購入時期からはズレてしまったが
鏡音リン・レンV4Xを購入しました。


鏡音リン・レン V4X バンドル

MEIKO V3やKAITO V3の時は
サクッとライブラリだけのインストールで済んだのだけど
今回はStudio One Artist Piapro Edition を2から3にするのと
その際、Studio One Artist Piapro Editionや
Piapro Studioを64ビット版にしました。happy01

今のマシンのCubase AI 8とかは64ビット版なんですが
初音ミク V3をインストールした頃は、
32ビット版にしないと、うまく動かせなかったので、
Studio One Artist Piapro Editionや
Piapro Studioが32ビット版だったのです。

64ビット版のインストール自体は、
マニュアル通りに作業すれば良いし
PreSonusのアカウントはあったから割りとサクサク進みました。

まぁ、PreSonusのアカウントが登録されていたにも関わらず
アカウントのアクティベートがされていなかった
なーんてこともありましたが、それはあまり問題にならなかった。coldsweats01

それよりも困ったのは、一通りインストールした後に
Piapro Studio起動時に
「押すとアプリケーションがPiapro Studioプラグインをオフにしました」
というメッセージが出てローカル再生ができないことだった・・・weep

PiaPro StudioのサポートQ&Aにある
「ホストアプリケーションが Piapro Studio プラグインをオフにしました」と表示されます
に書いてある対応をしてもダメだったからだ・・・

30分ほど悩んでいたんだけど、
ホストアプリケーション側のStudio Oneの
オーディオインタフェースとかの設定じゃね?
と気づいた。

早速、Studio One側のメニューから
「Studio One」-「オプション」を選択して
オーディオ設定のタブを確認。

かげさんの使っているオーディオインタフェースは
AG03-MIKUなのでオーディオデバイスの欄が
「Yamaha Steinberg USB」になっていないとダメなのに
今は使っていない別のオーディオインタフェースになっていた・・・

たぶん、かげさんがオーディオインタフェースを2つ持っているので
Studio One Artist Piapro Editionをバージョンアップしたことで
別のオーディオインタフェースが
デフォルトの設定になったんじゃないかと思う。

Studio One側の設定を最初疑わなかったのは
Studio Oneのバージョンアップの際、
「古いバージョンの設定を引き継ぎますか?」
といったメッセージが出てたので、
そこが変わっているとは思わなかったし
これまで下記のタイミングでブログの記事を書いてなかったから
Studio One側の初期設定って気づかなかったんだよね・・・
・初音ミク V3インストール時のトラブル
・AG03-MIKU導入後のCubase以外のサウンド設定

ということで設定を切り替えた後は、
Piapro Studioの設定をONになっていれば
ローカル再生ができるようになった。

なぜかその後、PiaproStudioでRIN_V4X_Power_EVECの
サンプル再生時にStudio One側がゾンビプロセスとなって
異常終了したってのが1回あったけど
タスクマネージャからStudio One.exeを強制終了させて
再度やってみたら、ちゃんと動いたので一安心。

これでクリプトンのボカロは、一通り揃ったことになる。
キャラが多いからnicotalkとかを使って
トークロイドとかしても楽しいそうだ。happy01

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)

2016.02.14

正式公開前だけどEffekseerForDXLibに実装されたネットワーク機能や歪み機能を使ってみた(動画あり)

先日、Effekseerの製作者さんが下記のツイートをしていた。


Effekseer For DXライブラリのGitHubを確認すると
既にネットワーク機能と歪み機能が使えるように修正が入っている。

正式公開前の機能だが、かげさんはネットワーク機能を使えるようにした時に
GitHubに登録されているソースからEffekseerForDXLibの
ライブラリをビルドできる環境にしている。
(環境構築手順は、後述のリンクを参照)

早速、かげさん環境のソースを最新化して使ってみることにした。happy01

ネットワーク機能の方は、以前書いた
EffekseerForDXLibをビルドできるようにしてEffekseerのネットワーク機能を使う
で実装したロジックがEffekseerForDXLibに取り込まれたものだ。

ネットワーク機能が使えると、
エフェクト編集がリアルタイムでゲーム側に反映されるので便利なのだ。
(Effekseer側でエフェクトの出力をしない分、変更確認が楽になる)

ゲーム起動中にエフェクトを編集すると反映されることの紹介(動画あり)」と
同じ動画だけど、ネットワーク機能を使った動画はコチラ。

GitHubに登録されている2016/02/13時点のソースを見ると
ネットワーク機能では、下記の修正が入っていました。

・Effkseer_InitServer(新規追加関数)
 ネットワークサーバーのインスタンス生成
 ポート番号の指定
 2回目の呼び出し時は何もしない

・Effkseer_End
 ネットワークサーバーを停止して破棄

・LoadEffekseerEffect
 ネットワークサーバーのインスタンスが生成されている場合、
 ロード対象エフェクトをネットワークサーバーに登録

・DeleteEffekseerEffect
 ネットワークサーバーのインスタンスが生成されている場合、
 削除対象エフェクトをネットワークサーバーから解放

・UpdateEffekseer2D/UpdateEffekseer3D
 ネットワークサーバーのインスタンスが生成されている場合、
 ネットワークサーバーで使用しているエフェクトの更新

このため、先日実装したロジックのうちネットワークポート指定の箇所を
Effkseer_InitServerに置き換え、
ネットワーク対応エフェクトのロードを残して、他のエフェクト関連ソースの
ネットワーク機能対応ロジックは、削除しても良くなった。happy02
なのでソースのシンプル化のため、削除可能ロジックは一掃した。

ここまでは良い。

続いて歪み機能。

こちらもシンプルで下記の関数を呼び出せば良いみたい
・Effekseer_InitDistortion
 引数:ウインドウサイズに対する歪みに使用するバッファの拡大率
 (1.0がデフォルト)

とりあえずデフォルトの1.0を指定して
使うエフェクトは、
Effekseerのサンプルについてる「Simple_Destorion」にした。

こんなエフェクトです。


初音ミク冒険記に組み込むとどうなるか、テスト動画を作ってみました。

うまく使えるようになると
歪み機能で表現の幅が広がりそうですね。note

Effekseerのエフェクトエディタ側で歪み機能を使うには
描画共通タブの「歪み」にチェックを付けて
「歪み強度」を指定すると良いみたいです。

面白かったら押すべし。→ へぇ~
ランキング [] [] [] [] [] [↑50] [かげさんの111から始まるHistory内]

| | コメント (0) | トラックバック (0)