良くありそうな質問、エラーに対する解答です。
よくわかんねーよという人はとりあえず全部読んでみて下さい。大抵の問題は解決できるはずです。時間ねーよという人も、質問箱や2chで質問して回答もらうよりも素早く解決できると思います。
→.NET Framework 2.0 SP1が入っていない可能性があります。NiVEについて
A1:コーデックが足りないなどでデコードできない
→コーデックをインストールする。複数のコーデックをインストールするのが面倒という場合はffdshowを入れると楽。
A2:読み込む対象のファイルが2GBを超えている、形式がAVI2.0になっている
→標準の読み込みプラグインはVFWを使用しているため、このようなファイルは読み込めません。
A3:FLV Extractで取り出したAVIを読み込んでいる
→FLV Extractで取り出したAVIを使用するには、バイナリエディタでVP6Fという文字をVP62に書き換える必要があります(2カ所)。
古いバージョンを使っている場合はFLV4という文字をVP62に書き換えます。
当然ですがVP6コーデックも必要です。
A4:Craving Explorerを使って落としたAVIを読み込んでいる。
→細かい理由は不明ですが、質問箱でトラブル報告が頻出しています。別のツールを使うことで解決できるかも。
AviUtlなどで別の可逆圧縮に変換したり、分割する。
tino氏の開発したDirectShow入力プラグインを使用して読み込む。
ffdshowを入れてみる。
コーデックが足りないなどで対象のwavの形式にACMが対応できていない可能性があります。
→ファイルを 44.1kHz(48kHz)、16bit Stereo に変換する。
ほそく。
ほとんどの初心者、或いは動画のエンコをしたことがない人が思い込んでいることなのですが、wav(WAVE)というのはAVIと一緒でコンテナの一種です。このため、標準のプラグインではACMというAPIを使用して変換して使用するようにしているのですが、コーデックが足りない(わかりやすい例だと、AVIから取り出したmp3なwavなど。これを使うにはACM版LAMEが必要)とACMがエラーを吐いて使用できません。
仕様です。WinFormsが重いのでプレビューの高速化は厳しいです。
PCのスペックにもよりますが、RAMプレビューを使用し、
環境設定の「プレビュー表示時間の調整」で-2msくらいを指定すると、やや改善されるようです。
実際の速度で確認したい場合は、いったんAVIに書き出すか、リアルタイムプレビューを使いましょう。
■音声が出ない
●VFWInputでAVIを読み込んだだけでは、音声は読み込まれないことが多いです。
音声をwaveファイルとして別途用意してWaveInputで読み込むか、
DSAudioInputを使ってAVIから直接読み込むなどしましょう。
※なるべく「PCM 44.1kHz(又は48kHz) 16bit ステレオ」のwaveファイルから読み込むのを推奨。
●音声のアイテムがタイムラインに追加されているか確認しましょう。
●プレビューウィンドウの右下にあるスピーカーボタンで、音が出るようになっているか確認しましょう。
デフォルトでは音は出ないようになっています。
■音声がブチブチ途切れる
仕様です。
音声の扱いはNiVEが苦手としている部分なので、音あわせなどは
別の編集ソフト(WindowsMovieMaker・Adobe Premiere等)を使ったほうがやりやすいです。
どうしてもNiVEでやりたい場合は、「ちょっと音再生」などのプラグインが便利です。
→環境設定から操作ごとにプレビューを更新するにチェック
OpenGLは、PCの環境にも大きく左右されるので、PCによっては使用できないことがあります。
→原因が多岐にわたるため、一概には言えませんが、グラフィックボードの追加やドライバの更新によって解決できる場合があります。
自分のPCのOpenGL対応状況は、以下のようなソフトで調べることができるようです。
OpenGL Extensions Viewer(窓の杜の記事)
OpenGL 2.0対応グラフィックボードを使用している場合に発生することがあるようです。
OpenGLレンダラの設定で、「テクスチャサイズを強制的に2^nに合わせる」にチェックすることにより回避できます。
OpenGLでは、各値が1≠1pxとなっています。
コンポジションの縦横のサイズの大きいほうをAとすると、座標目盛1=A/2となるようです。
512x384のコンポジションなら、座標目盛1=512/2=256ピクセルとなります。
また、ポリゴンサイズを0.1などにしている場合は良く飛んでってどこに行ったかわかりずらくなるので注意して下さい。
タイムラインにアイテムを複数置いた後、適当にマテリアルやトランスフォームで変形します。
親となるトラックに連動させる場合は子となるトラックに親のトラックを設定して下さい。
並べたい数だけタイムラインに配置した後、マテリアル、もしくはトランスフォームでサイズを調整後、好きな位置に移動します。
元が同じサイズの場合、すべて同じサイズにするときはnullオブジェクトと親子を使っていっぺんにサイズ変更すると楽かも。
1つの動画をループさせる場合、トラックの右側の青いラインが出てるあたりを右クリックし、
「デュレーションの変更」から変更方法を「シームレス」に変更し、「フレーム」で好きなだけ伸ばします。
例えば、30フレームのAVIを5回ループさせたいなら、30フレーム×5回=150フレームにすればOKです。
なお、「フレーム」の設定を変えると、連動して「速度」も変わりますが、
「シームレス」の場合は実際の再生速度は変化しませんので、気にしなくてOKです。
また、トラックの有効範囲(青いラインの「s」と「e」の位置)は自動では変わらないので、
「e」の位置を「ループ終了位置」に移動する必要もあります。
上の例だと、AVI開始から30フレーム目にあった「e」を、150フレーム目に移動する必要があります。
複数の素材をまとめてループさせたい場合は、1つのコンポジションにまとめてから、そのコンポジションを
別のコンポジションにトラックとして配置してデュレーションを変更します。
もしくは一度AVIに書き出してからそれを読み込んでデュレーションを変更します。
トラックの右側の青いラインが出てるあたりを右クリックし、「デュレーションの変更」を選択。
変更方法で「フレームを間引く」「フレームを混合」のどちらかを選択し、「フレーム」か「速度」を指定して変更します。
例えば、100フレームのAVIを50%の速度で再生したいなら、「速度」に50と指定します。
「フレーム」と「速度」は連動しているので、同時に「フレーム」も200になるはずです。
再生速度が遅くなる分、再生時間(つまりフレーム数)が増えるわけですね。
もちろん再生速度を速くすれば、再生時間(フレーム数)は減ります。
また、トラックの有効範囲(青いラインの「s」と「e」の位置)は自動では変わらないので、
スロー再生にしてフレーム数が増えた場合は「e」の位置を「新たな再生終了位置」に移動する必要もあります。
上の例だと、AVI開始から100フレーム目にあった「e」を、200フレーム目に移動する必要があります。
トラックの右側の青いラインが出てるあたりを右クリックし、「リバース」を指定。
GDIを使用する関係上、どうしても発生してしまうようですが、「0.04°傾けるとカクカクしない」という技も発見されています。(参考動画はこちら)
NiVE v1.74では、GDIレンダラの設定項目に、「変形時に自動的に0.04°傾ける」という項目も追加されましたので、チェックを入れておくと良いでしょう。
ただし、マテリアル左上を中心に0.04°傾けているようなので、コンポジションサイズにぴったりの背景を使っているような場合、コンポジションの右上や右下から背景色が見えてしまうことがあります。
そのような場合は、背景画像を微妙に拡大するか、レンダラの背景色変更などで対応すると良いと思います。
また、拡張2Dレンダラを使用するとガクブルしませんが、補間方法がバイリニアなため、50%以上に縮小する場合はOpenGLレンダラを使用するときれいに縮小できます。
Windows標準のエラー報告ダイアログや、ダイアログすら表示されずに落ちる場合、ウインドウハンドルの数の関係で落ちている可能性が極めて高いです。
NiVEでは、.NETのWinFormsを使用している関係上、NiVE側での対策も限界があるため、現状で解決するには、レジストリを操作する必要があります。
注意:レジストリ操作は、誤った値を書き込むと最悪Windowsが起動しなくなるおそれがあります。この操作を行う場合は、すべて自己の責任の下に行ってください。
1,ファイル名を指定して実行から、regedit.exeを起動する
2,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystemsに移動
3,WindowsキーのSharedSectionのxxx,yyy,zzz(,www)となっているところの、xxx,yyyの部分を256、または512単位で増やす
4,再起動
注意:むやみに値を大きくするとパフォーマンス低下を招きます。
参考:
Microsoft サポート:デスクトップ アプリケーションのヒープを増やす(126962)
桜工場業務報告:SharedSection第一パラメータを増やす時がやってきた
設定→コンポジションの設定→長さ
VFWInputではアルファ情報は反映できないので、プラグインの「DirectShown入力」または「VFWInput(32bit ARGB Video Only) 」で読み込む。
また、素材の再エンコを繰り返している場合、途中でアルファ情報が消えている可能性もありますので注意しましょう。
「連番イメージ」のほうは、「極座標変換」プラグインのv1.0.0を入れていると表示されます。
プラグイン開発時に誤ってサンプルコードが混入していたとのことです。
サンプルコードだということもあり、バグも内包しています。
「連番イメージ読み込み(書き出し)」のほうは、それを改善したNiVEの標準機能ですので、こちらを使いましょう。
「アルファ(Alpha)」は不透明度を表す情報のこと。
つまりこれは、透明情報を残した形式で動画を出力するかどうかという確認。
「32bitARGB」のAはAlphaを表していて、この形式だと透明な部分は透明なまま出力できる。
「24bitRGB」だと、透明情報は省かれて出力される。
通常の動画なら、24bitRGBに変換してしまって問題ない。
32bitARGBを使うのは、「キャラだけ切り抜いた、背景が透明な動画」などを、合成用の素材として保存するような場合。
「不正な〜」と書いてるから不安になるかもしれないけど、これは単に32bitARGBで出力すると、
他のソフトでうまく読み込めないようなケースが発生するため。(だと思う)
実際、透明情報を残した32bitARGB動画をNiVEのVFWInputで読み込むと、
透明なはずの部分が黒くなってたりする。(拡張プラグインを使って読み込めば回避できるけど。)
ググれ。
このくらいは出来ないと動画制作はすぐに挫折しますよ('・ω・`) ググれの意味・・・検索エンジン『Google』で調べる。(その他の意味あり)