無料でアバター作成、老夫婦 作ってみた。

皆さん、こんにちは。

無料でアバター作成、今回は、老夫婦をやって見ます。

当たり前に皆、歳をとりますが、素敵な画像が残ると良いですね!そんな自分自身の願いも含めて、作って行きたいと思います。
二人で、穏やかな海に散歩にやって来た感じをイメージしてみました。

使用サイト

写真素材なら「写真AC」無料(フリー)ダウンロードOK
無料写真素材を提供する「写真AC」のフリー写真素材は、個人、商用を問わず無料でお使いいただけます。クレジット表記やリンクは一切不要です。Web、DTP、動画などの写真素材としてお使いください。
作者タイトル検索ワード検索場所
モデルacworksさん ヨットに乗る老夫婦老夫婦写真AC
背景sabiさん滝瀬海岸13 海岸写真AC

男性モデルさんが、帽子とメガネをお使いでしたので、今回は、此方を利用してみました。

では、お顔を作ってみます。

5738
5740
5743
5744
57501
5751
57521
5753
5754
5756
5757
5758
5760
previous arrow
next arrow

今回は、参考写真が白いキャップで明るいイメージでした。私のアバターも何とか、そんな感じにしたかったのですが、黒と言う色は、カラーピッカーでの変化では、中々色を変える事が出来ず、ヘアーテクスチャーを使って、色替えをしています。まくら堂さんの利用規約を見ますと、改変はOKになっていますので、作業は、問題無い様です。

では、進めて見ます。普通ですと、実際に被って見て(アバターに付けてみて^^)白にしようかなとなりますが、手順のご案内ですので、先にテクスチャーをPhotoPeaで作ってみます

因みに、帽子が髪型の延長で作られていますので、この方法が出来ましたが、型紙を使っている衣装などではできません。

作者タイトル検索ワード検索場所
ikaflyさん白い布白い布イラストAC
テクスチャーに利用させて頂いた素材です。

真っ白なテクスチャーでも良いのですが、少し質感が出た感じで作りたかったので、イラストACさんの画像を使いました。

最初に何でも良いので、髪のテクスチャを開きます。同じ大きさを新規で作っても大丈夫です。開いたテクスチャーの上に先程ダウンロードして来た白い布の画像を載せました。

大きさを合わせて、レイヤーを結合したら、①上段のファイルから、②別名で保存、③PNG(JPGでも大丈夫です)、④分かり易い名前を付けて、⑤保存を選択しますと、画像がダウンロードされます。

今度は、VRoidstudioを開きます。

①右上の開くから、エクスプローラーが出ますので、②帽子の.vroid形式ファイルを選択して、③開きます。

黒いハットが開きましたら、①上段の髪型、②左のはね毛、③右の髪型を編集と進みます。

画面が切り替わりますので、④大きく面積を占めている帽子全体をクリックすると、対応するツバの色が変わりました。小さなをクリックすると、別窓が開いて、⑥テクスチャーを編集が出ますのでクリックすると、更に画面が切り替わります。

レイヤー横の小さなをクリックして、レイヤー1を作ります。作ったレイヤー1で右クリック、別窓が出ますので、③インポート、エクスプローラーが出ますので、④先程作ったテクスチャーを選択して、⑤開きます。

まだ、残っている部分が有りますが、その場所をクリックすると、黄色の線で囲われますので、同じ作業をして全体を白くしました。

この作業は、一つの方法としてご案内しましたが、最適解では無い事も有りますので、参考でご覧いただけますと幸いです。

アクセサリーは、メガネを使いました。

無料が嬉しい、シンプルなメガネです^^。

①上段のアクセサリーから、②左のアクセサリーを追加、別窓が出ますので、③厚みありかなしを選びます。私には、正直、あまり違いが分からなかったです><。

④選んだメガネで、⑤右のテクスチャーを編集をクリックしますと画面が切り替わりますので、⑥レイヤー横の小さなをクリックして、レイヤー1を作ります。⑦作ったレイヤーを右クリック、別窓が出ますので、⑧インポートして、⑨ダウンロードしたファイルを選択して、⑩開きます。

右のフレーム形状で、色々変化が出来るので、やってみるとよいです。フレーム形状9はメガネ全体のフレームを細くしてくれます。

ガッツリメガネ!と言う感じで無く、さりげなく使いたい時に、使うとお洒落だと思います。

ご婦人の方は、シンプルなワイシャツを利用しました。

衣装やアイテムは、型紙や仕様が有って、それに沿わないと上手く行かない事が有ります。

シンプルシャツですから、右のロングコート(シャツ襟)でも良い感じがしますが、指定はロングコート(ハイネック)です。型紙を見ると、首元の所に少し違いが有ります。ですから、着けてみると、アバターの首元に、黒い影が出来てしまいます。

少々面倒に思う事も有りますが、使用説明書は、最初に軽く読んでおくとストレスが少ない気がします^^。

次は、ポーズを付けて、背景と合わせて行きます。

次は、先程の老夫婦にポーズを付けて、背景を合わせて行きます。

ポージングデスクトップにシーン保存(二人のポーズを保存出来る)機能が付きましたので、合わせてご案内します。

それでは、ポージングデスクトップで、大まかなポーズを付けてみます。

ポージングデスクトップ公式

VRM Posing Desktop on Steam
Accelerate the creation of 3D models! This is a highly functional posing tool for Vtubers, 3D modelers, and illustrators...

①上段のポーズ選択から、別窓が出ますので、②みんなのポーズを選択します。検索窓でかがむと入力してみました。1件ありました!これで、二人に適用します。

一旦適用で使いますと、2回目以降は、インストールの項目に有りますので、そこをクリックして、適用でポーズの変更が出来ます。

二人にかがむのポーズを付けてみました。此処からは、地味な作業ですが、①上段のポーズ編集から、少しづつ、自分の希望する形に変えて行きます。今回は、2人のアバターを呼び出していますので、上段

にアイコンが出ています。赤枠が出ているのが、現在作業中のアバターです。

手順は、ご自分に合った形で良いと思いますが、2人のポーズは、バランスなども有りますので、1人ポーズよりも、手間が掛かる気がします><。そこで、今回のシーンの保存です。

光の向き、表情などは保存が出来ませんが、二人の位置関係も記録されています。只、次回に呼び出す場合、ロードしたキャラクターに保存された時の二人がいない場合、最初から設定されているキャラクターで代用されるようです。

ですから、シーン保存(2人以上を保存する)時は、VRMファイルから開いてポーズを付けた方が良いと思います。

このロードしたキャラクターは、アプリを閉じても保存されていて、次回に立ち上げた際に同じ状態になります。

ですから、ポーズ付けが完全で無い時も一旦保存して置けば、そこから始める事が出来ます。

VRMファイルから、アバターを開いて来る為には、VRoidstudioで、アバターを保存する際に設定する必要が有ります。

VRoidstudioでアバターが出来ましたら、①を選択して、②VRMエクスポートを選択します。別窓が開きますので、必須になっている2か所に好きな名前を入力して、③エクスポートを選択します。(名前を入力しないとエクスポートできません><

エクスプローラーが出ますので、④お好きな名前を入力して、⑤保存します。

画像にも有ります様に、エクスポート上では、サムネイル表示では無いので、後でどんなアバターで保存したのか分かる方が便利だと思います。

今度は、呼び出してみます。

①上段のから、②シーン、エクスプローラーが出ますので、保存してあったファイルを開きます。

保存した時のアバターがロードしたキャラクターに居ると、ぴたっとはまりますが、例えば、現在作業中のアバターが保存した時のアバターと違う場合で、保存キャラクターが残っていると入れ替わってしまします。二人ポーズは少し面倒なので、良い機能では有るのですが、いくつか覚えておかないといけない事が有りそうです。

保存内容

  • 既存のキャラクター及び呼び出したVRMファイルキャラクターのポーズ(保存時のキャラクターの向き・大きさ・位置)
  • ワールドライトは保存される様に表記が有るが、保存されない(なぜかポイントライトは保存されている)
  • 表情は保存されない

ですから、ポーズが付いたら、ライト・表情等の調整前に保存して置いた方が良いと思います。

苦労して着けたポーズを保存をせずに出力して終わってしまうと残念です。

大体、ポーズが付いたら、保存して光の向きと表情・出力をやって見ます。

⑤以外は、どれが先になっても大丈夫ですが、②は出ているアバター全部を先に済ませておくと、ワールドライト連動が全てのキャラクターに適用されます。

①上段の表情をクリックすると別窓が出ますので、お好みに合わせて調整します。マークをクリックするとワンタッチでOKですし、Proxy・Blendshapeとより細かい設定が出来ます。Blendshapeの時、をクリックするとお気に入りに登録されます。ご覧の通り、データー表示ですので、余り沢山で無い方が分かり易いかもです^^。

②MToonは、出ているアバター其々に調整します。最初は、初期位置になっていますので、大きく動かしてみて、良い所で決めて下さい。

②を先に決定しいると、③は両方のキャラクターに適用されます。

背景画像が決定している時、④から呼び出す事が出来ます。大きさも調整出来るので、出来上がりイメージの確認に使えると思います。

最後に、出力します。背景画像を使った場合で、出力画像には背景が必要無い場合は、背景透過にを入れて下さい。

最後に、PhotoPeaで背景に合わせます。このままでも、良い感じでは有るのですが、今回は、背景をぼかしてポートレート風にしてみます^^。

PhotoPeaで背景画像を開いたら、①矩形ツールで②全体の3/2ぐらいを囲います。選択した範囲をふわっとぼかす様に、③上段の選択、④編集、⑤フェザーと進みます。⑥で数字を入力(数字が大きい程、沢山フワッとした範囲になります)、今度は、背景画像をぼかします。

⑦上段のフィルターから、⑧ぼかし、⑨ガウスぼかし、⑩数字を入力して、OKです。

選択範囲は見えないので、結果で判断しますが、画像のぼかしは、数字を入力すると画像も変化するので、見ながらお好みに合わせて下さい。最後に、アバターを載せて、位置を決めたら完成です^^。

お疲れ様でした。

最後までお読み頂き有難うございました。

皆さんのアバター作りの一助になれば幸いです。

コメント

");const o=ie?ie.createHTML(e):e;if(nt===tt)try{t=(new W).parseFromString(o,at)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(nt,"template",null);try{t.documentElement.innerHTML=ot?ae:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),nt===tt?ue.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:i},bt=function(e){return ce.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},St=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Rt=function(e){return"function"==typeof b&&e instanceof b},wt=function(e,t,n){pe[e]&&u(pe[e],(e=>{e.call(o,t,n,ut)}))},Ct=function(e){let t=null;if(wt("beforeSanitizeElements",e,null),St(e))return _t(e),!0;const n=st(e.nodeName);if(wt("uponSanitizeElement",e,{tagName:n,allowedTags:Ne}),e.hasChildNodes()&&!Rt(e.firstElementChild)&&_(/<[/\w]/g,e.innerHTML)&&_(/<[/\w]/g,e.textContent))return _t(e),!0;if(e.nodeType===J)return _t(e),!0;if(Me&&e.nodeType===Q&&_(/<[/\w]/g,e.data))return _t(e),!0;if(!Ne[n]||Ce[n]){if(!Ce[n]&&Dt(n)){if(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n))return!1;if(we.tagNameCheck instanceof Function&&we.tagNameCheck(n))return!1}if(Ye&&!qe[n]){const t=re(e)||e.parentNode,n=oe(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=X(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,$(e))}}}return _t(e),!0}return e instanceof R&&!Et(e)?(_t(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!_(/<\/no(script|embed|frames)/i,e.innerHTML)?(ke&&e.nodeType===Z&&(t=e.textContent,u([fe,de,he],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),wt("afterSanitizeElements",e,null),!1):(_t(e),!0)},Lt=function(e,t,n){if(Be&&("id"===t||"name"===t)&&(n in r||n in mt))return!1;if(ve&&!Le[t]&&_(ge,t));else if(De&&_(Te,t));else if(!Se[t]||Le[t]){if(!(Dt(e)&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,e)||we.tagNameCheck instanceof Function&&we.tagNameCheck(e))&&(we.attributeNameCheck instanceof RegExp&&_(we.attributeNameCheck,t)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(t))||"is"===t&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n)||we.tagNameCheck instanceof Function&&we.tagNameCheck(n))))return!1}else if(Ze[t]);else if(_(Ae,g(n,Ee,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!Ke[e]){if(Oe&&!_(ye,g(n,Ee,"")));else if(n)return!1}return!0},Dt=function(e){return"annotation-xml"!==e&&h(e,_e)},vt=function(e){wt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=st(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,wt("uponSanitizeAttribute",e,n),p=n.attrValue,n.forceKeepAttr)continue;if(At(a,e),!n.keepAttr)continue;if(!xe&&_(/\/>/i,p)){At(a,e);continue}if(Me&&_(/((--!?|])>)|<\/(style|title)/i,p)){At(a,e);continue}ke&&u([fe,de,he],(e=>{p=g(p,e," ")}));const f=st(e.nodeName);if(Lt(f,s,p)){if(!We||"id"!==s&&"name"!==s||(At(a,e),p=Ge+p),ie&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ie.createHTML(p);break;case"TrustedScriptURL":p=ie.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),St(e)?_t(e):m(o.removed)}catch(e){}}}wt("afterSanitizeAttributes",e,null)},Ot=function e(t){let n=null;const o=bt(t);for(wt("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)wt("uponSanitizeShadowNode",n,null),Ct(n)||(n.content instanceof s&&e(n.content),vt(n));wt("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(ot=!e,ot&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Rt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Ue||ft(t),o.removed=[],"string"==typeof e&&(je=!1),je){if(e.nodeName){const t=st(e.nodeName);if(!Ne[t]||Ce[t])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Nt("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===V&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Fe&&!ke&&!Ie&&-1===e.indexOf("<"))return ie&&ze?ie.createHTML(e):e;if(n=Nt(e),!n)return Fe?null:ze?ae:""}n&&Pe&&_t(n.firstChild);const c=bt(je?e:n);for(;i=c.nextNode();)Ct(i)||(i.content instanceof s&&Ot(i.content),vt(i));if(je)return e;if(Fe){if(He)for(l=se.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Se.shadowroot||Se.shadowrootmode)&&(l=me.call(a,l,!0)),l}let m=Ie?n.outerHTML:n.innerHTML;return Ie&&Ne["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&_(q,n.ownerDocument.doctype.name)&&(m="\n"+m),ke&&u([fe,de,he],(e=>{m=g(m,e," ")})),ie&&ze?ie.createHTML(m):m},o.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ft(e),Ue=!0},o.clearConfig=function(){ut=null,Ue=!1},o.isValidAttribute=function(e,t,n){ut||ft({});const o=st(e),r=st(t);return Lt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(pe[e]=pe[e]||[],p(pe[e],t))},o.removeHook=function(e){if(pe[e])return m(pe[e])},o.removeHooks=function(e){pe[e]&&(pe[e]=[])},o.removeAllHooks=function(){pe={}},o}();return oe}))
タイトルとURLをコピーしました