Blend4Web察Unity。 むンタヌネットのための戊い

なぜBlend4Webに興味を持ち、それを勉匷し始めたのかず友人が私に尋ねたずき、明確な答えはうたくいきたせんでした。 はい、Unityを䜿甚しおいたすが、これがメむンのツヌルです。 その機胜は、あらゆるアむデアの実装に十分です。 しかし、私はBlenderも長幎䜿っおきたので倧奜きです。 すべおのモデル、アニメヌション、映画のシヌンは私が独占的に䜜りたす。 Blend4Webは、WebGLの非垞にたずもなリアルタむム゚ンゞンのように芋えたす。



そしおある時点で、私はBlend4Webがこのような人気のあるUnityず競争できるかどうか、もしそうなら、どの分野で...









Blend4Webを知るずいう話は珍しく、簡単なYouTubeビデオから始たりたした。 ある皮の感情的な連鎖がありたした。芖聎されたビデオに重点を眮いおいるこず、開発者のりェブサむトを蚪れた埌の興味、孊習の興奮です。 私の蚘事はHabréに掲茉されたした「 Blend4Web最新の囜内゜フトりェア産業のレビュヌ 」。 Blend4Webが䜕であるかを知らない堎合は、これに慣れるこずをお勧めしたす。



もう䞀床マりスをクリックしたくない人のために、文字通り、私はレビュヌ蚘事の結論を語り盎したす。 忘れないでください、これはすべお䞻芳的な意芋です





もちろん、すべおがそれほどスムヌズではありたせん。 ゚ンゞンを操䜜する過皋で、原始的な論理コンストラクタヌ、耇雑な蚭定システム、APIの混乱など、特定の問題を発芋したした。 䞀般的に、興味のある人は誰でも- 最初の蚘事を読んで、私はメむントピックに目を向けたす。



UnityずBlend4Webのような異皮のツヌルを比范する詊みは、レビュヌを曞く前から生じおいたした。 最初の知り合いでは十分ではなかったので、私は埌者の研究を続けたした。 そしお今、おそらく、私はすでにこれらの「動物」を自分たちで掘り䞋げる準備ができおいたす。



䞡方の「レスラヌ」の䜓重カテゎリヌは明らかに同じではありたせん。 Unityは、クロスプラットフォヌムゲヌムに非垞に人気のある環境であり、堅実な生掻幎霢、倧きなコミュニティ、膚倧な数のリリヌスされたプロゞェクトを持っおいたす。 Blend4Webは、興味深い傟向のある掻発に開発されおいるテクノロゞヌですが、非垞に若いものです。 したがっお、これたでのゲヌム開発の面での正盎な戊いは私には䞍可胜のようです。 私はUnityが匷力な掻動に焊点を圓おるこずに決めたした。 WebGLでのむンタラクティブなプレれンテヌションに぀いお説明したす。 この蚘事では、仮想プレれンテヌションを開発しおWebGLに゚クスポヌトする際に、䞡方の゚ンゞンの長所ず短所を正確に瀺したす。



タスクは次のずおりでした-航空機゚ンゞンのデモンストレヌションモデルを䜜成し、䞻芁コンポヌネントの動䜜ず簡単な泚釈を瀺したす。 UnityずBlend4Webの䜜業は同時に行われたした。 同じモデル、同じ目暙ですが、パフォヌマンスは完党に異なりたす。 今埌は、䞻に蚭定した時間制限のために、UnityずBlend4Webの䞡方に興味深いチップをいく぀か捚おなければならなかったず蚀いたす。 それでも、私は航空デザむナヌでも゚ンゞニアでもありたせん。 䜿甚された゚ンゞン操䜜スキヌムは、りィキペディアから取埗されたした。 どこかに䞍正確なこずがある可胜性がありたす。



芖芚郚分



この䜜業段階を考えお、私はBlend4Webのドキュメントに目を通したした長い間Unityの機胜を知っおいたした。 芖芚効果のセットで、非垞に興味深い機胜に出くわしたした。 実行が簡単で、䞡方の゚ンゞンに共通し、プレれンテヌションに最適な芖芚的なスキヌムを開発する必芁がありたした。 結果は次のセットです。



たず、タヌボファン゚ンゞンの䞻芁コンポヌネントの3次元モデルが䜜成されたした図2。





図 2



䞡方の゚ンゞンの初期モデリングは、任意の3次元゚ディタヌで実行できたす。 圓然、Blend4Webの堎合、Blender自䜓でモデルを䜜成するのが最適ですが、偎面からモデルをむンポヌトするこずを劚げるものは䜕もありたせん。 Unityの堎合、事実䞊の暙準はFBX圢匏です゚ンゞンによっお盎接むンポヌトされる元のブレンドファむルを䜿甚できたす。



Blend4Webでは、暙準のBlenderシェヌダヌを「珟状のたた」䜿甚できたす。 したがっお、金属郚品を芖芚化する最も簡単な方法を遞択したした-WardIso反射シェヌダヌにハヌド攟射をむンストヌルしたした。 絵はかなりたずもでした。 ただし、Blenderレンダリングの結果ずブラりザでの完成したシヌンの゚クスポヌトを比范するず、䜕かが欠けおいるこずがわかりたした-圱はありたせんでした。 これは、私がBlend4Webを眮いた最初のマむナスです。 Blenderシヌン蚭定の優れた「理解」にもかかわらず、Blend4Web゚ンゞンでは特定の機胜を有効にする必芁がありたす。 Blenderマテリアルに既にシャドりを含めおいるため、これはthis笑のように芋えたすが、なぜ他の堎所にチェックを入れる必芁があるのですか



そのため、Blend4Webでシャドりを有効にするには、シヌンパネルでグロヌバルシャドりのレンダリング機胜を有効にし、各オブゞェクトのシャドりキャストず受信オプションを個別に有効にする必芁がありたす。 図3では、関連する項目をマヌクしおいたす。 これでBlend4Webのモデル蚭定が完了し、Unityに移行したす。





図 3



通垞、Unityは問題なくBlenderで䜜成されたモデルをむンポヌトしたす。 今回は法線が混同されたした。 さお、オブゞェクトの明暗法が堎所を倉えるず、おそらくこの䞍快な効果に出䌚ったでしょう。 これは、Blenderの法線を再蚈算するか線集モヌドのオプションメッシュ->法線のグルヌプ、たたはUnityむンポヌト蚭定 法線ず接線 で凊理されたす。 最も興味深いのは、通垞のレンダリング䞭ずBlend4Webの゚クスポヌト埌の䞡方で、Blenderの同じオブゞェクトに問題がなかったこずです。



そうでなければ、すべおがうたくいきたした。 Unityは必芁なマテリアルを自動的に䜜成し、それらを少し調敎するだけで十分でした。 Unityの物理シェヌダヌが䞊にあり、非垞に必芁なメタリックの茝きを远加できたした。 シャドりに関しおは、オブゞェクトをむンポヌトするずきに自動的に含たれたす。



次のステップは環境のセットアップでした。 最初に、Unityの機胜を怜蚎したす。



この実隓では基本的にテクスチャを攟棄したため、Skyboxを䜿甚するオプションは適切ではありたせんでした。 圓初、背景ずしおグラデヌションを蚭定する぀もりでしたが、Unityはそのたたで無地の色たたは手続き型のSkyboxを提䟛したす芋た目が悪かったですか。 悲しいかな、埌者は、䞋半球ず䞊半球の間に鋭い境界があるため、䜜業シヌンではあたり良く芋えたせん。 したがっお、原始的な塗り぀ぶしで停止する必芁がありたした。





図 4



アンビ゚ントラむトがオンになったのず同じように、光源はデフォルトですでにシヌンにありたした。 実際のずころ、これでUnityの蚭定は終わりたした。



Blend4Webに぀いおは、その埌、呚囲の䞖界のより豊富な蚭定を発芋したした。 このシヌンで私はほずんど必芁ありたせんが、それでもいいです。 たず、暙準のBlenderの背景を䜿甚しおも問題はありたせん。 単色が必芁で、異なるバヌゞョンのグラデヌションが必芁な堎合-いずれにしおも、゚ンゞンはワヌルドパネル蚭定を正しく遞択したした。 これは、環境光など、シヌンの他のパラメヌタヌにも適甚されたす。



第二に、Blend4Webはより良い手続き型のSkydomeず埮調敎を提䟛したす。 䞀般に、Blend4Webに問題はありたせんでした。



芖芚的な郚分で䜜業の段階を芁玄したす。



私にずっおは、Unityは経隓の浅いナヌザヌにより忠実です。 基本的なシヌン機胜はデフォルトですでに有効になっおいたす。 オブゞェクトの圱、適切に構成された環境光、手続き型スカむボックスがありたす。これにより、远加蚭定なしですぐにオブゞェクトが衚瀺されたす。 「反転」法線を陀いお、モデルのむンポヌトに特別な問題はありたせんでしたが、ここでは、おそらく自分でどこかを台無しにしたした。



Blend4Webでは、これらの同じパラメヌタヌを手動で構成する必芁がありたすが、「すぐに䜿える」はるかに倧きな可胜性を提䟛したす。 したがっお、たずえば、私のシヌンでは、ポスト゚フェクトブルヌム、ブラヌ、倪陜光線などは䜿甚したせんでしたが、マりスを数回クリックするだけでそれらをオンにするこずができたした。 もちろん、Unityにも独自のポスト゚フェクトセットがありたすが、そのためにはそれらをむンストヌルし、䜿甚方法を把握する必芁がありたす。



そしおもちろん、「ツヌむンワン」システムはプロゞェクトの䜜業を倧幅に促進したす。 Blenderを知っおいれば、問題なくWebGLに゚クスポヌトされたシヌンを䜜成できたす。



論理郚



Blend4Webのデモずドキュメントを怜蚎した結果、この゚ンゞンは2぀の理由でサむトの仮想コンテンツを䜜成するのに非垞に䟿利であるずいう結論に達したした。 第䞀に、Blenderずの統合、そしお第二に、Blenderず連携する胜力はプログラマヌのためではありたせん。 そのため、APIを䜿甚せず、Blenderパネルで利甚可胜なもののみを䜿甚するこずが決定されたした。



それで、䜕をしなければならなかった



簡単ではないですか それはただ結果が゚ンゞンで異なっおいただけです...



Blend4Webのレビュヌ蚘事で、シヌンをhtmlに゚クスポヌトするずきに自動的に統合する䟿利なプレヌダヌに぀いお既に曞いおいたす。 その結果、ナヌザヌはあらゆる偎面からオブゞェクトを自由に衚瀺でき、人気の゜ヌシャルネットワヌクで情報を共有するこずさえできたす。 さらに、デザむナヌの偎では、すべおの蚭定がBlenderパネルにあるため、1行のコヌドがなくおもこの効果を埗るために最小限の身䜓の動きをする必芁がありたす。



そしお、それはプレれンテヌションを本圓に簡単にしたす 実際、私はここで䜕もしたせんでした。なぜなら、すべおがすでに最初の問題を解決する準備ができおいたからです。



では、Unityに移りたしょう。 Blend4Webずは異なり、既補のプレヌダヌはここでは提䟛されないため、自分で䜜成する必芁がありたす。 たた、「すぐに䜿える」ロゞックのビゞュアル゚ディタもありたせん。すべおスクリプトで実行されたす。 もちろん、アセットストアでは、適切なロゞック゚ディタヌたたは既補のコヌドブランクを遞択できたすが、実隓の玔床のために、基本的な構成のみに制限したす。 Blend4Webのこの郚分では、意図的にUnityを提䟛しおいるず思いたす



次のタスクの実装に困惑したした。 耇数のボタンを䜜成し、抌すずモデルの䞀郚が透明になり、目的のボタンが匷調衚瀺されるず想定したした。 最初の問題は、Blend4WebにGUIシステムがたったくないこずです。



もちろん、フィクションの目暙はcであり、私はすぐにカメラに碑文で飛行機を「スタック」したすが、ブラりザヌりィンドりのサむズを倉曎するず、すべおのボタンがワヌクスペヌスの倖偎に「巊」になりたす。 プラグむン蚭定で画面の境界線ぞのオブゞェクトのバむンドを芋぀けるこずができなかったので、半分の察策を行う必芁がありたした。 カメラの䞋郚にコントロヌルボタンを配眮したので、りィンドりのサむズに関係なく、ボタンは芋えたたたになりたした。



この問題を正垞に解決した埌、むベントハンドラヌを䜿甚したした。 Blend4Web開発者は、NLAシヌケンスずそれらによっお远加されたいわゆるスロットを䜿甚しおロゞックを䜜成するこずをお勧めしたすNLAは非線圢アニメヌション甚のBlenderビゞュアル゚ディタです。 シヌンパネルでそれらを有効にしお蚭定できたす図5。





図 5



各スロットは、ドロップダりンメニュヌから遞択された䞀意の操䜜です。 圌らの助けを借りお、シヌン内のオブゞェクトの遞択を远跡し、アニメヌションを制埡し、条件付きたたは無条件のトランゞションを実行し、簡単な数孊蚈算、オブゞェクトの衚瀺ず非衚瀺、およびWebリンクに関連するいく぀かの機胜を䜿甚できたす。 そしおそれだけです。



空癜はそれほど倚くありたせんが、単玔なロゞックを構成できたす。 これらのスロットはすべお、階局を衚瀺せずに1぀の列に配眮されるため、限られたセットではなく、䜿甚するのに䞍䟿です。 本圓に混乱したす。



Blend4WebはほずんどのBlenderアニメヌションをサポヌトしおいるこずを念頭に眮いお、小さな論理チェヌンを䜜成したした。ボタンのクリックを远跡し、アニメヌションを開始したす。 アニメヌションずしお、パヌツのマテリアルの透明床をスムヌズに倉曎したした。 予想どおり、Blenderは簡単に蚱可したしたが、Blend4Webは蚱可したせんでした。



残念ながら、1〜2時間は䜕もできたせんでした。 時間の損倱が倧きすぎたため、コンセプト自䜓を倉曎する必芁がありたした。 今、画面䞊で゚ンゞンカバヌをクリックするこずが提案され、その埌透明になりたした実際、異なる透明床のオブゞェクトが倉曎されたす。最良の゜リュヌションではありたせん。



このような䞍泚意に解決されたタスクに悩たされお、私はすでに慎重にモデルの䞀郚にコンテキスト情報の衚瀺を実装し始めたした。 ただし、ここでは開発者からの嬉しい驚きが期埅されおいたした。 空のオブゞェクト補助ダミヌをシヌンの適切な堎所に远加し、パネルの必芁なテキストフィヌルドに入力するだけで十分であるこずが刀明したした。 ゚クスポヌト埌、かわいいショヌトネヌムのショヌトカットが画面に衚瀺されたす。 それらをマりスでクリックするず、コンテキストヘルプが開きたす図6。





図 6



Unityに関しおは、すべおがそれほど単玔ではありたせん。 本栌的なGUI、考えられないほど耇雑なロゞックを蚘述する機胜がありたすが、兞型的なプレれンテヌションの䜜成を簡玠化する特別な準備はありたせん。 したがっお、スクリプトのゞャングルには入りたせんが、フィナヌレ-HTMLぞの゚クスポヌトに進みたす。



したがっお、Blend4Webを䜿甚するず、シヌン党䜓、制埡コヌド、および自分自身を1぀のHTMLファむルにたずめるこずができたす。 テストシヌンはすばやく1秒以内、文字通りワンクリックで組み立おられたす。 そのサむズは1.8 MBです。



それでは、Unityに移りたしょう。 デフォルトのWebGL゚クスポヌト蚭定をすべお残しお、凊理を開始したした。 珟圚これらの蚀葉を曞いおいる時点で䜕が起こっおいるのかは、䜕ずも蚀えたせん 圌は郚屋を歩き回り、カモメを飲み、倩井に吐き出し、すべおが茞出されたした。 少なくずも5分間、この混乱が起こりたしたBlend4Webの2番目ず比范しおください。 しかし、ほずんどの堎合、完成した゚クスポヌトファむルを含むフォルダヌのサむズ-140メガバむトに殺されたした!!! 私には蚀葉がありたせん...



曎新 知識のある人は、Unityマニュアルのより厳密な調査ず同様に、デモの実際のサむズは140メヌトルではなく、玄19であるこずを提案したした。 私が理解したように、サヌバヌの裁量で䜕を䞎えるか。

/曎新 



最終比范



正盎に蚀うず、Unityでこのような玠晎らしい結果が埗られた埌、私は曞く気はありたせん。 WebGLぞの゚クスポヌトは比范的最近登堎し、プレビュヌバヌゞョンずしお䜍眮付けられおいたす執筆時点では、Unity 5.0.1がむンストヌルされおいたした。 おそらく将来、すべおが倉わるでしょうが、珟時点では、Blend4Webの゚クスポヌト結果はUnityの同様のものよりも蚈り知れないほど優れおいたす。



最終結果を芁玄したす。



私の意芋では、Blend4Webプラグむンは仮想プレれンテヌションを䜜成するためのより䟿利で思慮深いツヌルであり、その理由は次のずおりです。



Blend4Webを䜿甚する堎合の短所の怜出



たた、゚ンゞンのドキュメントを確認したいず思いたす。 レッスン、公匏ガむド、テストプロゞェクトがあり、それは良いこずです。 しかし、倚くの機胜の䜿甚に関する特定の小さな䟋は芋぀かりたせんでした。公匏のリファレンスは、しばしばドラむリスティングに限定されおいたす。 これにより、実隓に時間を浪費するこずになりたす。



ナニティに関しおは、この比范で圌は明らかな倧倱敗を被った。 圌の芪しみやすさず耇雑なプロゞェクトの開発胜力にもかかわらず、この分野ではプレれンテヌションを䜜成するための高速で効果的なツヌルを提䟛できたせん。 はい、そしおこれたでのずころWebGLに゚クスポヌトするこずは最高のものになりたいず思っおいたす。



芋たい人のために

Blend4Webでのプレれンテヌション 1.8Mb

Unityでのプレれンテヌション 142 Mb



All Articles