tag:crieit.net,2005:https://crieit.net/tags/UnrealEngine/feed 「UnrealEngine」の記事 - Crieit Crieitでタグ「UnrealEngine」に投稿された最近の記事 2021-02-15T21:56:39+09:00 https://crieit.net/tags/UnrealEngine/feed tag:crieit.net,2005:PublicArticle/16686 2021-02-15T21:52:38+09:00 2021-02-15T21:56:39+09:00 https://crieit.net/posts/UE4-Blueprint UE4のBlueprintで動く床を作る! <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <ol> <li>アクションゲームでよく見る動く床を作ってみるよ。</li> <li>ある程度UE4を触ったことある人向け。</li> <li>作り方だけ。細かい説明は無いです。</li> </ol> <h3 id="作りたいやつ"><a href="#%E4%BD%9C%E3%82%8A%E3%81%9F%E3%81%84%E3%82%84%E3%81%A4">作りたいやつ</a></h3> <p>今回作るのは動く床は同じ場所を行ったり来たりするタイプ。</p> <p>↓↓サンプル↓↓<br /> <a href="https://crieit.now.sh/upload_images/45595b21802dc3d8e683e2d743ecfd54602a6f1cef9b9.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/45595b21802dc3d8e683e2d743ecfd54602a6f1cef9b9.gif?mw=700" alt="image" /></a></p> <h3 id="使用バージョン"><a href="#%E4%BD%BF%E7%94%A8%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3">使用バージョン</a></h3> <p>今回はUE4.26.1を使用。</p> <h2 id="作成方法"><a href="#%E4%BD%9C%E6%88%90%E6%96%B9%E6%B3%95">作成方法</a></h2> <h3 id="1.ActorBlueprintを作成"><a href="#%EF%BC%91%EF%BC%8EActorBlueprint%E3%82%92%E4%BD%9C%E6%88%90">1.ActorBlueprintを作成</a></h3> <p>名前はBP_Moving_Platfromにしてみた。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6445c8f81.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6445c8f81.png?mw=700" alt="image" /></a></p> <h2 id="2. StaticMeshとInterpToMovementコンポーネントをもたせる"><a href="#%EF%BC%92.++StaticMesh%E3%81%A8InterpToMovement%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%82%92%E3%82%82%E3%81%9F%E3%81%9B%E3%82%8B">2. StaticMeshとInterpToMovementコンポーネントをもたせる</a></h2> <p>作成したBlueprintに対して以下の画像のようにStaticMeshとInterpToMovementコンポーネントコンポーネントを持たせる。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a657378419.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a657378419.png?mw=700" alt="image" /></a></p> <h4 id="各コンポーネントの役割"><a href="#%E5%90%84%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AE%E5%BD%B9%E5%89%B2">各コンポーネントの役割</a></h4> <div class="table-responsive"><table> <thead> <tr> <th>コンポーネント</th> <th>役割</th> </tr> </thead> <tbody> <tr> <td>StaticMesh</td> <td>床</td> </tr> <tr> <td>InterpToMovement</td> <td>動きの制御</td> </tr> </tbody> </table></div> <h2 id="3. コンストラクションスクリプトと変数"><a href="#%EF%BC%93.++%E3%82%B3%E3%83%B3%E3%82%B9%E3%83%88%E3%83%A9%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A8%E5%A4%89%E6%95%B0">3. コンストラクションスクリプトと変数</a></h2> <p>以下の画像のように床を動かすための設定を作成したBlueprintのコンストラクションスクリプトに書く&使う変数を作成する。</p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6998c573b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6998c573b.png?mw=700" alt="無題.png" /></a></p> <h4 id="作成する変数とその役割"><a href="#%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E5%A4%89%E6%95%B0%E3%81%A8%E3%81%9D%E3%81%AE%E5%BD%B9%E5%89%B2">作成する変数とその役割</a></h4> <div class="table-responsive"><table> <thead> <tr> <th>変数名</th> <th>型</th> <th>役割</th> </tr> </thead> <tbody> <tr> <td>StartLocation</td> <td>Vector</td> <td>床移動スタート地点</td> </tr> <tr> <td>EndLocation</td> <td>Vector</td> <td>床移動ゴール地点</td> </tr> <tr> <td>Duration</td> <td>Float</td> <td>床移動時間(s)</td> </tr> </tbody> </table></div> <p>StartLocationとEndLocationは、<strong>インスタンス編集可能</strong>と<strong>3Dウィジェットを表示</strong>と<strong>スポーン時に公開</strong>にチェックを入れる。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6c1c2043c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6c1c2043c.png?mw=700" alt="image" /></a></p> <h2 id="4. InterpToMovementコンポーネントの設定"><a href="#4.+InterpToMovement%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AE%E8%A8%AD%E5%AE%9A">4. InterpToMovementコンポーネントの設定</a></h2> <p>床を往復させるために、InterpToMovementコンポーネントのビヘイビア欄にある<strong>BehaviorType</strong>を<strong>PingPong</strong>に変更する。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6ca937d6a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6ca937d6a.png?mw=700" alt="image" /></a></p> <h2 id="5. PIE上にドラッグアンドドロップしてゴールと移動時間を設定"><a href="#5.+PIE%E4%B8%8A%E3%81%AB%E3%83%89%E3%83%A9%E3%83%83%E3%82%B0%E3%82%A2%E3%83%B3%E3%83%89%E3%83%89%E3%83%AD%E3%83%83%E3%83%97%E3%81%97%E3%81%A6%E3%82%B4%E3%83%BC%E3%83%AB%E3%81%A8%E7%A7%BB%E5%8B%95%E6%99%82%E9%96%93%E3%82%92%E8%A8%AD%E5%AE%9A">5. PIE上にドラッグアンドドロップしてゴールと移動時間を設定</a></h2> <p>今回は次のように設定した。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6d9ad5102.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a05602a6d9ad5102.png?mw=700" alt="image" /></a></p> <p>↓↓以下のように動けば完成<br /> <a href="https://crieit.now.sh/upload_images/45595b21802dc3d8e683e2d743ecfd54602a643a309c2.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/45595b21802dc3d8e683e2d743ecfd54602a643a309c2.gif?mw=700" alt="image" /></a></p> <h2 id="最後に"><a href="#%E6%9C%80%E5%BE%8C%E3%81%AB">最後に</a></h2> <p>InterpToMovementコンポーネントの公式ドキュメント的なものを紹介したかったけど・・・見つからなかった。<br /> なので、今回説明しきれなかった点もいつか説明したいな。</p> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/16185 2020-10-29T08:46:33+09:00 2020-10-29T08:46:33+09:00 https://crieit.net/posts/UE4-StaticMesh UE4でStaticMeshを編集してみる。 <h1 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h1> <ul> <li>Unreal Engine4(以下UE4)でStaticMeshを編集する方法があったので紹介。</li> <li>今回使ったバージョンはUE4.25.4</li> <li>BETA版のプラグインを有効化する必要があるのでこの記事の内容は<strong>自己責任</strong>で。</li> </ul> <h1 id="How to edit Static Mesh"><a href="#How+to+edit+Static+Mesh">How to edit Static Mesh</a></h1> <ol> <li>Polygon Editingプラグインを有効化</li> <li>編集したいStatic Meshを開いて編集する</li> </ol> <h2 id="Polygon Editingプラグインを有効化"><a href="#Polygon+Editing%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E6%9C%89%E5%8A%B9%E5%8C%96">Polygon Editingプラグインを有効化</a></h2> <ul> <li>設定→プラグインからPolygon Editingプラグインを探して有効化する。</li> <li>何度でも言うけど、BETA版のプラグインなので有効化の際は<strong>自己責任</strong>で!!<del>自分の環境だと特に問題は無いけど</del></li> <li>有効化後は忘れずに再起動してね。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99682cb5c74.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99682cb5c74.png?mw=700" alt="無題.png" /></a></li> </ul> <h2 id="Static Meshを開いて編集"><a href="#Static+Mesh%E3%82%92%E9%96%8B%E3%81%84%E3%81%A6%E7%B7%A8%E9%9B%86">Static Meshを開いて編集</a></h2> <p>操作方法は直感的なので、有効化したらあとは適当に触っているだけで覚えられそう。</p> <ul> <li>再起動後、編集したいStatic Meshを開く。 <ul> <li>今回は試しに無料アセット「FPS Weapon Bundle」のSM_KA74U_Xを編集してみる。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99f733de5b2.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99f733de5b2.png?mw=700" alt="無題.png" /></a></li> </ul></li> </ul> <hr /> <ul> <li>Polygon Editingプラグインを有効化すると、画面上部に「メッシュの編集」というタブが出現しているのでそれをクリック。</li> <li>タブが切り替わるので、左上の「編集モード」を押すことでメッシュの編集が開始できる。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99f86339412.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99f86339412.png?mw=700" alt="無題.png" /></a></li> </ul> <hr /> <h2 id="簡単な編集方法の説明"><a href="#%E7%B0%A1%E5%8D%98%E3%81%AA%E7%B7%A8%E9%9B%86%E6%96%B9%E6%B3%95%E3%81%AE%E8%AA%AC%E6%98%8E">簡単な編集方法の説明</a></h2> <p>使っていて分かった範囲のみ書いてみた。</p> <h3><strong>1. 編集対象の選択方法変更</strong></h3> <p>・画面左上「単一」と表示されている横の下矢印から変更できる。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fb0939ea1.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fb0939ea1.png?mw=700" alt="無題.png" /></a></p> <h3 id="2. 選択方法の違い"><a href="#2.+%E9%81%B8%E6%8A%9E%E6%96%B9%E6%B3%95%E3%81%AE%E9%81%95%E3%81%84">2. 選択方法の違い</a></h3> <p>SM_KA74U_Xの同じ場所(ストック)を選択して選択方法の差を調べてみた。<br /> **<br /> <strong>1. 単一 選択したトライアングルのみ選べる</strong><br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fc58a70f2.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fc58a70f2.png?mw=700" alt="無題.png" /></a><br /> <strong>2. マテリアル 選択したトライアングルと同じマテリアルを使っているトライアングルも合わせて選択される</strong><br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fca6b0483.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fca6b0483.png?mw=700" alt="無題.png" /></a><br /> ** 3. 要素 連続した1要素のみ選択される。**<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fda702987.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fda702987.png?mw=700" alt="無題.png" /></a><br /> <strong>4. スムージンググループ 要素との差がよくわからない(ごめん)</strong><br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fe4062da9.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f99fe4062da9.png?mw=700" alt="無題.png" /></a>**</p> <h3 id="3. 使用例"><a href="#3.+%E4%BD%BF%E7%94%A8%E4%BE%8B">3. 使用例</a></h3> <p>SM_KA74U_Xのストックを消してみる。</p> <p><strong>1. 選択方法を「要素」に、背面ボタンをクリックして有効化する。</strong></p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f9a00dd78ec2.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f9a00dd78ec2.png?mw=700" alt="無題.png" /></a></p> <p><strong>2.ストックをドラッグで囲むように選択する</strong><br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f9a014fa420e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f9a014fa420e.png?mw=700" alt="無題.png" /></a></p> <p><strong>3.Deleteキーを押して選択範囲を削除。</strong><br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f9a0214afd8b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f9a0214afd8b.png?mw=700" alt="無題.png" /></a></p> <h2 id="終わりに"><a href="#%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%AB">終わりに</a></h2> <p>簡単な編集ならUE4+このプラグインで完結しそう。銃のカスタムパターンの追加や、ちょっとしたメッシュの修正等使いみちが結構あるかもしれない。これからもUE4のプラグインを紹介できたらいいなー。</p> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/16039 2020-08-25T08:22:09+09:00 2020-08-25T08:22:09+09:00 https://crieit.net/posts/UnrealEngine-Niagara UnrealEngineのNiagaraで何かに当たったパーティクルを消す方法 <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <ul> <li>UnrealEngineのパーティクルエミッタ「Niagara」でパーティクルが何かに当たったパーティクルを消す方法を紹介</li> <li>自分なりのやり方なので、他に良い方法があるかも・・・</li> <li>Niagaraの基礎知識があることが前提</li> <li>表題以上のことは説明なし!</li> <li>バージョンはUE4.25.3</li> </ul> <h2 id="なぜ?"><a href="#%E3%81%AA%E3%81%9C%EF%BC%9F">なぜ?</a></h2> <p>雪や雨をNiagaraで作成した場合、屋根に当たっても消えず建物内でも表示されてしまう問題を改善したくて・・・。</p> <p>例: ものすごい貫通してる。<br /> <a href="https://crieit.now.sh/upload_images/88e9a4fd79ab0a54d31f1d74b04269ef5f42ff2e7f48f.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/88e9a4fd79ab0a54d31f1d74b04269ef5f42ff2e7f48f.gif?mw=700" alt="ダウンロード.gif" /></a></p> <h2 id="方法"><a href="#%E6%96%B9%E6%B3%95">方法</a></h2> <p>上記表題の処理を実装したい<strong>Collisionモジュール</strong>がある「Niagara Emitter」 or 「Niagara System」を開く。</p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f430ad99a8f4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f430ad99a8f4.png?mw=700" alt="無題.png" /></a></p> <p>「パーティクル更新」の右にある十字マークを押して、表示されるリストから「新規または既存のパラメータを直接設定」を選択する。</p> <blockquote> <p>検索欄に「Set」と入力すると見つけやすいかも。</p> </blockquote> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f4300337ea09.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f4300337ea09.png?mw=700" alt="無題.png" /></a></p> <hr /> <h3 id="パラメータ設定"><a href="#%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E8%A8%AD%E5%AE%9A">パラメータ設定</a></h3> <p>設定欄にある十字マークを押して、表示されるリストから「パーティクル Lifetime」を探す。</p> <blockquote> <p>パーティクルの表示時間を設定するパラメータ。</p> </blockquote> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f43019d9c977.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f43019d9c977.png?mw=700" alt="無題.png" /></a></p> <hr /> <p>追加されたパラメータ右にある「▽」を押して「<strong>Lerp Float</strong>」を追加。<br /> ~~~~<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f4302c325662.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f4302c325662.png?mw=700" alt="無題.png" /></a></p> <p>追加された欄のうち、Aの右にある「▽」を押して「<strong>Lifetime</strong>」を追加。Bは「0.0」のままでOK。</p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f4306697b6ff.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f4306697b6ff.png?mw=700" alt="無題.png" /></a></p> <blockquote> <p>「初期 Lifetime」の方じゃないよ!</p> </blockquote> <p>Alphaの右にある「▽」を押して「<strong>Make Custom Float from Bool</strong>」を追加。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f43091f1bf87.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f43091f1bf87.png?mw=700" alt="無題.png" /></a></p> <p>Alphaが追加されると「Bool」「True Float」「False Float」の3つの欄が増える。そのうち、「Bool」の右にある「▽」をおして「<strong>HasColllided</strong>」を追加。<br /> 残りの2つは画像と同じように設定。</p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f444b10b2c0e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f444b10b2c0e.png?mw=700" alt="無題.png" /></a></p> <blockquote> <p>HasCollidedはコリジョン判定が発生したときにTrueになる。</p> </blockquote> <p>これで設定終了。</p> <h2 id="結果"><a href="#%E7%B5%90%E6%9E%9C">結果</a></h2> <p>↓のように貫通しなくなる。やったね。<br /> <a href="https://crieit.now.sh/upload_images/770842e0863c0ebb994fde8bef377b845f430fc863357.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/770842e0863c0ebb994fde8bef377b845f430fc863357.gif?mw=700" alt="ダウンロード (1).gif" /></a></p> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/16023 2020-08-03T21:13:15+09:00 2020-08-03T21:13:15+09:00 https://crieit.net/posts/UE4-VolumetricCloud UE4のVolumetricCloudの始め方 <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <p>・UE4.25から追加されたVolumetric Cloudの始め方を書いてみる。<br /> ・この記事では「<strong>Volumetric Cloud</strong>」とは何かといった詳しい説明はないです。本当に始め方のみ。<br /> ・UE4.25.3で動作確認してます。</p> <p><a href="https://crieit.now.sh/upload_images/fb854303e8b9733f256ec816bad9a5c15f27f8574d5fa.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/fb854303e8b9733f256ec816bad9a5c15f27f8574d5fa.png?mw=700" alt="2.png" /></a></p> <h2 id="Volumetric Pluginを有効化"><a href="#Volumetric+Plugin%E3%82%92%E6%9C%89%E5%8A%B9%E5%8C%96">Volumetric Pluginを有効化</a></h2> <p>UE4.25.3現在、Volumetric Cloudを使うためにはVolumetric Pluginを有効化する必要がある。設定→プラグイン設定の中に「<strong>Volumetric</strong>」というプラグインがあるので、探して有効化する。検索欄に「<strong>Volumetric</strong>」と入力すると早いかも。</p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f27f7dbb6d3d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f27f7dbb6d3d.png?mw=700" alt="無題.png" /></a></p> <p>有効化すると再起動を要求される。今すぐ再起動を押して再起動を行う。</p> <h2 id="各種設定"><a href="#%E5%90%84%E7%A8%AE%E8%A8%AD%E5%AE%9A">各種設定</a></h2> <p>画面下部にある表示設定のうち、「<strong>エンジンのコンテンツ</strong>」と「<strong>プラグインのコンテンツ</strong>」にチェックを入れる。</p> <p><a href="https://crieit.now.sh/upload_images/ba955b12533bfde830ee47eeeaad13175f27f97119053.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ba955b12533bfde830ee47eeeaad13175f27f97119053.png?mw=700" alt="無題1.png" /></a></p> <p><strong>BP_Volumetric_Cloud_Layer</strong>を探して、ビューポート上にドラッグアンドドロップする。</p> <p><a href="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f27f9a97b915.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f27f9a97b915.png?mw=700" alt="無題2.png" /></a></p> <p>アウトライナ上から先程ドラッグアンドドロップした<strong>BP_Volumetric_Cloud_Layer</strong>を探して選択。</p> <p>詳細にある「<strong>Show Sky Dome</strong>」にチェックを入れる。</p> <p><a href="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f27fc9f2a849.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f27fc9f2a849.png?mw=700" alt="無題3.png" /></a></p> <p>他のSkySphere系のブループリントアクタがある場合、被って表示されないことがあるので削除or非表示にする。</p> <p>ここまでの設定を終えると、ようやくVolumetric Cloudが画面上に表示される。但しこのままだと非常に重いので、以下のように設定することを推奨。</p> <hr /> <p>Basic Option以下にある設定項目を次の用に変更する。</p> <p>・<strong>Cloud Scale km</strong>を<strong>190</strong>に設定。<br /> ・<strong>Cloud Bias</strong>を<strong>0.1</strong>に設定。<br /> ・<strong>Cloud Density</strong>を<strong>1.3</strong>に設定。<br /> ・<strong>Cloud Altitude Km</strong>を<strong>8.0</strong>に設定。<br /> ・<strong>Cloud Layer Thickness</strong> Km** 9.0**に設定。</p> <p><a href="https://crieit.now.sh/upload_images/fe7bda269309e870e4edfef327c3cf2b5f27fdce8cc15.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/fe7bda269309e870e4edfef327c3cf2b5f27fdce8cc15.png?mw=700" alt="無題5.png" /></a></p> <p>上記設定をすることで、ある程度フレームレートが改善されるはず・・・。</p> <h2 id="追記"><a href="#%E8%BF%BD%E8%A8%98">追記</a></h2> <p>近いうち、各値がどのような効果があるかを解説した記事を書くかも。</p> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/16017 2020-07-27T08:04:48+09:00 2020-07-27T08:04:48+09:00 https://crieit.net/posts/UE4-Postprocess-NVG UE4のPostprocessで簡単なNVGを作ってみる。 <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <p>・UnrealEngine4でNVGを作ってみる<br /> ・NVG的表示のために<strong>ポストプロセス</strong>を使用<br /> ・この記事では作り方の手順を忘備録的に書いておく<br /> ・エンジンのバージョンはUE4.25.2<br /> ・今回はThirdPersonテンプレートを作成題材に利用</p> <h2 id="完成図"><a href="#%E5%AE%8C%E6%88%90%E5%9B%B3">完成図</a></h2> <p>この記事に書いてある設定を行うと、以下のような表示ができる。</p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f1e021bd6504.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f1e021bd6504.png?mw=700" alt="無題.png" /></a></p> <h2 id="作成方法"><a href="#%E4%BD%9C%E6%88%90%E6%96%B9%E6%B3%95">作成方法</a></h2> <h3 id="ポストプロセスを追加"><a href="#%E3%83%9D%E3%82%B9%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%92%E8%BF%BD%E5%8A%A0">ポストプロセスを追加</a></h3> <p>ポストプロセスをThirdPersonCharacterのFollowCamera下に追加する。</p> <p><a href="https://crieit.now.sh/upload_images/faee167f0cd686c41cf01adc52b9aa705f1e05bc54cf0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/faee167f0cd686c41cf01adc52b9aa705f1e05bc54cf0.png?mw=700" alt="1無題.png" /></a></p> <hr /> <h3 id="ポストプロセスの設定"><a href="#%E3%83%9D%E3%82%B9%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AE%E8%A8%AD%E5%AE%9A">ポストプロセスの設定</a></h3> <p>NVGに見えるよう、追加したポストプロセスの設定を変更していく。</p> <hr /> <p>Lens→Bloomにある<strong>強度</strong>にチェックを入れて値に<strong>2.0</strong>を入力する。</p> <p><a href="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f1e064daa902.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f1e064daa902.png?mw=700" alt="無題2.png" /></a></p> <hr /> <p>Lens→Exposuerにある<strong>露出補正</strong>にチェックを入れて値に<strong>6.0</strong>を入力する。</p> <p><a href="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f1e077b268b2.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f1e077b268b2.png?mw=700" alt="無題3.png" /></a></p> <hr /> <p>Lens→ImageEffectsにある<strong>ビネット効果強度</strong>と<strong>グレイン強度</strong>にチェックを入れて各値に<strong>1.0</strong>と<strong>0.5</strong>を入力する。<br /> <a href="https://crieit.now.sh/upload_images/599ad29874e48cf5a997d50ccecf1f595f1e085150465.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/599ad29874e48cf5a997d50ccecf1f595f1e085150465.png?mw=700" alt="4無題.png" /></a></p> <blockquote> <p>この2つはノイズっぽい演出のために使用。見づらければ無くしてもOK。個人的にはノイズありの方が雰囲気があって好き。</p> </blockquote> <hr /> <p>ColorGrading→WhiteBalanceにある<strong>温度</strong>にチェックを入れて値に<strong>5000</strong>を入力する。<br /> <a href="https://crieit.now.sh/upload_images/fe7bda269309e870e4edfef327c3cf2b5f1e090f8d1cb.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/fe7bda269309e870e4edfef327c3cf2b5f1e090f8d1cb.png?mw=700" alt="無題5.png" /></a></p> <hr /> <p>ColorGrading→Miscにある<strong>シーンカラーの着色</strong>にチェックを入れて<strong>緑色</strong>を選択する。<br /> <a href="https://crieit.now.sh/upload_images/fe7bda269309e870e4edfef327c3cf2b5f1e0a288929d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/fe7bda269309e870e4edfef327c3cf2b5f1e0a288929d.png?mw=700" alt="無題5.png" /></a></p> <p>これで設定終了。</p> <h2 id="終わりに"><a href="#%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%AB">終わりに</a></h2> <p>ここまでの内容だとNVGのつけ外しができないのが欠点。そのうちそのやり方も紹介したいな。</p> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/16016 2020-07-22T09:28:21+09:00 2020-07-22T09:28:21+09:00 https://crieit.net/posts/UE4 UE4でグローバルクリップ平面プロジェクトを有効にする <h2 id="きっかけ"><a href="#%E3%81%8D%E3%81%A3%E3%81%8B%E3%81%91">きっかけ</a></h2> <p>あるサンプルプロジェクトを開いたときに<strong>「平面反射が正常に動作するためにはグローバルクリップ平面プロジェクトの有効な設定が必要です。」</strong>と表示された。</p> <p>このメッセージを消すためにはどうしたら良いか調べたのでまとめてみる。</p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f177e2adc212.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f177e2adc212.png?mw=700" alt="無題.png" /></a></p> <p><strong>※エンジンのバージョンはUE4.25.1です。</strong></p> <h2 id="設定前"><a href="#%E8%A8%AD%E5%AE%9A%E5%89%8D">設定前</a></h2> <p>まずはサンプル内で平面反射が使われている所を確認する。</p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f1780137254e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f1780137254e.png?mw=700" alt="無題.png" /></a></p> <p>風呂場にある鏡だけど真っ暗・・・</p> <h2 id="設定してみる"><a href="#%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B">設定してみる</a></h2> <p>プロジェクト設定→レンダリング→ライティング内にある<strong>「平面反射のグローバルクリッププレーンをサポート」</strong>にチェックを入れる。</p> <blockquote> <p>日本語のドキュメントを見ると、プロジェクト設定→レンダリング→最適化に「平面反射のグローバルクリッププレーンをサポート」があるとの記載がある。でもUE4.25.1だと場所が変わってるみたい。</p> </blockquote> <p><a href="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f178173b33e0.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f178173b33e0.png?mw=700" alt="無題2.png" /></a></p> <p>※チェックを入れると再起動を要求される。更に再起動後はシェーダーのコンパイルが行われる。時間があるときにどうぞ。</p> <h2 id="設定後"><a href="#%E8%A8%AD%E5%AE%9A%E5%BE%8C">設定後</a></h2> <p>先程の鏡を確認してみる。</p> <p><a href="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f1786743dc27.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f1786743dc27.png?mw=700" alt="無題3.png" /></a></p> <p>メッセージも消えて正常に表示されている。これで終わり!</p> <h2 id="その他"><a href="#%E3%81%9D%E3%81%AE%E4%BB%96">その他</a></h2> <ul> <li>平面反射の英語表現は「Planar Reflection」</li> <li>グローバルクリップ平面とグローバルクリッププレーンのように翻訳揺れがあるので注意</li> </ul> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/16012 2020-07-20T08:46:46+09:00 2020-07-20T08:46:46+09:00 https://crieit.net/posts/UE4-VR UE4のVRゲーム開発前に行う最適化手法をまとめてみる。 <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <ul> <li>UnrealEngine4でVRゲーム開発前に行う最適化手法をまとめる</li> <li>設定後の注意事項も合わせて書いてみる</li> <li>VRゴーグルに依存する設定は説明しない</li> <li>バージョンはUE4.25.1</li> </ul> <h2 id="設定項目一覧"><a href="#%E8%A8%AD%E5%AE%9A%E9%A0%85%E7%9B%AE%E4%B8%80%E8%A6%A7">設定項目一覧</a></h2> <ol> <li>フォワードシェーディング</li> <li>MSAA (Multisample Anti-Aliasing)</li> <li>Instanced Stereo Rendering</li> </ol> <hr /> <h3 id="フォワードシェーディング"><a href="#%E3%83%95%E3%82%A9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0">フォワードシェーディング</a></h3> <p>プロジェクト設定→レンダリング→フォワードレンダラ内にある<strong>フォワードシェーディング</strong>にチェックを入れる。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f14d5a193fec.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f14d5a193fec.png?mw=700" alt="無題.png" /></a></p> <hr /> <h3 id="MSAA (Multisample Anti-Aliasing)"><a href="#MSAA+%28Multisample+Anti-Aliasing%29">MSAA (Multisample Anti-Aliasing)</a></h3> <p>プロジェクト設定→レンダリング→Default Settings→アンチエイリアス手法のドロップダウンリストから<strong>MSAA</strong>を選択。</p> <blockquote> <p>デフォルトで使われるTemporalAnti-Aliasingに比べて見た目が劣るものの、フレームレートに影響が出にくいらしい。</p> </blockquote> <p><a href="https://crieit.now.sh/upload_images/ba955b12533bfde830ee47eeeaad13175f14d6b75f034.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ba955b12533bfde830ee47eeeaad13175f14d6b75f034.png?mw=700" alt="無題1.png" /></a></p> <hr /> <h3 id="Instanced Stereo Rendering"><a href="#Instanced+Stereo+Rendering">Instanced Stereo Rendering</a></h3> <p>プロジェクト設定→レンダリング→VR内にある<strong>インスタンス化ステレオ</strong>にチェックを入れる。</p> <blockquote> <p>UE4.25.1においてVRテンプレートを使用した場合、デフォルトでチェックが入っていた。</p> </blockquote> <p><a href="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f14da50611e4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f14da50611e4.png?mw=700" alt="無題2.png" /></a></p> <h2 id="フォワードシェーディング設定後の注意事項"><a href="#%E3%83%95%E3%82%A9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%B7%E3%82%A7%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E8%A8%AD%E5%AE%9A%E5%BE%8C%E3%81%AE%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A0%85">フォワードシェーディング設定後の注意事項</a></h2> <p>フォワードシェーディングにチェックを入れると以下の機能が使えなくなる。</p> <ul> <li>SSR、SSAO、Contact Shadows</li> <li>モーションブラーやD-Bufferデカールに対してMSAAを適用</li> <li>GBufferを使ったマテリアル</li> <li>Atmospheric Fog</li> </ul> <h2 id="最後に"><a href="#%E6%9C%80%E5%BE%8C%E3%81%AB">最後に</a></h2> <p>後から設定するのは面倒なので作り始める前に設定しておきたいね。</p> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/16005 2020-07-14T20:25:21+09:00 2020-07-14T20:28:39+09:00 https://crieit.net/posts/Niagara Niagaraで作ったパーティクルの色をブループリントで変える <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <p>・Niagaraで作ったパーティクルの色をブループリントで変えてみた。<br /> ・その方法を忘備録としてまとめる。<br /> ・UE4のバージョンは<strong>UE4.25.1</strong><br /> ・Niagaraの基礎知識についてはスルー。<br /> ・今回はNiagaraSystemとBlueprint側の設定が必要!</p> <h2 id="今回の素材"><a href="#%E4%BB%8A%E5%9B%9E%E3%81%AE%E7%B4%A0%E6%9D%90">今回の素材</a></h2> <p>今回、説明するに当たって個人的に作った花火のパーティクルを使った。現状は白色しか表示されない。<br /> <a href="https://crieit.now.sh/upload_images/88e9a4fd79ab0a54d31f1d74b04269ef5f0cf0b359122.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/88e9a4fd79ab0a54d31f1d74b04269ef5f0cf0b359122.gif?mw=700" alt="ダウンロード.gif" /></a></p> <h2 id="今回の作業のまとめ"><a href="#%E4%BB%8A%E5%9B%9E%E3%81%AE%E4%BD%9C%E6%A5%AD%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81">今回の作業のまとめ</a></h2> <ol> <li>Niagaraで新しいユーザーパラメータを作成</li> <li>作成したパラメータをブループリントで変えたいところにセット</li> <li>ブループリント側で色を変える</li> </ol> <h2 id="Niagara側の設定"><a href="#Niagara%E5%81%B4%E3%81%AE%E8%A8%AD%E5%AE%9A">Niagara側の設定</a></h2> <p><strong>NiagaraSystem</strong>を開く。</p> <blockquote> <p>NiagaraEmitterじゃないよ!</p> </blockquote> <h3 id="Niagaraで新しいユーザーパラメータを作成"><a href="#Niagara%E3%81%A7%E6%96%B0%E3%81%97%E3%81%84%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%82%92%E4%BD%9C%E6%88%90">Niagaraで新しいユーザーパラメータを作成</a></h3> <p>システム設定を探して+のボタンをクリック、LinerColorという新規パラメータを作成。Colorで検索すると見つけやすい。<br /> <a href="https://crieit.now.sh/upload_images/ba955b12533bfde830ee47eeeaad13175f0cf40710737.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ba955b12533bfde830ee47eeeaad13175f0cf40710737.png?mw=700" alt="無題1.png" /></a></p> <p>作成したパラメータに分かりやすい名前をつける。今回は爆発時の色を変えるので<strong>BurstColor</strong>と名付けた。<br /> <a href="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f0cf4cd84271.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f0cf4cd84271.png?mw=700" alt="無題2.png" /></a></p> <h3 id="作成したパラメータをブループリントで変えたいところにセット"><a href="#%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%82%92%E3%83%96%E3%83%AB%E3%83%BC%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%E3%81%A7%E5%A4%89%E3%81%88%E3%81%9F%E3%81%84%E3%81%A8%E3%81%93%E3%82%8D%E3%81%AB%E3%82%BB%E3%83%83%E3%83%88">作成したパラメータをブループリントで変えたいところにセット</a></h3> <p>今回は爆発時の色を設定しているパラメータとして使いたいので、当該箇所の値を編集。先程作成したユーザーパラメータを探してセットする。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f0d8ef50f809.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f0d8ef50f809.png?mw=700" alt="無題.png" /></a><br /> これでNiagara側の設定は終了。</p> <h2 id="ブループリント側の設定"><a href="#%E3%83%96%E3%83%AB%E3%83%BC%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88%E5%81%B4%E3%81%AE%E8%A8%AD%E5%AE%9A">ブループリント側の設定</a></h2> <p>※ブループリント側を全部説明すると冗長なので、Niagaraに関わるところだけ説明。</p> <p>NiagaraSystemのSetColorParameterを使って、作成したユーザーパラメータに色を設定する。<br /> この時、ParameterNameに先ほど作成したユーザーパラメータの名前に<strong>User.</strong>をつけて入力する。今回の場合「BurstColor」という名前で作成したので、User.BurstColorと入力。</p> <blockquote> <p>大文字、小文字、ドット抜け等があると正しく設定されないので注意</p> </blockquote> <p>あとはParamに好きな色を入れる。ここでは赤色を選択。<br /> <a href="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f0d93e87a82d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f0d93e87a82d.png?mw=700" alt="無題3.png" /></a></p> <p>これで終わり!</p> <h2 id="見てみる"><a href="#%E8%A6%8B%E3%81%A6%E3%81%BF%E3%82%8B">見てみる</a></h2> <p>ここまでの設定で赤色の花火が上がるようになった。(複数個上がっちゃているのは撮影時のミス・・・)<br /> <a href="https://crieit.now.sh/upload_images/88e9a4fd79ab0a54d31f1d74b04269ef5f0d958c69a2e.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/88e9a4fd79ab0a54d31f1d74b04269ef5f0d958c69a2e.gif?mw=700" alt="ダウンロード.gif" /></a></p> <h2 id="終わりに"><a href="#%E7%B5%82%E3%82%8F%E3%82%8A%E3%81%AB">終わりに</a></h2> <p>そのうち花火の作り方をまとめます。</p> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/16004 2020-07-13T09:21:27+09:00 2020-07-13T09:26:31+09:00 https://crieit.net/posts/UnrealEngine4-Niagara UnrealEngine4のNiagaraで作ったパーティクルにコリジョンを持たせる <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <p>・環境はUE4.25<br /> ・ものすごく短い記事です。<br /> ・言いたいことは後半。<br /> ・<del>CollisionQueryなんてモジュールは現存しない</del></p> <h2 id="なぜ地面に残したい?"><a href="#%E3%81%AA%E3%81%9C%E5%9C%B0%E9%9D%A2%E3%81%AB%E6%AE%8B%E3%81%97%E3%81%9F%E3%81%84%EF%BC%9F">なぜ地面に残したい?</a></h2> <p>・元々雪のようなパーティクルを作ってた。<br /> ・雪が地面に当たって溶ける表現を作りたかった。</p> <h2 id="How 2 残し方"><a href="#How+2+%E6%AE%8B%E3%81%97%E6%96%B9">How 2 残し方</a></h2> <p>・エミッターのパーティクル更新にCollisionを追加。</p> <p><a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f0b976f87524.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f0b976f87524.png?mw=700" alt="無題.png" /></a></p> <p>・Collision内のBounceにあるRestitutionの値を-1.0に設定する。</p> <blockquote> <p>0だとわずかにバウンドしてしまう。ピタリと止めるには-1.0ぐらいが適切みたい。</p> </blockquote> <p>設定すると↓のように地面に張り付くような形で止まる。<a href="https://crieit.now.sh/upload_images/88e9a4fd79ab0a54d31f1d74b04269ef5f0b9b124919f.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/88e9a4fd79ab0a54d31f1d74b04269ef5f0b9b124919f.gif?mw=700" alt="ダウンロード.gif" /></a></p> <h2 id="CollisionQueryは古い"><a href="#CollisionQuery%E3%81%AF%E5%8F%A4%E3%81%84">CollisionQueryは古い</a></h2> <p>ここまでの処理を作ろうと色々調べたら、CollisionQueryというモジュールが出てきた。実はこれUE4.23までのNiagaraで使っていたモジュール。UE4.25では存在しない。</p> <p>検索してもこの通りヒットしない。<br /> <a href="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f0b9d218c5b4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f0b9d218c5b4.png?mw=700" alt="無題3.png" /></a><br /> <del>CollisionQueryが見つからないと小一時間悩んだ</del></p> <p>ということで、UE4.25のNiagaraでパーティクルのコリジョン関連の設定が必要なときはCollisionモジュールを使おう!</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>エンジンのバージョンが上がると、存在してたモジュールが無くなったり、名前が変わることがあるので自分が使っているバージョンの情報を調べることって大切だなって思った。</p> <p>同じことで他の人が苦労しないことを願ってる・・・。</p> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/16002 2020-07-12T10:18:00+09:00 2020-07-12T20:19:56+09:00 https://crieit.net/posts/UnrealEngine4 UnrealEngine4で作る煙パーティクル <h1 id="UnrealEngine4で作る煙パーティクル"><a href="#UnrealEngine4%E3%81%A7%E4%BD%9C%E3%82%8B%E7%85%99%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%AF%E3%83%AB">UnrealEngine4で作る煙パーティクル</a></h1> <h2 id="はじめに"><a href="#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB">はじめに</a></h2> <ul> <li>UE4初心者がパーティクル入門としての煙パーティクルを作ってみた。</li> <li>自分の忘備録として作り方をまとめる。</li> <li>Niagaraの基礎知識があることが前提の記事。</li> <li>作り方を纏めただけなので、解説等はほぼ無し。</li> </ul> <h2 id="環境"><a href="#%E7%92%B0%E5%A2%83">環境</a></h2> <ul> <li>バージョンはUE4.25</li> <li>パーティクルシステムはNiagaraを使用</li> </ul> <h2 id="1.ナイアガラエミッタ作成"><a href="#1.%E3%83%8A%E3%82%A4%E3%82%A2%E3%82%AC%E3%83%A9%E3%82%A8%E3%83%9F%E3%83%83%E3%82%BF%E4%BD%9C%E6%88%90">1.ナイアガラエミッタ作成</a></h2> <p>コンテンツブラウザ上で右クリック、FX→ナイアガラエミッタを選択。<br /> <a href="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f0a5ea3470d6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ed664b24a8869e781ed026b8e6932a055f0a5ea3470d6.png?mw=700" alt="無題.png" /></a><br /> テンプレートに基づくエミッタを選択。</p> <hr /> <p><a href="https://crieit.now.sh/upload_images/ba955b12533bfde830ee47eeeaad13175f0a5e733da8b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ba955b12533bfde830ee47eeeaad13175f0a5e733da8b.png?mw=700" alt="無題1.png" /></a><br /> テンプレートの中からFountainを選択すると新たなエミッタが作成される。<br /> 追記:Fountainは連続で出現するパーティクルを作るのに適したテンプレート。</p> <hr /> <p>わかりやすい、適切な名前を設定。(今回はSmoke_Emitterと命名した。)</p> <blockquote> <p>ナイアガラエミッタには〇〇_Emitterのような命名規則が一般的みたい。</p> </blockquote> <p><a href="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f0a5e8046f77.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/138aeb65009797688aec7562503723825f0a5e8046f77.png?mw=700" alt="無題2.png" /></a></p> <h2 id="2.ナイアガラエミッタの設定"><a href="#2.%E3%83%8A%E3%82%A4%E3%82%A2%E3%82%AC%E3%83%A9%E3%82%A8%E3%83%9F%E3%83%83%E3%82%BF%E3%81%AE%E8%A8%AD%E5%AE%9A">2.ナイアガラエミッタの設定</a></h2> <p>作成したエミッタをダブルクリックで開いて、各種設定を変更していく。</p> <hr /> <h3 id="1.SpriteRenderの設定変更"><a href="#1.SpriteRender%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4">1.SpriteRenderの設定変更</a></h3> <p>レンダリング以下にあるSpriteRenderを選択。マテリアルにM_smoke_subUVを設定。subUVのX、Yに8.0を入力。</p> <blockquote> <p>M_smoke_subUVはスターターコンテンツに入ってる。つまり誰でも使える。</p> </blockquote> <p><a href="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f0a600ce6c00.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2900063f72de1be6e1d10b9c4b78043a5f0a600ce6c00.png?mw=700" alt="無題3.png" /></a></p> <hr /> <h3 id="2.パーティクル更新の設定変更"><a href="#2.%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%AF%E3%83%AB%E6%9B%B4%E6%96%B0%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4">2.パーティクル更新の設定変更</a></h3> <p>DragとGravityForceのチェックを外す。これで出現するパーティクルが下に落ちなくなる。</p> <p><a href="https://crieit.now.sh/upload_images/5466382e7d66b4219fa04867490d1d335f0a602562c8b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5466382e7d66b4219fa04867490d1d335f0a602562c8b.png?mw=700" alt="無題4.png" /></a></p> <hr /> <h3 id="3.パーティクルのスポーンの設定変更"><a href="#3.%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%AF%E3%83%AB%E3%81%AE%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%B3%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4">3.パーティクルのスポーンの設定変更</a></h3> <p>SphereLocationのチェックを外す。</p> <p>InitializeParticleの設定を画像の用に変更する。煙のサイズが大きくなり、自然に見える。<br /> <a href="https://crieit.now.sh/upload_images/cdf27f6ab25a8918eac067d30a32a8395f0a60a8a327f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/cdf27f6ab25a8918eac067d30a32a8395f0a60a8a327f.png?mw=700" alt="無題7.png" /></a></p> <p>Add Verocity in Cornの設定を画像の用に変更する。これで上に向かうにつれ、広がって見えるようになる。<br /> <a href="https://crieit.now.sh/upload_images/ee75860cabd087cff20ad7a21e7561c35f0a60f15fa5c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/ee75860cabd087cff20ad7a21e7561c35f0a60f15fa5c.png?mw=700" alt="無題8.png" /></a></p> <p>これでEmitterの設定終了。</p> <hr /> <h2 id="ナイアガラシステムの作成。"><a href="#%E3%83%8A%E3%82%A4%E3%82%A2%E3%82%AC%E3%83%A9%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E4%BD%9C%E6%88%90%E3%80%82">ナイアガラシステムの作成。</a></h2> <p>ここまで作ったエミッタを元にナイアガラシステムを作成する。</p> <blockquote> <p>エミッタはゲーム内に配置できない。</p> </blockquote> <p>作成したエミッタを右クリック。ナイアガラシステムを作成を選択するだけで作成可能。<br /> <a href="https://crieit.now.sh/upload_images/3eeb00f6fa24263fd55bfe60cb3894575f0a604fce43e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3eeb00f6fa24263fd55bfe60cb3894575f0a604fce43e.png?mw=700" alt="無題6.png" /></a></p> <p>ゲーム内に配置すると以下の用に見えるはず。今回はこれで終わり!<br /> <a href="https://crieit.now.sh/upload_images/770842e0863c0ebb994fde8bef377b845f0a623bd3763.gif" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/770842e0863c0ebb994fde8bef377b845f0a623bd3763.gif?mw=700" alt="ダウンロード (1).gif" /></a></p> <h2 id="次のステップ"><a href="#%E6%AC%A1%E3%81%AE%E3%82%B9%E3%83%86%E3%83%83%E3%83%97">次のステップ</a></h2> <p>この煙の改良案を考えてみる。<br /> * 広い範囲を覆うように発生させる<br /> * 横に流れるようにはっせさせる。<br /> * 煙の色を変えてみる</p> <p>等々・・・</p> <h2 id="最後に"><a href="#%E6%9C%80%E5%BE%8C%E3%81%AB">最後に</a></h2> <p>これからもパーティクルを勉強して、作り方を纏めたいね。</p> くろれきし@UE4でVRゲ作中 tag:crieit.net,2005:PublicArticle/15938 2020-06-10T08:58:14+09:00 2020-06-10T08:59:25+09:00 https://crieit.net/posts/Unreal-Engine-5ee0221605a10 Unreal Engineで実行中にテクスチャを更新するサンプル <p>Unreal Engineで実行時にテクスチャの色を変更できたら便利かなと思って試したもの。できたはできたが思ったようにうまくはいかなかった。ためしに白色を他の色に変えようと思ったのだが、ムラができてしまった。元の画像がそうなのか、UEに取り込まれてミップマップ化された時にそうなったのかはわからない。検証するかもしれないししないかもしれないのでとりあえずメモだけ。</p> <pre><code class="cpp"> UPrimitiveComponent* Primitive = Cast<UPrimitiveComponent>(GetComponentByClass(UPrimitiveComponent::StaticClass())); UMaterialInstanceDynamic* Material = Primitive->CreateAndSetMaterialInstanceDynamicFromMaterial( 0, Cast<UMaterial>(StaticLoadObject(UMaterial::StaticClass(), nullptr, TEXT("/Game/Materials/MyMaterial"))) ); UTexture2D* Texture = Cast<UTexture2D>(StaticLoadObject( UTexture2D::StaticClass(), nullptr, TEXT("/Game/Model/train/Textures/MyTexture") )); Texture->CompressionSettings = TextureCompressionSettings::TC_VectorDisplacementmap; Texture->MipGenSettings = TextureMipGenSettings::TMGS_NoMipmaps; Texture->SRGB = false; Texture->UpdateResource(); struct RGBA { uint8 R, G, B, A; }; RGBA* Data = (RGBA*)Texture->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE); int DataSize = Texture->PlatformData->Mips[0].SizeX * Texture->PlatformData->Mips[0].SizeY; for (int Index = 0; Index < DataSize; Index++) { RGBA* Color = Data + Index * sizeof(RGBA); // UE_LOG(LogTemp, Log, TEXT("RGBA %d %d %d"), Color->R, Color->G, Color->B); if (Color->R > 200 && Color->G > 200 && Color->B > 200) { Color->G = 0; } } Texture->PlatformData->Mips[0].BulkData.Unlock(); Texture->UpdateResource(); Material->SetTextureParameterValue(TEXT("BaseColor Map"), Texture); </code></pre> <p>このActorを画面上に配置してモデルのコンポーネントを追加して動かす。しかしそれにしても失敗するとすぐエディタが落ちる……。</p> <p>詳しく調べてないけどそのマテリアル自体が変わってしまって同時に複数の色にはできない場合、そうしたい人は別のやり方が必要なのかもしれない。</p> <p>下記を参考にした。</p> <p><a target="_blank" rel="nofollow noopener" href="https://usagi.hatenablog.jp/entry/2017/07/26/115603">UE4/C++: メッシュのマテリアルやテクスチャーをC++コードで制御する方法 - C++ ときどき ごはん、わりとてぃーぶれいく☆</a></p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/15921 2020-06-05T22:12:19+09:00 2020-06-05T22:12:19+09:00 https://crieit.net/posts/Unreal-Engine-5eda44b3abbb2 Unreal Engineで画面のサイズとタップ座標を取得する <p>Unreal EngineでC++を使って画面のサイズを取得する方法。</p> <pre><code class="cpp">#include "Kismet/GameplayStatics.h" void AMyPawn::GetTest() { AMyPlayerController* PlayerController = Cast<AMyPlayerController>( UGameplayStatics::GetPlayerController(GetWorld(), 0) ); float x, y; PlayerController->GetMousePosition(x, y); int width, height; PlayerController->GetViewportSize(width, height); } </code></pre> <p>他にも解像度取得もあったりしてそっちの機能はサイズが異なる(やり方はメモってなかったので忘れてしまった)。今回はちゃんとゲーム画面のサイズが欲しかったのでGetViewportSizeを使った。</p> <p>正しいのかどうかよく分かってない&まだちょっと実機では試してないのでとりあえずメモ。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/15919 2020-06-04T20:05:30+09:00 2020-06-04T20:05:30+09:00 https://crieit.net/posts/Unreal-Engine Unreal Engineでテクスチャのアルファ値を反映させる <p>Unreal Engineでアルファ値のあるテクスチャを使用したマテリアルを作成してワールドに配置してみたところ、どうもうまくいかず有効にならない。pngファイルの透過部分が黒くなってしまう。</p> <p>調べてみても全体を半透明にする方法とかばかりが出てきてなかなか出てこない。色々試してみたところ、下記のようにマテリアルを設定したところうまく行った。</p> <p><a href="https://crieit.now.sh/upload_images/6e2af66c610d88bc766649f72032893a5ed8d44111b7a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6e2af66c610d88bc766649f72032893a5ed8d44111b7a.png?mw=700" alt="" /></a></p> <p>結局はアルファ値をオパシティに渡せばうまく透過できた。RGBとRGBAで分かれているからてっきりRGBAを渡しておけばいい感じにしてくれるんだろうと思っていたが違ったっぽい。違いがよくわからないが多分ブレンド方法が違う場合などに使われるのかもしれない。</p> <p>念の為書いておくと、Blend ModeもOpaqueからTranslucentに変更しておく。</p> <p><a href="https://crieit.now.sh/upload_images/6e2af66c610d88bc766649f72032893a5ed8d5208f83d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/6e2af66c610d88bc766649f72032893a5ed8d5208f83d.png?mw=700" alt="" /></a></p> <p>詳しくないのでほんとにこれがスマートなやり方なのかは不明。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14258 2017-05-11T07:04:15+09:00 2017-05-11T07:04:15+09:00 https://crieit.net/posts/Linux-Mint-18-Unreal-Engine Linux Mint 18でUnreal Engine <p>Linux Mint 18にUnreal Engineをインストールして起動するところまでやってみた。</p> <p>基本的には公式の情報に沿ってビルドだが色々わかりにくいところもあるので補足しつつ。</p> <p><a target="_blank" rel="nofollow noopener" href="https://wiki.unrealengine.com/Building_On_Linux">Building On Linux - Epic Wiki</a></p> <h3 id="ソースの取得"><a href="#%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E5%8F%96%E5%BE%97">ソースの取得</a></h3> <p>wikiをみると、まずgithubからソースをcloneするところから始まる。<br /> しかし、githubを見ても該当のリポジトリが無い。</p> <p>これは無いのではなく、github上にてEpic Gamesのメンバーにならなければアクセスする権限がない。<br /> 下記のようにしてメンバーになる必要がある。</p> <ul> <li>Githubのアカウントがない人はまずGithubに登録。</li> <li>Unreal Engineのアカウントがない人はまず登録。(ダウンロードページから登録できる)</li> <li>Unreal Engineのサイトでログインし、自分の情報の編集画面に行くとGithubのIDを設定するところがあるのでそこに設定。<br /> これでEpic GamesのアカウントとGithubのアカウントが関連付けられる。<br /> これで確かメールが送られてくるのでその中のボタンを押せばメンバーになりリポジトリが閲覧できた気がする。</li> </ul> <p>あとはとりあえずcloneしておく。だいぶ時間がかかる。</p> <h3 id="ビルド前の事前準備"><a href="#%E3%83%93%E3%83%AB%E3%83%89%E5%89%8D%E3%81%AE%E4%BA%8B%E5%89%8D%E6%BA%96%E5%82%99">ビルド前の事前準備</a></h3> <p>clone後、まずは説明ページの下の方にディストリビューション毎の事前準備の説明があるのでそちらを確認。<br /> たとえば「Setting up on Linux Mint」のような項目がある。</p> <p>Linux Mintの場合、色々とaptでインストールとシンボリックリンクの作成。<br /> Setup.shだかGenerateProjectFiles.shを行うと勝手に色々インストールしようとするので多分省略しても良いと思う。<br /> 自分の場合clang-3.9をインストールしようとして失敗していた。<br /> 多分ディストリビューションのバージョンを見て入れるバージョンを変えているのかもしれない。</p> <p>自分の場合は</p> <p><a target="_blank" rel="nofollow noopener" href="http://apt.llvm.org/"></a></p> <p>のYakketyで設定してインストールした。<br /> /etc/apt/sources.listに追記し、apt-get updateしてインストール。</p> <h3 id="ビルド"><a href="#%E3%83%93%E3%83%AB%E3%83%89">ビルド</a></h3> <p>あとは書かれているとおりにビルドまで進める。ビルドはすごく時間がかかるし多少容量も使うので注意。</p> <h3 id="起動"><a href="#%E8%B5%B7%E5%8B%95">起動</a></h3> <p>説明通りに起動すると、エラーで停止。<br /> エラーを見るとスプラッシュの画像が読み込めないと出ているので、<br /> 実行ファイルのところにcdしてから起動したらそのエラーは消えた。</p> <p>あとはどうも<br /> Could not create OpenGL 4.3 context<br /> のようなエラーが出ているので調べてみたら、OpenGL3指定で起動すればいいということが書かれていたので</p> <pre><code>./UE4Editor -opengl3 </code></pre> <p>としてみたところめでたく起動した。</p> <p>サンプルがあったのでそれで新規プロジェクトを作成し、エディタ上でプレイ出来たところ。<br /> <a href="https://crieit.now.sh/upload_images/4cd710df5904fa5bbb5a91259d5d08aa5b0d188458cc7.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4cd710df5904fa5bbb5a91259d5d08aa5b0d188458cc7.png?mw=700" alt="" /></a></p> <p>しかし重い…初回だからだろうか。</p> <p>あとVisual Studioは無いのでちゃんとC++が動くのか不明。</p> だら@Crieit開発者