ユーザーブロマガは2021年10月7日(予定)をもちましてサービスを終了します

  • 【Unity】シリアライズが有効な実装と無効な実装を検証しました。

    2017-05-01 03:19
    主にクラスのメンバの型にSerializableを付与した際、
    インスペクタに表示されるか表示されないか、
    おそらくつまりCustomEditorスクリプトにおいて、
    SerializedObjectやSerializedPropertyから
    インスペクタへの表示等が可能な定義か不可能な定義かをまとめてみました。
    色々調べましたが、ぱっと見見当たらない事も多かった気がするので、
    それを各々検証するのも時間の無駄なんじゃないかと。
    ただし間違いやバージョンによる差異等はあり得るので、
    納得いかない場合は改めて確認して下さい。
    後、確認はScriptableObjectを派生されたクラスに対してCreateInstanceを実行し、
    .assetファイルを作成して検証したため、
    .prefabでは挙動が違いましたという事はあり得るかもしれません。
    まあ多分ないと思いますが。
    後、検証結果の画像を一番下に載せます。
    一部プロパティ一覧の更新を忘れてしまっているので、
    前と変わっていない場合や怪しい場合は無視していただければと思います。

    バージョン:5.3.4
    使用したソース:http://baba-s.hatenablog.com/entry/2015/05/21/112930

    ◇対応する型について◇
    主に公式リファレンス等通りだが一応まとめる。
    ・abstractで定義しているクラスは無理。
    public abstract class ABC{}
    ↑こういう奴。
    仮にabstractでない派生クラスのインスタンスを入れてもインスペクタには表示されない。
    (この時スクリプトから値を代入した際にシリアライズされるかどうかは未検証。
    気になる人はやれば良いと思うけど別にただの仮想クラスで定義すれば良いだけだと思っているので、駄目な場合があれば教えて貰えればと。)
    ただし、派生クラスを直接定義すればインスペクタに表示される。
    つまり定義にabstractを含むと無理。

    ・自作ジェネリクスも無理。
    public class GenC<GenType>
    ↑こういう奴。
    今回未テストだが別の機会で無理だった気がする。
    というか公式かどっかに無理って書いてあるからきっと無理。
    別に空の派生クラスを作らないといけない程度の手間なので、
    わざわざ検証しませんでした。
    気に食わない人は自分で検証して下さい。

    ◇表示可能なパターン◇
    ・基本クラスが派生クラス型のフィールドを持つ場合はシリアライズ可能。
    abstractクラスで定義した派生クラス型は表示された。
    あまりどういう場合に使うパターンか想定していなかったので意味があるかはわからないが、
    一応これは可能。

    ◇表示不可能なパターン◇
    ・自分と同じ型のフィールドがある場合。
    上で派生型がどうか確認する要因になった要素。
    リスト構造みたいなのをやりたければうまくそっち等を使ってやるべきかもしれない。
    ただし、下記参照だが基本的にリスト構造の実装は非推奨。

    深さが上限に達した場合
    まさにリスト構造のような各クラスのメンバを参照すると再び同じ型が現れるような
    循環する定義をやってみたが、
    定義自体は成立するものの、一定の深さを超えるとインスタンスを展開しても
    クラスの中のフィールドが表示されなくなっていた。
    調べれば情報はありそうだが、深さの上限が存在する模様。
    勿論画面を横に伸ばしたりしても増えたりはしなかった。

    ・定義されている型には存在しない派生クラスで実装されたフィールド
    多態の概念的に特に納得するしかない気がするが、
    ここを間違って出来る前提で設計すると
    おそらく後になってかなり手痛い展開に陥る可能性があるので、
    一応明記。
    ただし、スクリプトからパラメータを操作した場合は保存されている模様。
    Unityを再起動して確認したが、パラメータは保持されていた。
    ただし不安な人は予め検証を行ってから設計を行う事を推奨。

    ◇初期化処理について◇
    これ系の情報を見つけることが出来なかったが、おそらく結構重要だしハマる人はハマると思われ。
    ・引数があるコンストラクタを持つクラスは初期化処理を通過しない。
    コンストラクタに引数がある場合、
    デフォルト値を渡してコールされると言った事はなく、
    そもそもコンストラクタがコールされない模様。
    また、そもそも初期値も適用されない模様。
    public int num=1と書いた場合であっても0になる。
    おそらくスクリプトに定義した処理は一切通過しない。
    ちなみに引数なしコンストラクタは通過する。
    コンストラクタで代入を行えばその値に、
    行わなければ初期値定義通りに、
    初期値定義も行っていなければデフォルトになる。
    (intでしか試してないので他はもしかしたらデフォルトでない可能性はある。)
    また、オブジェクト型引数と整数の引数で確認したが、
    どちらも同じでコンストラクタはコールされていなかった。
    (ログを仕込んだわけではなく、パラメータから推測しているので、
    特殊な状況等があれば実はコンストラクタはコールされている可能性もあるが、
    初期化されないなら同義と思っているため気になる人は確認して下さい。)
    ちなみに、コンストラクタとは別枠でインスタンス生成は行っているのか、
    コンストラクタを通過しなくとも空のインスタンスは生成される。

    ◇挙動等◇
    ・インスペクタに乗らないクラスはnull初期化。
    圧倒的事実。
    普通にデフォルトはnullで特に何もせずそのままだと思われる。
    圧倒的事実と言ったが不安であればjson展開やブレークにかけて検証する事を推奨。

    ・UnityEngine.Objectの派生型はオブジェクトフィールドフォーマットで表示される。
    ScriptableObjectから派生した検証用の型をフィールドに定義したところ、
    オブジェクトフィールドで表示された。
    オブジェクトフィールドはインスタンスIDで管理している模様。
    このフォーマットの場合、特に何も行っていない場合、
    正常に処理を通過しても0初期化、参照なしになる。
    こんがらがってくる話だが、おそらくここに指定するインスタンスは
    Serializeされているインスタンスでなければ、不正な状態になる。
    多分そういうものだと思ってる程度なので、不安であれば確認して下さい。

    ◇その他◇
    ・UnityのJsonUtilはnullを無視
    今回に直接的に関係ない事だが、検証の際にnullのフィールドはjsonに乗らなかったため、
    そういう挙動なんだと学んだ。
    今回初めてこんな機能があると言う事を知った
    (というか今まで主に使っていたバージョンではなかった可能性が高い)
    ので、一応メモ程度に。

    以上。
    案外気が付かない事もあると思うので、事前調査で間違った設計をしないようになる手助けになればと思います。

    以下、検証時のキャプチャ
















    検索用
    SerializeField ScriptableObject SerializedProperty SerializedObject Serialize されない Inspector 映らない
  • 広告
  • Unityを使った開発中にあった奇妙なエラーログの話。 error CS0103: The name does not exist in the current context

    2017-02-13 04:03
    自動枠取り記事がもう随分完成していませんが、
    今日は別のHotな話題が入ったので
    それについて書いてみようと思いました。

    今回はUnityC#のエラーについてです。
    冷静に考えれば当たり前と言えば当たり前なのですが、
    調べても中々対応方法が出てこなかったので書いてみようと思います。

    環境
    Unity 5.3.4f1
    VisualStudio2015 Community
    ちなみに最初はもうちょっと古い5系のバージョンを業務で使っている時に確認しました。

    エラー内容
    Assets/Scripts/CExtend.cs(14,20): error CS0103: The name `Process' does not exist in the current context

    error CS0103: The name does not exist in the current context

    変数名や関数名を変えた時などにお馴染みの未定義エラーです。
    まさに入門中の入門、一瞬で解決できるLevel1相当のエラー文ですね。

    実装を見てみましょう。






    実際のところ該当の関数は定義されており、
    マウスカーソルを当てても参照情報が表示されます。

    また、VisualStudioにはエラーが出てませんが、
    Unityで実行しようとするとエラーが出ます。
    不思議です。

    このソースを見て優秀な学生さんは一瞬で分かるかもしれませんが、
    どうやら問題があるようです。

    調べると列挙型の定義後にジェネリクスクラスを定義するとコンパイルエラーになるとか、
    日本語のコメントの中身によってはコンパイルエラーになる等ありましたが、
    今回はコメントを消したりジェネリクスを一時的に外しても治りませんでした。

    エラーを見た瞬間、瞬殺間違いなしと確信しましたが、
    随分手古摺らせてくれます。
    勿論、実際のソースコードはもっと色々定義してるので、
    油断して浅い沼に足を突っ込んでしまい、慌てて抜け出そうとするも
    嫌に生暖かくて妙に粘性が高く、かつ力を入れようにも沈み込んで抜け出せないような、
    非常に変な気持ち悪さがありました。
    そこから手あたり次第原因を潰して行った状態を再現したのが上記の実装になるわけですね。
    つまり、少量のコードではありますが、上記の実装には問題があります。

    その問題とは

    基本クラスでpublic constで定義した変数を
    派生クラスのコンストラクタのデフォルト引数で指定している


    ことです。
    C#の言語仕様についてあまり詳しくないですが、
    まあ冷静になって考えれば確かにそうなるような気もします。
    ただ、明らかにエラーメッセージが実際の問題と関係ない内容が出力されていて、
    完全に騙されていたので、正直答えにたどり着くまで時間がかかりました。

    おそらく基本クラスで定義されているメンバは、
    基本クラスのコンストラクタが呼ばれたタイミングで初期化されています。
    つまり、派生クラスのコンストラクタが呼ばれた段階では、
    そのインスタンスの基本クラスで定義されているメンバは未初期化なので、
    基本クラスのコンストラクタを呼び出す際に使用準備が出来ていない値を渡すことになります。
    まああってるか分かりませんが、厳密には
    constはコンパイル時に定数になるとか
    C#は実行時コンパイル言語とか
    そういう要素が絡んでやや意味合いは異なるかもしれませんが、
    要するに
    使用できる状態にない値をデフォルト引数に使用してはいけない
    という問題のようでした。
    補足として、以下のように基本クラスのデフォルト引数は変更せず、
    派生クラスのデフォルト引数のみ書き換えた際には
    コンパイルエラーは起こりませんでした。



    Updateで毎回ログを出してるので少し実行しただけで凄い量のログを吐いてくれました。

    つまり、基本クラスのコンストラクタのデフォルト引数の値として
    そのクラスで定義したpublic constの値を使用することは問題ないようです。

    いかがでしたでしょうか。
    冷静に考えればそういう系のこともあるような気がするという話ですが、
    仮にこの記事を見ているのであれば、
    もしかしたら同じ事をやらかしてしまった人も居るのではないでしょうか。

    僕は疲れていたのもあって解決に数時間もかけてしまったので、
    次に同じことをうっかりやってしまった人は
    ぱっと検索でこのページを見つけて解決出来ればと思って書いてみました。

    まあ頭が良い皆さんはきっとこんな凡ミスしないんでしょうけどね。

    以上、業務中に本当にあった奇妙なログの話でした。
  • NLEを使ったニコ生配信のかんたん枠取り自動化ガイド

    2016-03-20 04:252
    ※本ページで記述しているFMEA2はHTML5以降に伴い動作しなくなりました。
    また現在公式の配信ページにて自動延長機能が実装されています。
    FMEA3にて同様の方法が可能であるか当方は把握致しかねますが、
    FMEAシリーズは配信設定保存機能等が存在するため現役かと思われますので、
    この記事は一応公開したままにします。

    ただし、重ねてになりますが、記述しているFMEA2は動作せず、
    FMEA3は当方未確認になりますのでご了承下さい。

    よろしくお願い致します。



    この記事は
    ・配信ツールはNLEか、特に拘りがなく、枠が終了するたびにニコニコ生放送ページから新しく枠を取るのが面倒な方
    ・かんたん配信を卒業して配信のクオリティ向上と効率化を図りたい方
    ・コメントビューアーに拘りがありアンコちゃん以外のコメントビューアーを使いたい方
    ・アンコちゃんのプラグイン設定が難しい、またはその他理由を含め、元より理由で諦めている方
    ・その他枠を取った時のコメントビューアーの設定などを省略したい方
    ・配信内容を変えるたびに同じ内容の配信設定を行いたくない人

    向けのページになります。
    ただし、 NLE(http://live.nicovideo.jp/s/encoder) は既にインストール済みであるか、
    以下を読む前に今からインストールするものとさせて頂きます。

    具体的な自動化後の配信手順として、

    「PC起動」→「ツールを起動」
    →「ツールから枠を取り自動でNLEを配信開始」
    →「枠が終わった際に自動で新しい枠を取り自動でNLEも配信開始」
    →「終了したい時にツールから配信を終了」

    と言う事が可能になります。
    ツールで配信を開始するだけで枠を取り直したり
    配信ツールの設定を行うと言った手順を省略することが出来ます。
    ゲームをしている際に、どうしても数分手が離せない、
    と言った際にもパソコンが自動で次の枠を開始してくれるようになります。
    基本的にはニコニコ生放送へのアクセスの必要もなくなり、
    PCを起動した直後にツールを起動し、ツールから配信を開始出来るようになります。

    既にNLEを導入している場合、
    インストールが必要なソフトは、
    一般に公開されているページからダウンロード可能なソフト2つのみになります。
    登録手続きなどが一切必要ありません。
    また、以下の説明手順にてダウンロードページのリンクと、
    ダウンロード、インストールの手順を説明させて頂きますので、
    特別な準備などは必要ありません。

    ただし、予め断らせて頂きますが、この記事は
    「NLEを導入してニコニコ生放送を放送できる」レベル
    であれば、パソコン初心者であっても
    設定が可能である事を目指しています。
    かなり詳細に操作手順を記述しているつもりなので、
    分量は比較的多めになっています。

    なお、その他の設定やツールについてはこの記事では取り扱いませんのでご了承下さい。
    なお、筆者が使用する環境をほぼ完全に再現する手順であり、
    使っているツールなどは古いものがあります。
    その他理由で最善の環境を保証するものではない為、
    追加したい要素や不満がありましたらそれぞれご自身でご対応お願い致します。
    原則別のツールや別のバージョンについてのご連絡は、
    こちらでご連絡頂いた事を把握しましても返答致しません。
    必要ならば個人でのご対応をお願い致します。

    また、NLEについては予め設定が済んでいるものとして説明しますが、
    NLEの基礎的な機能や設定については回答可能な範囲で返答する場合があります。
    その他、既に多くの方が
    別所でNLEのインストール手順の
    記事やページを作成されていることと思いますが、
    私に対するご連絡が多い場合、別に記事を作成する可能性もあります。

    ブロマガの機能についてあまり把握していない事や、そもそもあまり確認しない事、
    おそらく急ぎの対応が求められることから、
    連絡はTwitterに対して行うことをお勧めします。
    (Twitterもそこまで見てないですが・・・。)

    また、私はNLEや以下で説明させて頂くツールの
    開発者ではございませんので、
    詳細なサポートなどについては開発者にご連絡頂きますよう
    よろしくお願い致します。


    まず、ツールから枠を取り、終了した際にツールで自動で枠を取ってくれるようにします。

    ①「FMEAutomator ver 2」をダウンロード。

    ダウンロードページにて、
    「リンクする際はホームページのトップにするように」
    という内容が明記されているため、
    ここではホームページのリンクを記載させて頂きます。

    まずは下記のリンク、
    http://www.pantherweb.net/ にアクセスします。
    表示されたページの「niconico関連ツール」にカーソルを当て、
    現れた「FMEAutomator ver 2」部分をクリックします。
    これで「FMEAutomator ver 2」のページが表示されると思います。
    「.NET framework 4.0」が入っていない人は、
    ページ内の記述に従い予めインストールしておいて下さい。
    なお、NCVのバージョンα127以降の動作には
    「.NET framework 4.0」が必要であるため、
    NCVを入れて間もない場合は既にインストールが終わっていることになります。
    次に、ページ下部にある「
    FMEAutomator ver 2.43」の下にある
    Download」リンクをクリックし、
    FMEAutomator ver 2.43.zip」(又はFMEAutomator ver 2.43」)を
    ダウンロードします。
    ※前述になりますが、ここでは筆者が使用している環境に沿って説明します。
    最新版ではありませんが、最新版とは設定が異なりますので、
    FMEAutomator ver 2.43」を使用した説明とさせて頂きます。

    ②ダウンロードした「FMEAutomator-2.43.zip」を解凍。

    先程ダウンロードした
    「FMEAutomator-2.43.zip」(又は「FMEAutomator-2.43」)を任意の場所に解凍します。
    ダウンロードについてはNLEの際に経験済みであると思いますので、
    保存される場所などの説明は省略させて頂きます。
    FMEAutomator ver 2.43」の起動や最低限の動作に限り、
    保存場所によって起動しない等のトラブルは発生せず、
    使用したい機能において問題は発生しないようですので、
    場所はデスクトップでも構いません。
    ただし、その他のプログラムと連携して使用するなどの場合における
    動作については取り扱わないものとします。
    また、NCV等その他ツールのインストール時に解凍の経験はあると思いますので、
    ここでは解凍の手順については省略させて頂きます。
    説明が必要でしたらご連絡頂ければおそらく回答は可能です。
    ※解凍ソフトや環境によって異なりますが、
    おおよそ「FMEAutomator-2.43.zip」(又は「FMEAutomator-2.43」)と同じ場所かデスクトップに解凍されます。

    ③「FMEAutomator.exe」の起動。

    先程の解凍操作により作成された「FMEAutomator-2.43」をダブルクリックし、
    「FMEAutomator-2.43」フォルダの中身が表示されたウィンドウが表示します。
    「FMEAutomator-2.43」フォルダに存在するファイルの中にある、
    「FMEAutomator.exe」(又は「FMEAutomator」)という実行ファイルをダブルクリックします。
    目印として、アイコンはニコニコのマスコットキャラの下にFMEと書かれたアイコンです。




    初回起動時はメッセージが表示されるようですが、
    バージョンが変わってしまい、今後の説明から外れてしまうのと、
    このバージョンに入っているアップデートツールが正常ではない可能性があるため、
    「今後通知しない」を選択します。
    アップデートを検討している場合、
    今回は「次回通知する」を選択し、
    一通り自動化手順を終えて動作を確認した後に、インストールすることをお勧めします。



    私は今回、「今後通知しない」を選択しました。
    すると設定項目らしきものが沢山表示されているウィンドウが現れると思います。
    予め言わせてもらいますが、これらは別の配信環境向けの設定項目なので、
    直接編集することはありません。
    注目すべき場所を赤い四角で囲ってみました。



    前述になりますが、これらの殆どは関係がない項目になります。
    「ビデオ▲」「オーディオ▲」「情報▲」「出力▲」の、
    それぞれの「▲」箇所をダブルクリックすることで、
    これらの設定する必要がない箇所を畳むことが出来ます。
    好みになりますが、畳んでおいたほうが小さくなるので便利かもしれません。



    次に、「待機中」「ユーザー情報が取得できませんでした」「非ログイン」
    と言う項目ですが、現在の状態を表しています。
    初回起動時はおそらく「非ログイン」と表示されています。
    このままではまだこのツールを使い配信を開始することは出来ないと言う事になります。

    ④「FMEAutomator」にユーザー情報を取得させる。
    「FMEAutomator」のメニューの「表示」をクリックし、
    表示された「設定」の項目をクリックします。



    設定画面が出てきます。
    「ブラウザの種類」と言う項目があるので、
    こちらの枠から普段使用しているブラウザ
    (普段ニコニコ動画等にアクセスしているブラウザ)を選択します。
    私は「Firefox 3」(シリーズ)のブラウザを使用しているので、
    画像では「Firefox 3」を選択します。

    ※その他の設定項目はおおよそ別の配信環境向けの設定になるため変更不要です。
    ちょっと前まで「IE」「Firefox」はログイン情報を正確に取得できることを確認しています。
    おそらく「Chrome」も情報の取得が出来たと思います。
    「Opera」は出来ませんでした。
    ログイン情報を含むデータの場所が昔から変更になったのだと思います。
    「Cookieのパス」を変更することで対応可能だと思いますが、
    私自身うまく出来なかったためこのやり方については説明できません。



    「OK」を押して設定画面を閉じます。
    おそらく、まだ「ユーザー情報が取得できませんでした」のままだと思いますので、
    一度、右上の×ボタンから「FMEAutomator」を終了します。
    その後、先程の起動手順同様に、改めて「FMEAutomator」を起動します。
    先程まで「ユーザ情報が取得できませんでした。」「非ログイン」
    となっていた箇所が「ユーザ情報を取得しました。」「ユーザID:(ID)」
    が表示されていると思います。



    ※「ユーザ情報が取得できませんでした。」表示のままの場合。
    以下を試して下さい。
    1.設定したブラウザを起動後、ニコニコ生放送にログインしているか確認する。
    念のためマイページが見れるか確認して下さい。
    既にマイページの場合も更新して下さい。
    ログインしていなかったらログインして「FMEAutomator」を再起動します。
    2.指定したブラウザが間違っていないか確認する。
    設定したブラウザが間違っていた場合、正しいブラウザに直して、
    「FMEAutomator」を再起動します。
    3.IEでニコニコ生放送を開いてログインし、先程の設定箇所を
    「Internet Explorer」に設定し、
    「FMEAutomator」を再起動します。
    4.ブラウザを再起動した際にログインされている状態になっているか確認する。
    キャッシュクリアやキャッシュを保存しない設定にしている場合、
    設定を変更してログイン状態を維持するようにして下さい。
    これが嫌な場合、「FMEAutomator ver 3」には
    起動時にログイン情報を入力する箇所があるため、
    「FMEAutomator ver 3」を使用することで対応可能であると思われますが、
    筆者は「FMEAutomator ver 3」を使用したことはないので、
    ここでは取り扱わないものとします。

    これでも解決しない場合は、セキュリティソフトの設定などによる可能性がありますが、
    「FMEAutomator」を使った自動化が出来なくなった事が無いため、
    これ以降はここでは取り扱わないものとします。

    ④試しに枠を取ってみる。

    「FMEAutomator」のメニューの「プラグイン(P)」をクリックし、
    表示された「枠取り」をクリックします。
    表示された「配信内容の項目設定...」をクリックします。
    この「プラグイン(P)」内に表示されている項目は、
    その他ツール等と連携する際に使用することが出来ますが、
    ここでは省略します。



    今回は既に行った配信情報を読み込みます。
    まず、作成したい枠のURLを任意の方法でコピーします。



    次に、先程開いた配信設定画面の「既存の配信から取り込む」をクリックします。



    既存配信を指定する為の画面が表示されるので、
    「放送ID:」欄にコピーしたURLを貼り付けます。
    その後、「lv~」箇所のみを残してその他の箇所を削除します。
    下記の赤枠部分のみを残してその他は削除します。



    「OK」を押すと読み込みが始まりますので暫く待ちます。
    読み込みが終わると左側の一覧に配信設定が追加されます。



    右上の「×」ボタンからウィンドウを閉じます。

    「FMEAutomator」のメニューの「プラグイン(P)」をクリックし、
    表示された「枠取り」をクリック、
    更に表示された「配信内容」をクリックし、
    表示された先程設定した配信情報をクリックします。
    改めて「配信内容」箇所をクリックすると、
    選択した項目の左側にチェックが入っていると思います。
    チェックが入っている状態で、
    「FMEAutomator」のメニューの「プラグイン(P)」をクリックし、
    表示された「枠取り」をクリックし、
    更に表示された「枠を取る」をクリックすることで配信を開始できます。
    また、「FMEAutomator」のメニューの「プラグイン(P)」をクリックし、
    表示された「枠取り」をクリックし、
    更に表示された「枠取り自動化」をクリックすることで、
    枠が終了した際に自動で新しい枠を取ってくれるようになります。
    また、今回はテストで実際に枠を取ってみた方もいらっしゃると思いますが、
    配信の終了についても
    「FMEAutomator」のメニューの「プラグイン(P)」をクリックし、
    表示された「枠取り」をクリックし、
    更に表示された「枠を終了する」をクリックすることで配信を終了できます。
    これでニコニコ生放送を開かずに
    基本的な操作を行うことが出来るようになりました。



    しかし、この状態で枠を取った場合、
    配信を開始した直後にNLEの配信開始ボタンを押す必要があります。
    枠が切り替わった時にも改めて押しなおす必要があります。

    次の手順でNLEの操作も自動化します。


    生放送の内容によって説明文やタグなどの設定を切り替える方法になりますが、
    まずは、先程表示した
    「FMEAutomator」のメニューの「プラグイン(P)」をクリックし、
    表示された「枠取り」をクリック、
    表示された「配信内容の項目設定...」をクリックして設定画面を表示します。
    その後、表示された設定画面の「追加」から新しい設定情報を作成し、
    枠に沿って配信情報を入力するか、
    先程の手順から過去の配信設定を読み込むことで設定を追加します。
    これで先程の
    「FMEAutomator」のメニューの「プラグイン(P)」をクリック後、
    表示された「枠取り」をクリック、
    更に表示された「配信内容」をクリックすると、
    先程追加した設定情報が追加されていると思いますので、
    使用したい配信設定をクリックします。
    以後この手順で配信設定の追加と配信設定の選択を行って配信設定を切り替えます。

    補足になりますが、手動で配信情報を設定する場合、
    ニコニコ生放送から生放送を開始する際の入力条件を満たしていない場合は、
    配信開始時にエラーが発生しますので注意して下さい。
    また、ここまででエラーが発生し配信が開始できない場合、
    「FMEAutomator」を使用して枠を取る際に発生するエラーの対応については
    最後に記述致しますので、そちらを参考にして下さい。

    ⑤「nleautostart」をダウンロード。

    http://co9176.info/nle/ から「nleautostart」をダウンロードします。
    ただし、私が最新版を使用した際、
    「windows8」と「windows10」では動作しなかったため、
    「nleautostartをダウンロード」をクリックするのではなく、真下にある
    うまく動かないという意見がありましたのでVer4もおいておきます
    をクリックし、
    「nleautostart4.zip」(又は「nleautostart4.zip」)をダウンロードします。

    ⑤ダウンロードした「nleautostart」を任意の場所に解凍。

    先程ダウンロードした
    「nleautostart4.zip」(又は「nleautostart4」)を任意の場所に解凍します。
    「nleautostart」は「FMEAutomator」の設定で「nleautostart」の場所を指定する為、
    自分がすぐ分かる場所に保存して下さい。
    すぐ分かるのであれば場所はデスクトップでも構いません。
    FMEAutomator」同様、ここでは解凍の手順については省略させて頂きます。
    ※解凍ソフトや環境によって異なりますが、
    おおよそ「nleautostart4.zip」(又は「nleautostart4」)と同じ場所かデスクトップに解凍されます。

    「NLEautostart4」は単体で使用することはありませんので、
    これ以降「NLEautostart4」を直接操作することはありません。

    ⑤解凍した「nleautostart」の場所を取得。

    先程解凍して作成された「NLEautostart4」をクリックし、
    「NLEautostart4」フォルダの中身を表示します。
    「NLEautostart4」フォルダの中に、
    「NLEautostart4.exe」(又は「NLEautostart4」)がありますので、
    これを「右クリック」します。
    「右クリック」後に表示される項目から
    「ショートカットの作成(S)」をクリックします。



    「NLEautostart4.exe」(又は「NLEautostart4」)と同じ場所に
    「NLEautostart4.exe - ショートカット」(又は「NLEautostart4 - ショートカット」)
    が作成されます。
    今度は、作成された
    「NLEautostart4.exe - ショートカット」(又は「NLEautostart4 - ショートカット」)
    を「右クリック」し、
    表示される項目から「プロパティ(R)」をクリックします。
    更に表示された
    「NLEautostart4 - ショートカット.exeのプロパティ」
    (又は「NLEautostart4 - ショートカットのプロパティ」)
    から、「リンク先:」の横にある部分をコピーします。
    コピーの方法は、開いてから何も操作しなかった場合、
    「リンク先:」の横にある部分が青くなっていると思いますので、
    青くなっている状態の「リンク先:」の横にある部分を「右クリック」します。
    「右クリック」後に表示される項目から、
    「コピー(C)」をクリックします。
    おそらく、
    「NLEautostart4 - ショートカット.exeのプロパティ」
    (又は「NLEautostart4 - ショートカットのプロパティ」)
    を開いたところでこのページを見てしまったり、
    その他別の場所をクリックしてしまう事もあると思いますが、
    その際は改めて先程の手順で
    「NLEautostart4 - ショートカット.exeのプロパティ」
    (又は「NLEautostart4 - ショートカットのプロパティ」)
    を開いて下さい。
    又は、「リンク先:」の横にある部分をクリックすると、
    文字が入力できるようになりますが、
    ここでは絶対何も入力せずにそのまま
    「Ctrl」(キーボードのおおよそ一番左下周辺にある)キーを押しながら、
    「a」キーを押します。
    すると、文字を入力できる場所が青くなりますので、
    この状態で「右クリック」し、「コピー(C)」をクリックするか、
    「Ctrl」キーと「a」キーを押した状態から、
    「a」キーを放し、「c」キーを押します。
    間違って文字を入力したり消してしまったりした場合には、
    一度ショートカットを削除して改めてショートカットを作成して下さい。

    とにかく、言っている意味が分かるいずれかの方法で
    「NLEautostart4.exe」(又は「NLEautostart4」)の場所をコピーします。



    ⑥「FMEAutomator」を使って枠を取った時に、「NLE」の配信開始を自動で行うようにする。

    最終的な目標まで来ました。
    本題の最後のステップです。
    ツールを使って枠を取った時にNLEの配信開始操作も自動化します。
    これによって、ツールから自動で枠を取るように設定した状態で、
    配信者が一切操作をせずに自動で配信を開始し、
    枠が終了した時にも自動で次の枠を開始できます。

    まず、ここで「FMEAutomator」を開いていない場合、
    「FMEAutomator.exe」(又は「FMEAutomator」)をクリックし、
    「FMEAutomator」を開きます。

    次に、「FMEAutomator」のメニューから、
    「プラグイン(P)」をクリックし、
    表示された「アプリケーション 連携」をクリック、
    更に表示された「設定...」をクリックします。



    NLEの自動化には
    配信を開始した直後の「「配信開始」ボタンを押す」操作と、
    配信終了時の「「配信停止」ボタンを押す」操作に相当する設定が必要になります。
    連続で枠を取った事がある人は経験があるかもしれませんが、
    現在取っていた枠が終了し
    NLE側で自動で配信が停止されなかった場合に
    手動でNLEの配信停止を押さずに次の枠を開始してしまうと、
    新しい枠には映像や音声が送信されません。
    この際、新しい枠を開始した後に
    「配信停止」と「配信開始」を押すことで映像と音声は正常に送信されますが、
    続けて枠を取る場合、必ずNLEの「配信停止」と「配信開始」を押す必要があります。

    まず、配信を開始した際の
    「「配信開始」ボタンを押す」操作に相当する設定を行います。

    表示された画面にある「追加」を押します。



    左側のリストに「アプリケーション名」という項目が追加されます。
    「アプリケーション名」が青又は灰色になっていれば
    現在選択中なのでそのままで問題ありません。
    青又は灰色になっていなければ「アプリケーション名」をクリックします。

    次に、右側の各項目を設定していきます。
    「名前:」は「配信設定」の「タイトル」に相当します。
    「配信内容」を選択したときのように、
    使用するアプリケーションを選択する場合に表示される名前になります。
    任意で構いませんが、分かりやすい名前を推奨します。
    ここでは「NLE自動配信開始」とします。
    「ファイルパス:」は先程コピーしたファイルの場所を入力します。
    「ファイルパス:」の右隣の枠をクリック後、
    続けて「右クリック」、
    表示された項目から「貼り付け(P)」をクリックします。
    ここまでの操作で別のものをコピーしていた場合など、
    先程コピーしたものと異なるものを貼り付けてしまった場合は、
    まず、入力欄の文字を全て削除し、先程の手順で
    「NLEautostart4.exe」(又は「NLEautostart4」)の場所をコピーし、
    再び貼り付けてください。
    「コマンドライン:」は配信開始時は固定で「/start」になりますので、
    間違えず入力してください。
    「表示方法:」はおそらく関係ないので「通常表示」のままにしておきます。
    おそらく、連携したツールのウィンドウの状態を指してるので、
    「起動タイミング:」は、連携したツールに対する操作を行うタイミングになります。
    ここは配信開始時は固定で「配信開始後」になります。
    「起動制御:」はチェックを外したままで問題ありません。
    「終了タイミング:」は「何もしない」、
    「起動遅延:」は「0」のままにします。
    「ファイルパス:」以外はおおよそ以下のようになります。



    「OK」を押さないと保存されないので、
    ここで一度「OK」を押して、
    再び「FMEAutomator」のメニューから、
    「プラグイン(P)」をクリックし、
    表示された「アプリケーション 連携」をクリック、
    更に表示された「設定...」をクリックし、
    先程と同じ画面を表示します。

    ※余談ですが、「OK」を押さないまま
    以下の「追加」を行って終了した際に
    設定が全て消えていました。
    経験論なので、きっちりこまめに「OK」で保存しましょう。

    この状態で先程と同様に「追加」を押して、
    「「配信停止」ボタンを押す」操作に相当する設定を行います。

    「名前:」は先程同様、
    任意で構いませんが分かりやすい名前を推奨します。
    ここでは「NLE自動配信終了」とします。
    「ファイルパス:」は先程コピーしたファイルの場所を入力します。
    手順については先程と一切同じなので省略します。
    また、先程作成した配信開始設定の「ファイルパス:」から
    コピーしても問題ありません。
    「コマンドライン:」は配信終了時は固定で「/stop」になりますので、
    間違えず入力してください。
    「表示方法:」は先程同様、
    おそらく関係ないので「通常表示」のままにしておきます。
    「起動タイミング:」は配信開始時は固定で
    「配信終了後」になります。
    「起動制御:」以下は先程同様になります。
    「起動制御:」はチェックを外したまま、
    「終了タイミング:」は「何もしない」、
    「起動遅延:」は「0」のままにします。
    「ファイルパス:」以外はおおよそ以下のようになります。



    「OK」を押して設定画面を閉じます。
    これでNLEの自動化は完了ですが、
    念のため作成した設定が有効になっているか確認します。
    「FMEAutomator」のメニューから、
    「プラグイン(P)」をクリックし、
    表示された「アプリケーション 連携」をクリック、
    更に表示された「アプリケーション」をクリックすると、
    先程設定した項目が表示されます。
    先程設定した項目でチェックが入っていないものがある場合、
    チェックに入っていない項目をクリックします。

    後は実際に配信を行うのみです。
    ただ、NLEは予め起動しておき、
    かつ、配信を開始できる状態にする必要があります。
    ちなみに、自動ログインが有効ではなく、
    手動でログインを忘れた状態で配信を始めてしまった場合、
    NLEはログイン画面のままなので、
    映像と音声が送信されない事があります。
    少なくとも筆者はそれなりの頻度でやる為要注意です。

    次のステップでは、「FMEAutomator」を起動した時に、
    NLEなどの配信する際に使用するソフトを一緒に起動する設定を行います。
    これに関しては「FMEAutomator」の
    起動するまでの間にそれぞれ起動してしまっても良いのですが、
    「「FMEAutomator」を起動するだけで
    配信環境を自動で準備してもらうようにしたい」
    という方は次のステップに進んで下さい。

    またもう一つ、現状の設定の欠点として、
    コメントビューアーを使用している場合、
    新しい枠が始まるたびに放送ページを開いて、
    生放送のURLをコメントビューアーにコピペする必要があります。
    せっかくここまで自動化したのに、
    コメントビューアーの設定だけを手動でするのはかなりの手間です。

    次の次のステップで、この作業を自動化する方法がありますので、
    コメントビューアーに対する操作の自動化のみを行いたい方は
    次の次のステップへ進んで下さい。

    ⑦「FMEAutomator」起動した際に他のソフトを自動で起動する。

    ゲーム実況者であれば「キャプチャソフト」、
    絵描きさんなら「ペイントソフト」
    或いはこのページを読んでいる方々全般に「NLE」
    「やります!アンコちゃん」を使っている方で
    読み上げを使うなら「棒読みちゃん」
    と言った具合に配信を開始する目的で
    PCを起動した直後にそれぞれ起動するソフトがあると思います。
    ここでは「FMEAutomator」を起動した時に
    別のソフトを自動で立ち上げる設定をします。
    ただし、「NiconamaCommentViewer」や「やります!アンコちゃん」
    については、別の方法があり、
    次のステップで取り扱いますので、
    ここでは設定しないようにして下さい。

    まず、起動したいファイルの場所をコピーします。
    場所のコピーの方法は先程と同じになりますが、
    今回はどれが「ショートカット」であるかを
    見極める方法から入りたいと思います。
    これに関しては特に難しいことはありません。
    設定を変更したりしていない限り
    アイコンの左下部分に右上方向の矢印マークがあるアイコンが
    「ショートカット」になります。



    余談にはなりますが、上の画像では「AmaRecTV.exe - ショートカット」を、
    マウスカーソル(マウスで操作する矢印の事)で刺していますが、
    「場所: AmaRecTV (F:\Tools\CaptureTool\amarectv310)」と言うように
    ソフトがある場所を表示してくれます。
    また、「右クリック」をして表示される項目に、
    「ファイルの場所を開く(I)」と言う項目があるので、
    これをクリックすると、本当のファイルの場所を開いてくれます。
    ただし、今回はショートカットさえあれば良いため、
    ここでは使用しません。
    いつか役に立つかもしれないので豆知識程度に。

    逆に、普段クリックしているものが「ショートカット」ではなかった場合、
    先程同様に、場所を取得したいファイルを「右クリック」し、
    表示される項目から「ショートカットの作成(S)」をクリックし、
    「ショートカット」を作成します。

    「ショートカット」から場所を取得する方法は先程の方法が使えます。
    「ショートカット」を「右クリック」し、
    表示される項目から「プロパティ(R)」をクリックします。
    更に表示された
    「プロパティ」画面から、
    「リンク先:」の横にある部分をコピーします。
    コピーの方法に関してはここでは省略しますので、
    必要でしたら「NLEautostart4」の
    ショートカットを作成した際の手順を確認して下さい。



    次に、「FMEAutomator」に「FMEAutomator」起動時に
    今コピーした一緒に起動したいファイルの場所を教えてあげます。

    「FMEAutomator」を起動していない場合、「FMEAutomator」を起動します。
    「FMEAutomator」のメニューから、
    「プラグイン(P)」をクリックし、表示される項目から、
    「アプリケーション 連携」をクリックし、更に表示される項目から、
    「設定...」を開きます。
    NLEの配信開始と配信終了の設定を行う画面を出した時と同じ手順になります。
    次に、表示された画面の左下にある「追加」をクリックします。
    おそらく、NLEの設定を行った時と同じく、
    左側に新しく項目が追加され、
    新しく追加された部分が青か灰色になってると思います。
    新しく追加された部分以外が青か灰色になっている場合、
    新しく追加された部分をクリックして青くします。

    後はNLEの自動化を行った時と殆ど同じです。
    「名前:」は任意で構いませんが分かりやすい名前を推奨します。
    「ファイルパス:」は先程コピーしたファイルの場所を入力します。
    「コマンドライン:」は単純に起動するだけであれば、
    基本的には空欄のままにします。
    「表示方法:」は任意ですが、基本的には「通常表示」でいいでしょう。
    重要なのが、「起動タイミング:」です。
    「起動タイミング:」は「FMEAutomator」起動直後で良いならば
    「FMEAutomator 起動後」になります。
    「起動タイミング:」を切り替えることで好きなタイミングに起動できます。
    「起動制御:」はおそらく配信開始時などの複数回行われるタイミングにて
    既に起動していた時に新しいウィンドウで起動しない為の設定ですが、
    良く分からないのでここではチェックを外したままにします。
    「終了タイミング:」はおそらく
    「ファイルパス:」で指定したソフトが起動していた場合に、
    自動で終了する事が出来ます。
    筆者は終了時は表示されているウィンドウを閉じれば良いと思っており、
    使ったことないので省略します。
    「起動遅延:」はおそらく起動するまでの時間を調整する項目だと思われますが、
    使った事が無いのでここでは省略します。
    分からないのでそのまま「0」のままにします。
    「FMEAutomator」起動直後にソフトを起動する設定は、
    「名前:」(任意)、「ファイルパス:」以外はおおよそ以下のようになります。




    「OK」を押して設定画面を閉じます。
    これで設定は完了ですが、念のためNLEの時と同様に
    作成した設定が有効になっているか確認します。
    「FMEAutomator」のメニューから、
    「プラグイン(P)」をクリックし、
    表示された「アプリケーション 連携」をクリック、
    更に表示された「アプリケーション」をクリックすると、
    先程設定した項目が表示されます。
    先程設定した項目でチェックが入っていないものがある場合、
    チェックに入っていない項目をクリックします。
    また、反対に使いたくない場合はこの手順で
    チェックが入っている使いたくない項目をクリックしてチェックを消します。

    最後に実際に設定したソフトが起動するか確認しましょう。
    「FMEAutomator」を右上の「×」ボタンから閉じ、
    再び「FMEAutomator」を起動します。
    無事起動したら設定は成功しています。
    起動しない場合は「ファイルパス:」と「起動タイミング:」を見直して下さい。
    また、ソフトによっては起動までの時間が長いものもあります。

    (頂いたご意見より)
    ただし、元となるソフトの場所が「ProgramFiles」などの
    「「アクセス権限」が必要になる場所」にあるソフトは
    そのままでは使うことが出来ないことがあるようです。
    やや複雑な話になりますが、
    大雑把な対応としては連携したいソフトを
    「デスクトップ」に移動することで対応可能です。
    しかし、「ProgramFiles」などの
    予め決められた場所に置かないと動作しないものもあります。
    また、おおよそのソフトが設定ファイルや
    ソフトを動かすための部品の場所との関係が
    一定である必要がある為、
    (根本的な理屈としては「ProgramFiles」から移動できない理由と同じ。)
    基本的には「親フォルダ」単位で移動する必要があります。
    必ずしも同じ対応で対応可能とは限りませんが、
    今回はNLEが「ProgramFiles」にある場合の対応方法を記します。

    まず、「ショートカット」を「右クリック」をし、
    表示された項目から「ファイルの場所を開く(I)」をクリックします。



    表示された場所が「Program Files」等の場合、
    「アクセス制限」などで連携することが出来ない可能性があります。
    試しに設定を一切変えずにNLEをインストールし、
    NLEの場所を確認しました。



    「Program Files (x86)」の中にNLEはありました。
    「Program Files (x86)」の中にある場合、
    「アクセス権限」の関係ソフトを起動できない可能性があるので、
    「デスクトップ」に移動します。
    「アクセス権限」の影響を受けなければどこでも良いのですが、
    複雑になる為今回はデスクトップに移動するものとします。
    必要ならば自力でトライして下さい。
    若しくは質問頂ければ回答出来る場合もあります。

    まず、今は「nicoliveenc」に居るので、
    「niwango」まで戻る必要があります。
    「niwango」をクリックして「niwango」に移動します。
    その後、マウスカーソル(マウスを動かした際に動く矢印)を
    「nicoliveenc」まで移動し、「nicoliveenc」の上で
    マウスの「右ボタン」を押し、
    離さずに「デスクトップ」までマウスカーソル
    (マウスを動かした際に動く矢印)を移動して、
    「右ボタン」を離します。
    その後、表示された項目から「ここにコピー(C)」をクリックします。
    「ここに移動(M)」でも問題はありませんが、
    少なくともWindows7ではコピー中に
    何らかのトラブルが発生した場合に
    ファイルが消える場合があるので、
    「ここにコピー(C)」をお勧めします。
    元々の場所に残したくない場合、
    コピーが終わった後に削除することをお勧めします。


    これで「アクセス権限」の影響を受けなくなりました。
    そもそもこの操作が出来ない場合、配信が出来ないと思いますが、
    この操作が必要だが出来ない場合がある場合は
    状態が気になるので連絡を頂ければと思います。

    さて、このステップでは
    「NiconamaCommentViewer」や「やります!アンコちゃん」
    についての設定は省略しました。
    勿論この設定方法でコメントビューアーを起動することは可能ですが、
    結局生放送ページを開いてURLをコピペする必要があります。
    ここまで自動化しておいて、コメントビューアーの設定だけを
    手動でするのはかなりの手間です。
    しかし、「FMEAutomator」には
    なんと「FMEAutomator」を使って配信を開始した時に、
    新しく取った枠のコメントを取得するように自動で設定する
    機能があります。

    次のステップではコメントビューアーの操作も自動化します。

    ⑧配信開始時のコメントビューアーの操作を自動化する。

    このステップではプラグイン>NCV連携。
    アンコの場合もパスアンコのパスを指定すると動作する。
    ただしおそらく想定されていない動作になる為自己責任。
    多重起動しない設定推奨。
    環境によっては連続で枠を取っていくと段々重くなる。
    アンコで読み上げを行う場合、前のステップで読み上げソフトの起動を推奨。
    起動していないと自動で読み上げがオフになってややこしくなる。
    後で編集します。

    ⑨次枠誘導、次枠開始までのインターバル。

    プラグイン>枠取り>共通設定
    待機時間がインターバル、次枠の案内をコメントが次枠誘導。

    誘導については次枠が始まった時に
    アンコが次枠の設定になるように設定してるので(上記)
    配信してるので機能が生きているか不明。

    後で編集します





    ・FMEAで配信が開始できない。

    FMEAも操作してもエラーしか吐かなくなる場合が多いのでまずは再起動する。
    1.プレミアム会員が終了している。
    2.ブラウザのログイン情報が消えている。
    3.枠が満員で配信が開始できない。
    4.放送設定に問題がある。(タイトルが空、空のタグその他入力不備。)

    ・FMEAトラブル。

    たまに枠は取れているが、配信が開始しない。
    その時は放送ページにアクセスして、本番開始を押す必要がある。
    このパターンが原因が分かりにくく手間もかかるので一番厄介。

    ・NLEトラブル。

    たまに配信停止にならなかったり配信開始にならないで
    映像や音声が飛んでいないので、
    リスナーに声をかけてもらう工夫があると良い。
    必要に応じて配信停止と配信開始を押す。

    関係ないけどパソコンの音がでなくなったりエコーがかかった時は
    スピーカーキャプチャのチェックを一旦切って、
    もう一回チェックを入れる。
    それか、上のデバイスでマイク以外になっていたらマイクに直して、
    スピーカーキャプチャのチェックを入れる。
    NLEを使っている限りステレオミキサー系統の機能は不要。
    マイクを指定する。
    配信を見て回るとこのあたりのトラブルが起こっていて
    解決できないで時間をロスしている様子を良く見るので、
    リスナーに声をかけられたときの為に覚えておくと非常に便利。

    ・放送ページを開く。

    ・最後に


    出来ればわかりにくいところをコメントで残しておいて下さい。
    気が付いた時に治すかもしれません。
    ただ、手順が細かくて分量が長いのは仕様です。
    より多くの人が失敗せずに設定できるように書いているので、
    そこについては対応する予定はありません。
    特に分かりにくい場所がなかったら
    参考にした事等をコメントとして残す必要はありません。




    疲れたので一旦ここまでとさせて頂きます。
    改めて編集しますので、

    運悪く未完成の状態を見つけてしまった人は時間をおいて見て頂けますと幸いでございます。


    それでは、よろしくお願い致します。


    →結局更新しなさそうなので、困った際はツイッターで聞いて下さい><
    今後はツイッターで答えた内容をコピペして仮追記してくと思います。
    フォローとかは要らないので普通に@ツイートで困った内容を教えて貰えればと。
    ID:@Plode_Arcanine