2019年12月27日金曜日

[Blender2.81]手軽にリアルな雪を生成できる無料アドオン「Real Snow」のご紹介


はい、こんにちは。
@CortanMathです。


今年もクリスマスが終わり、ますます気温の冷え込む真冬に突入しようとしています。

皆さんは、いかがお過ごしでしょうか。




僕は特にクリスマスに予定があったわけでもなく、家に引きこもり、Blenderとかで遊んでいました。



ということで今回は、こんな冬にピッタリなBlenderの無料アドオンをご紹介しようと思います。

その名は「Real Snow」というもので、少しパラメーター変更とボタン一つでとても簡単にリアルな雪が生成できます。
指定したオブジェクトに積もらせる感じで、生成できます。





YouTubeの方にも動画上げましたので良ければご覧ください。
(この記事を同じ内容ですが)



では早速やっていきましょう。



アドオン「Real Snow」のダウンロードと追加



まず、こちらのサイトから「Real Snow」本体をダウンロードしましょう。
zip形式でダウンロードできると思います。

https://3d-wolf.com/products/snow.html



そうしましたら、Blenderの方に追加していきます。




「Edit」>「Preferences...」を開きます。




「Add-ons」から、「Install...」をクリック。

そして、先ほどダウンロードしたzipファイルを選択してください。






こんな画面が出ていると思うので、「Mesh:Real Snow」にチェックを入れ、設定を保存してから閉じてください。




なんかエラーでた



インストールも終わったので早速使ってみようと思ったら、こんなエラーが出ました。



AttributeError: 'SubsurfModifier' object has no attribute 'quality'



'SubsurfModifier'モディファイヤに属性'quality'がありません。



エラーの意味が分かっても具体的な解決策がよくわからない...




で、なんとなくBlender2.8からBlender2.81にアップデートしてみたら見事解決しました。




物は試しですね。
Blender2.80では、Real Snowが使えないみたいです。



実際に使ってみる


ではあらためて、実際に使ってみましょう。


と言っても簡単。
雪を積もらせたいオブジェクトを選択して、プロパティパネルの「Real Snow」というタブから雪を設定してやるだけです。



雪が覆う率と、厚さを入力して、ボタンを押します。

パソコンによっては(また、指定したオブジェクトによっては)少し時間がかかると思います。




では、僕が実際に作ったものをご覧ください。



まずは、これ。
Planeを細分化し、スカルプトモードで凹凸を付けたものに雪を積もらせました。

メッシュが大きいので、少し重かったです。






次にBlenderお馴染みの猿を配置したものです。





そして、これはブログのトップにもあるやつですね。
白男君を2体、自由な感じに配置しました。






それで、最後にイノシシです。





面白いので、ぜひ使ってみてください。


これで以上になります。



ではさようなら。
またお会いしましょう。

もしよければ、LINEスタンプの方もよろしくお願いします。


https://line.me/S/sticker/7072968

無言で何かを伝えよう とする白男くん - LINE スタンプ | LINE STORE

白男くんが何もしゃべらずに、何か大事なことを伝えようとするスタンプです。


お そらくいつでも使えるLINEスタンプ集


2019年12月25日水曜日

Enchant.js製のスマホ向けアプリを横向き(縦)回転の表示に強制させる方法!また、画面を中央に表示する


はい、こんにちは。
@CortanMathです。


今回は、JavaScript製の軽量ゲームエンジン「Enchant.js」についての記事になります。

別にEnchant.jsを使用しない場合においても応用できると思います。


で、内容は、「JavaScriptでスマホ向けアプリを作成した際、画面の向きを固定する」「画面を中央に表示する」といったものになります。





Enchant.js製のスマホ向けゲームで、画面横向き(または縦向き)のみでプレイしてほしい場合などがあると思います。
ただ、標準のままだとスマホの傾きにより画面が回転し、ゲーム画面サイズが小さくなってしまったりしますよね。


ということで、「画面の向きを判断し、もし目的の向きでなかった場合、その向きに端末を回転させるよう促す」ということを今回やりたいと思います。




最初のころは、何があっても強制的に画面を横向き(縦向き)に表示したいと考えていました。

「画面の向きを判定」 ⇒ 「もし目的の向きでなかった場合、ゲーム画面を無理やり90度回転させ、調節する」

という予定でしたが、スプライトとかの回転はできても画面自体の回転は良くわからなかったのと、画面横向きでプレイさせたい際に、縦にもった状態で横 向き表示する必要はないので、ただ警告を出すだけにしました。






また、それに加えて、Enchant.jsのゲーム画面を中央に表示するようにしたいと思います。
これをしないとゲーム画面は常に左上につめられて表示されるため、縦横比の異なるスマホとかでは、左右の余白のバランスがおかしなことになってしまい ます。

スマホによって余白ができてしまうのはどうしようもないので、せめて、全体のバランスが良くなるようにしたいと思います。



では、やっていきましょう。


Enchant.jsでゲーム画面を横向き(縦向き)に



これを行うためにも、まず、スマホの向きが「今、縦なのか横なのか」を判断する必要がありま す。


書き方はいろいろあるのですが、今回はその中でもシンプルな書き方をします。


if (window.innerHeight > window.innerWidth) {
            //縦向きだった場合
        }


こんな感じです。

画面の幅と高さを出して、その長さの比較をするという簡単なやり方です。


で、この縦向きだった場合に、「端末を横向きにしてください。」みたいなメッセージを出せばよいわけです。


実際にメッセージ表示を実装するとこうなります。
gameオブジェクトがロードされたところに書きます。



var alert = new Scene();
alert.backgroundColor = 'black';

var message = new Label('端末を<br><br>横向きにして<br><br>持ってください。');
message.color = 'white';
message.font = '50px "Arial"';
message.textAlign = 'center';
message.x = (game.width - message._boundWidth) / 2;

alert.addChild(message);

if (window.innerHeight > window.innerWidth) {
    game.replaceScene(alert);
}

こんな感じです。


これで最初ゲームがロードされた際、もしスマホが縦向きだったら、横向きにしてくれという警告を出しています。
また、最初から横向きだった場合は、標準のrootSceneが読み込まれます。


rootSceneにゲーム本体を用意すればよいわけです。


それが嫌な人は、上記のコードのif分にelseを足し、そこにゲームのメインシーン(もしくはOPシーン)を読み込むように書けばいいと思います。




ただこのコードのままだと問題があります。


ロード時に端末が横向きだった場合は良いですが、縦向きだった場合、メッセージだけ表示してそれ以降なにも進みません。


端末を傾けて横にしたら~、という処理が必要なわけです。

その部分はこう書きます。
window.onload = function(){}; の外にでも書いてください。


  
  window.addEventListener("orientationchange", function () {
    location.reload();
});
  

こんな感じです。

端末を90度傾けたら、みたいなイベントのようです。(正確には違うかもしれない)
だから、横から縦にしても、縦から横にしても発生します。


で、そのイベント発生後、ウェブサイト自体をリロードしています。

そうすると先ほどのコードがまた読み込まれ、今度は、ゲームがスタートするという仕組みです。



リロードするというのはあまり賢い書き方ではないと思いますが、コードを簡潔にし、減らすために採用しました。


これで、画面の向きが解決しました。


画面を中央に表示する



今度はゲームの画面を中央に表示します。


  
  var game = new Core(640, 360);

var CenterMove = function (core) {
    var stage = document.getElementById('enchant-stage');
    stage.style.position = 'absolute';
    stage.style.top = (window.innerHeight - (core.height * core.scale)) / 2 + 'px';
    stage.style.left = (window.innerWidth - (core.width * core.scale)) / 2 + 'px';
    core._pageX = (window.innerWidth - (core.width * core.scale)) / 2;
    core._pageY = (window.innerHeight - (core.height * core.scale)) / 2;
};

CenterMove(game);

こんな感じです。


gameオブジェクトを渡し、それをちょうど画面真ん中に来るよう移動しています。



以上です。



ではさようなら。
またお会いしましょう。

もしよければ、LINEスタンプの方もよろしくお願いします。


https://line.me/S/sticker/7072968

無言で何かを伝えよう とする白男くん - LINE スタンプ | LINE STORE

白男くんが何もしゃべらずに、何か大事なことを伝えようとするスタンプです。


お そらくいつでも使えるLINEスタンプ集


2019年12月10日火曜日

Blender2.8への移行は簡単!?リアルタイムレンダラEeveeを使用するときのポイントなど

はい、こんにちは。
@CortanMathです。


Blender2.8が公開されてからだいぶ経ちましたね。

今では、Blender2.81とかが出ているのでしょうか。




おそらくほとんどのBlenderユーザーが、Blender2.79からBlender2.8もしくはそれより上に移行していることと思います。

ですが、今回は振り返りみたいな意味を込めて、また、まだ移行しきっていない方に向けて、Blender2.8への移行、Eeveeについて少しまと めてみようと思います。


Blender2.8への移行

まず、現在インストールされているBlenderをアンインストールします。
もしかしたら、旧バージョンと新バージョンを共存させることも可能かもしれませんが、僕は試していないのでわかりません。

もしインストーラー版ではなく、ポータブル版を使用していたなら、また圧縮してどこか違うとこ ろに保険として保存しておくとよいでしょう。

Blenderをアンインストールしても、設定は残ります。
(僕はポータブル版だったので残りましたが、インストール版は試していないので確かではありません。たぶん残ると思います。)




次に本体をこちらの公式サイトからダウンロードします。

https://www.blender.org/download/


Windows , Mac OS , Linuxに対応しており、インストーラー版とzip版(ポータブル版)があります。
好きな方を選んでください。

僕はzip版を選びます。
ポータブル版の方が好きなので。



そうしたらインストールしましょう。
ポータブル版は展開ですね。



それが終わったら起動しましょう。



ここの、「Load 2.79 Settings」というところをクリックすると、以前まで使用していた設定、アドオンなどがすべて引き継がれます。
(ただし、バージョンアップの関係で一部完全には移行できない部分があるようです。)



簡単でしょ。
Blender2.8への敷居が少し低くなったのではないでしょうか。


Eeveeを使用する



僕が以前、Eeveeで作った動画です。


SFチックな演出が簡単にできます。


EeveeというのはBlender2.8から搭載されたリアルタイムレンダラのことで、ほぼリアルタイムにレンダリングが可能。レンダリング処理も 超速いです。


Cyclesに比べると物理的リアリティは劣りますが、それでも、十分なくらい美しく速くレンダリングが可能です。

ただ、いくつかポイントがあって、これをしないとリアリティのないしょぼい結果になってしまう かもしれません。というのをご紹介します。


まず、次の二つはおそらく必須でしょう。


Ambient Occlusion

オブジェクトの距離が近いところ、光が遮られやすい場所が暗くなったりなどし、リアリティが増 します。


Screen Space Reflections

これにチェックを入れないと反射が起こりません。
必須です。



次に、必須ではないけど、面白い設定としてBloomをご紹介します。

これにチェックを入れることで、光が飽和し、グローやグレアのような効果がかかります。
Bloomの設定、および、光源(Emission)の強さを調節することで、好みの感じにできます。


上の動画とかも、Bloomを使って近未来感を出しています。


あとおまけとして、Volumetricをご紹介します。



これにチェックを入れることで、空間が霧に包まれたような感じになります。

炎とか煙のシミュレーションをする際にも、これにチェックを入れないと、煙が表示されません。



以上です。


ぜひBlender2.8で快適な3DCGライフを!


ではさようなら。
またお会いしましょう。

もしよければ、LINEスタンプの方もよろしくお願いします。


https://line.me/S/sticker/7072968

無言で何かを伝えよう とする白男くん - LINE スタンプ | LINE STORE

白男くんが何もしゃべらずに、何か大事なことを伝えようとするスタンプです。


お そらくいつでも使えるLINEスタンプ集


2019年11月3日日曜日

Aviutl Ver1.10のインストール方法!<旧バージョンからの移行から基本的な設定まで>


はい、こんにちは。
@CortanMathです。



今年2019年、Aviutlの最新バージョン「Aviutl Ver1.10」が出ましたね。
開発者のKENくん様、6年ぶりの更新だそうです。



僕にとっては非常にうれしいニュースでした。
あの非常に高機能な無料動画編集ソフトが更新されたんですから。


今回のアップデート内容を、KENくん様の文章から引用しますと、

  • ビルド環境の更新とそれに伴う調整をした。
  • 映像のキャッシュを共有メモリで確保するようにした。
  • キャッシュサイズの指定をメモリ容量で指定するようにした。
  • メモリの確保失敗時にキャッシュサイズを調整して再試行できるようにした。
  • LARGEADDRESSAWAREを常に有効にするようにした。
  • システム設定の初期値を一部変更した。
  • NULLフレームが正しく表示できなかったのを修正。
  • ビルドオプションを調整をした。
  • 共有メモリキャッシュをプラグイン外部関数で利用できるように改良した。
  • システム設定のキャッシュサイズのデフォルトを256MBにした。


盛りだくさんですね。
主にメモリに関するアップデートが多いようです。



では、早速Aviutl Ver1.00からAviutl Ver1.10に移行していこうと思います。


古いほうのAviutl Ver1.00ですが、今後使わないとも限らないので一応残しておきましょう。
「最新バージョンが今までのプラグインに対応していない」なんてことがないわけではないです。


zipとかに圧縮して、どこかフォルダの片隅に置いておきましょう。


ただ今回、旧Aviutlからプラグインとかを引っ張り出してきますので、いまは解凍せず、そのままにしておくのが無難でしょう。


Aviutl Ver1.10を使う準備


本体・拡張機能


まず本体をダウンロードしていきましょう。

まず、こちらの公式サイトを開いてください。

http://spring-fragrance.mints.ne.jp/aviutl/



一番上に、本体の最新バーションがあると思います。
ダウンロードして解凍しましょう。



続きまして拡張機能のダウンロードです。
これがあることで、様々な高度な編集ができます。

こちらの最新バージョンは、まだテスト版のようですね。



こちらも同様に、ダウンロード・解凍してください。



本体のフォルダは、Cドライブ直下とかに置くとよいでしょう。



そうしましたら、拡張機能のフォルダ内のファイルをすべて、本体のフォルダ直下に移動します。
これで、拡張機能が使えるようになりました。



本体を起動して、「設定」>「拡張編集の設定」から、実際に使えるようになります。


AVI形式以外(MP4など)の読み込み・書き出し


Aviutlは標準の状態では、AVIファイルしか取り扱えません。
そのため、一般的な動画形式であるMP4などを編集するには、プラグインを入れる必要があります。



まずは、読み込みのプラグインからです。

「L-SMASH Works」という名前のプラグインになります。

https://pop.4-bit.jp/?page_id=7929


上のダウンロードサイトから、ファイルをダウンロードします。



上のリンクですね。


このダウンロード中でいいので、Aviutl本体のフォルダ直下に「Plugins」という新しいフォルダを作成しておいてください。


ダウンロード後、解凍しましょう。

解凍したら中にある、拡張子が「.au~」となっているファイルをすべて(おそらく4つ)を、先ほどの「Plugins」フォルダに移動します。


これにより、いろいろな動画ファイルが読み込めるようになりました。



次に、書き出しプラグインです。

「x264guiEx」というものになります。

https://rigaya34589.blog.fc2.com/


こちらのサイトの右サイドバーに、「Aviutlプラグイン」という項目があるので、一番上の「x264guiEx」をダウンロードしましょう。


その後解凍し、中にある「auo_setup.exe」というファイルを実行します。



上のような画面が出てくるので、Aviutl本体があるフォルダを選択し、実行してください。



しばらく時間がかかりますが、これが終わると、MP4の書き出しが可能になります。


その他プラグイン・カスタムオブジェクトなどの引継ぎ


以前使用していたプラグインなどがあることでしょう。
これらも、最新バージョンで使えるように引き継ぎましょう。

最新バージョンがそのプラグインに対応していないということも考えていましたが、僕が試した限り、大丈夫でした。


引き継ぐといっても簡単です。



旧Aviutlから、対象のプラグインフォルダをコピーして(僕の場合、上画像中の選択してい る2フォルダ)、最新バージョンの方に貼り付けます。


もしそのプラグインの最新バージョンが公開されているのであれば、上のようにはせず、最新版を使った方がよいと思います。


環境設定(メモリの設定など)


最後に環境設定をします。

「ファイル」>「環境設定」>「システムの設定」を開きます。



僕が変更した設定は上の2つです。


まず、「キャッシュサイズ」です。
こちらは、以前のバージョンの「キャッシュフレーム数」にあたるもので、設定できる単位が、MByteに変わりました。

32~1048576の範囲で設定できるようです。

つまり、最大1TBのメモリが使用できるってことなんですかね。
ちょっとよくわかりません。
すみません。


とりあえず、1024にしておきました。
でかければよいというものでもないでしょうから。

後でまた変更するかもしれません。



次に「再生ウィンドウの動画再生をメインウィンドウに表示する」にチェックを入れました。

デフォルトでは編集した動画を確認するのに、わざわざ「再生ウィンドウ」という別のウィンドウを開かなくてはなりません。

この設定をすることで、メインのウィンドウで再生確認ができます。



設定に関しては、必ずこうしろというものはございせんので、各自にあった設定を行ってください。


「ファイルの出力に失敗しました。」というエラー



最新Aviutlの準備ができて、x264guiExで動画の書き出しをしようとしたところ で、次のエラーが発生しました。



23分待った挙句、このありさまです。


「qaac.exe」のパスの見直しなども行いましたが、特に問題はなく...


いろいろ調べたところ、「QuickTime」をインストールすれば、大丈夫ということがわかりました。


qaac.exeがあっても、それが依存しているdllがなければエンコードできないみたい で、そのdllような何かはQuickTimeをインストールすれば手に入るというものらしいです。


僕もこれを実行し、無事エンコード出来ました。


QuickTimeのダウンロードはこちらから。
https://support.apple.com/kb/DL837?locale=ja_JP



今回の記事は以上になります。


皆さんも、最新Aviutlをインストールし、快適な無料動画編集ライフを。


ではさようなら。
またお会いしましょう。


2019年10月27日日曜日

Aviutlで長時間の動画を書き出しするとフリーズして落ちる件~解決策~


Aviutlの最新バージョン1.10についての記事を書きました。

Aviutl Ver1.10のインストール方法!<旧バージョンからの移行から基本的な設定まで>

最新の方がよい方は、こちらをご覧ください。


こんにちは、@CortanMathで す。




みなさん、こんな経験ございませんか。

「Aviutlで長めの動画作って書き出そうとしたら、途中でフリーズしてソフトが落ちた。」
「Aviutlで長時間動画が書き出せない。」



はい、僕もこの間、実際にありました。




普段は、数分とかそのくらいの短い動画ばかり作っているので、
今までこの現象に悩むことはありませんでした。



しかし、初めて長めの動画(と言っても数十分くらいですが)を制作し書き出した際、途中でソフ トが落ちて、途中まで書き出した分がすべて台無しになってしまいました。





実際にこの被害にあってみると、結構きついです。




ということで、今回は「Aviutlで長時間の動画を書き出しするとフリーズして落ちる件 その解決策」についていくつか書いてこうと思います。



「環境設定」からフレーム数の設定



まずは、環境設定を見直してみましょう。



「ファイル」>「環境設定」>「システムの設定」を開きます。



その設定画面の上の方にこのような項目があると思います。



ここで、最大フレーム数を「320000」に、キャッシュフレーム数を「32」にしてくださ い。



また、この下の方にある「LargeAddressAwareを有効にする」にチェックを入れましょう。

これは、パソコンのメモリを有効活用するための設定だと思ってください。




これらができたら、「OK」で保存し閉じ、Aviutlを再起動しましょう。
これで変更した設定が適用されたはずです。



※コメントでご指摘頂いたので、訂正します。

現在公開されているAviutl ver1.10では、「キャッシュフレーム」ではなく「キャッシュメモリ」に、そして、「LargeAddressAwareの設定」は必要ないようです。

僕はこの記事を書いている時点でver1.00を使用していたので、このような内容になってしまいました。

早いところ、ver1.10に移行しようと思います。


エフェクトなどをなるべくつかわない


長時間の動画内にたくさんエフェクトを使いすぎていませんか。



エフェクトやオブジェクトなどが多いほど、当然処理は重くなり、Aviutlが途中停止する可能性は高まります。

もちろんエフェクトがないと見栄えが良くない場合もあるでしょうから、完全になくすことはできないと思います。



ただ少しでも、エフェクトを使用している部分を減らし、違うものに代用するように心掛けてください。



例えば僕の場合だと、上記の画像を動画内で使用する際、Aviutlのエフェクトやカスタムオブジェクトで制作していました。

ただ、それだと重くなってしまったので、GIMPであらかじめ作った画像に置き換えたところ、処理が軽くなりました。



このように、なるべくパソコンに負担がかからないような動画制作をしてください。



パソコンのスペックを上げる



まあ、これは当たり前と言えば当たり前ですね。


Aviutlのエンコードとかは、パソコンのスペック(CPUやメモリ)に依存します。



お金に余裕があるのであれば、パソコンを替える、パーツを追加するなどをしてみてください。





以上です。


でも、いくら対策したからと言って、絶対に落ちないという保証はありませんので、こまめな保存は必須です。



では、さようなら。
また次回、お会いしましょう。


2019年10月20日日曜日

YouTubeの動画をダウンロードするならブラウザの拡張機能「YouTube Video Downloader」がおすすめ!音声ファイルMP3への変換も可


みなさん、こんにちは。
‎@CortanMathです。


最近、YouTubeが急成長していますよね。


ということで、今回はYouTube動画をMP4などの動画ファイル、MP3などの音声ファイルとしてダウンロードする方法をご紹介します。


もちろん、違法にならないように使用してください。
いかにも違法アップロードされた動画などをダウンロードすることは犯罪になります。



YouTubeをダウンロードする方法と言ってもいろいろあるのですが、今回は中でも手軽な「拡張機能を使用するやり方」をお勧めします。



拡張機能と言えば、Chromeの拡張機能が有名ですね。



で、今回使用する拡張機能は「YouTube Video Downloader」というものです。
YouTube動画のダウンロードに特化した拡張機能で、MP3に変換ダウンロードもできます。


対応ブラウザは、以下のようになっています。



  • Chrome
  • Chromium
  • Firefox
  • Opera
  • Vivaldi
  • UCBrowser
  • Comodo Dragon
  • SRWare
  • Slimjet


主要ブラウザはだいたい対応してますね。


では、実際にやってみましょう。



拡張機能のダウンロード・インストール



拡張機能「YouTube Video Downloader」のダウンロードは以下のURL先から行えます。

https://addoncrop.com/youtube_video_downloader/


すると右側のサイトバーにこのようなものが表示されていると思いますので、ここからダウンロー ドできます。



僕はこの時、Edgeブラウザで開いてしまったので、「Edgeのバージョンは手に入らない」つまり、「Edgeには対応していない」といわれてしま いました。


そういう時は、下の「Download For Other Browser」から指定したブラウザ版の拡張機能がダウンロードできます。


もちろんそこで選んだブラウザにしか使えませんが、ダウンロードはどのブラウザでもできます。




ダウントードできたら、実際にブラウザにインストールしてみましょう。
今回僕は、Chrome版をダウンロードしたので、Chromeで操作していきます。




ブラウザのメニューから、「拡張機能」を選択します。



そうしたら、「デベロッパーモード」をオンにしましょう。
これをオンにしないと、Store以外からの拡張機能はインストールできません。




「パッケージ化されていない拡張機能を読み込む」をクリックし、先ほどダウントードしたファイルを選びます。

インストールが完了したという画面が出れば、成功です。



では、実際に使ってみましょう。


「YouTube Video Downloader」を使用する



まず、拡張機能を入れたブラウザでYouTubeを開き、ダウンロードする動画のページを出し ます。
僕は、自分の動画のページを開きました。
(DominoでMIDIの打ち込みしてみた系のやつですね。)



高評価ボタンの左にある「…」ボタンから、メニューが出せるので、ここから好きな設定でダウンロードできます。
「Convert to MP3」を選択すれば、MP3(音声ファイル)としてダウンロードできます。


最後に


以上です。


拡張機能なだけあって、手軽で便利ですが、1つデメリットを上げるとすればこれですね。


デベロッパーモードをオンにしたがために、ブラウザ起動時、毎回これが出てきます。

「デベロッパーモードの拡張機能を無効にする
デベロッパーモードで実行される拡張機能はパソコンにダメージを与える恐れがあります。...」


ただ、デベロッパーモードをオフにすると、この拡張機能が使用できません。


消し方も調べたのですが、なんかいい感じの解決策が見つかりませんでした。



我慢するしかないですね。


では、これで終わります。
また次回お会いしましょう。
さようなら。


人気の記事