<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Unity3d on 静静的安全笔记</title><link>https://ruajingjing.top/tags/unity3d/</link><description>Recent content in Unity3d on 静静的安全笔记</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Fri, 10 Apr 2020 18:41:24 +0000</lastBuildDate><atom:link href="https://ruajingjing.top/tags/unity3d/index.xml" rel="self" type="application/rss+xml"/><item><title>【硬核零氪】氪不起暖暖，买不起衣服给女儿穿了怎么办？自己做一个</title><link>https://ruajingjing.top/post/%E7%A1%AC%E6%A0%B8%E9%9B%B6%E6%B0%AA-%E6%B0%AA%E4%B8%8D%E8%B5%B7%E6%9A%96%E6%9A%96-%E4%B9%B0%E4%B8%8D%E8%B5%B7%E8%A1%A3%E6%9C%8D%E7%BB%99%E5%A5%B3%E5%84%BF%E7%A9%BF%E4%BA%86%E6%80%8E%E4%B9%88%E5%8A%9E-%E8%87%AA%E5%B7%B1%E5%81%9A%E4%B8%80%E4%B8%AA/</link><pubDate>Fri, 10 Apr 2020 18:41:24 +0000</pubDate><guid>https://ruajingjing.top/post/%E7%A1%AC%E6%A0%B8%E9%9B%B6%E6%B0%AA-%E6%B0%AA%E4%B8%8D%E8%B5%B7%E6%9A%96%E6%9A%96-%E4%B9%B0%E4%B8%8D%E8%B5%B7%E8%A1%A3%E6%9C%8D%E7%BB%99%E5%A5%B3%E5%84%BF%E7%A9%BF%E4%BA%86%E6%80%8E%E4%B9%88%E5%8A%9E-%E8%87%AA%E5%B7%B1%E5%81%9A%E4%B8%80%E4%B8%AA/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post 【硬核零氪】氪不起暖暖，买不起衣服给女儿穿了怎么办？自己做一个" /&gt;&lt;p&gt;憋在家里很无聊，我突然想把之前卸载的《闪耀暖暖》装回来玩玩，想到闪耀暖暖刚开玩的时候我在知乎上的已回答。想了想，女鹅是真漂亮，然而我的钱包是真的穷。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410185128.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410185128.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410185246.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410185246.png"&gt;&lt;/p&gt;
&lt;p&gt;所以，我又重新拾起自己给女鹅做衣服的想法，之前一些技术帖已经披露出暖暖是用Unity3D做的，之前我就猜如此高质量质感的衣服应该是用了专业的服装设计软件——Marvelous。果然，去年年底的&lt;a class="link" href="https://www.bilibili.com/video/BV1hJ411W7Yd/" target="_blank" rel="noopener"
 &gt;Unity专场技术分享会&lt;/a&gt;上叠纸游戏美术总监柳丛就说用的是Marvelous(视频28:31，柳总说的是Marperles，大概是口误？)&lt;/p&gt;
&lt;p&gt;Unity3D和Marverlous恰好我都会用，那么，咱们就开始给女鹅做衣服吧。&lt;/p&gt;
&lt;h2 id="nikiki模型导入"&gt;Nikiki模型导入
&lt;/h2&gt;&lt;p&gt;关于暖暖模型从哪里来，怎么提取，我只能说暖暖无处不在，只要你手机里有暖暖，理论上你可以把女鹅的身体和全套衣服都扒下来，参考教程 &lt;a class="link" href="https://zhuanlan.zhihu.com/p/78462825" target="_blank" rel="noopener"
 &gt;[LAB]闪耀暖暖拆包记&lt;/a&gt;，如果你懒得自己动手某宝上8块钱（最终还是氪了8块钱？）。破解拆包的暖暖是&lt;code&gt;fbx&lt;/code&gt;格式的，某宝则也提供&lt;code&gt;.max&lt;/code&gt;格式还有各种材质贴图。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410195353.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410195353.png"&gt;&lt;/p&gt;
&lt;p&gt;我自己破解技术不到家，弄出来的暖暖缺胳膊少腿，脸还好像烧伤一块似的。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410195533.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410195533.png"&gt;&lt;/p&gt;
&lt;p&gt;最后还是用某宝卖家的模型了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410195633.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410195633.png"&gt;&lt;/p&gt;
&lt;p&gt;加上头发和眼镜，为了避免穿模，特地选用短发发型。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410200136.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410200136.png"&gt;&lt;/p&gt;
&lt;p&gt;然后设置相机位置，调整到合适角度，这里参考柳总给的25度。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410190330.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410190330.png"&gt;&lt;/p&gt;
&lt;p&gt;导入两个插件，&lt;a class="link" href="https://github.com/monitor1394/ExportSceneToObj/releases/download/v1.0.0/ExportSceneToObj-1.0.0.unitypackage" target="_blank" rel="noopener"
 &gt;ExportSceneToObj&lt;/a&gt; 和 &lt;a class="link" href="https://github.com/KellanHiggins/UnityFBXExporter/releases/download/1.2.0/UnityFBXExporter1_2_0.unitypackage" target="_blank" rel="noopener"
 &gt;UnityFBXExporter&lt;/a&gt;，在Unity中调整好发型和身体，新建一个&lt;code&gt;Gameobject&lt;/code&gt;套住发型和身体的模型，调整好材质颜色（这里脸和身体肤色不一样，脸部用了妆面）。然后使用插件把暖暖导出为&lt;code&gt;.obj&lt;/code&gt;和&lt;code&gt;.fbx&lt;/code&gt;格式。&lt;/p&gt;
&lt;h2 id="设计暖暖的衣服"&gt;设计暖暖的衣服
&lt;/h2&gt;&lt;p&gt;打开Marvelous软件，导入暖暖模型，建议采用&lt;code&gt;.obj&lt;/code&gt;导入，&lt;code&gt;.fbx&lt;/code&gt;导入会出现大小不匹配问题。导入&lt;code&gt;obj&lt;/code&gt;时注意选择单位为&lt;code&gt;米&lt;/code&gt;。之前我已经给暖暖画了一个基本的裙子，只是当时忘了录屏。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410201059.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410201059.png"&gt;&lt;/p&gt;
&lt;p&gt;不过不要紧，后半段我录下来了，操作基本都一样，画面片缝合。衣服做好后点击模拟做微调，然后把2D板片尽量放在一起便于导出UV（视频里导出的UV还是有点问题）。然后，去掉模特暖暖只要衣服。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410201518.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410201518.png"&gt;&lt;/p&gt;
&lt;p&gt;点击导出，导出为&lt;code&gt;fbx&lt;/code&gt;，可以选择连纹理一起导出。&lt;/p&gt;
&lt;h2 id="给暖暖穿衣服"&gt;给暖暖穿衣服
&lt;/h2&gt;&lt;p&gt;Marvelous就能导出 &lt;code&gt;.obj&lt;/code&gt; 和 &lt;code&gt;.fbx&lt;/code&gt; 的模型，可以再导入到3Dmax或者ZBrush中做微调和更细致的UV展开，也可以直接就导入到Unity3D中组合。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410201904.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410201904.png"&gt;&lt;/p&gt;
&lt;p&gt;在Unity3D中再给衣服建材质球，贴UV。&lt;/p&gt;
&lt;p&gt;&lt;img alt="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410202125.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/blog/2020PicGo/20200410202125.png"&gt;&lt;/p&gt;
&lt;h2 id="todo"&gt;TODO
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;下期尝试好好把UV弄一弄。&lt;/li&gt;
&lt;li&gt;视本人发量决定加骨骼动画，碰撞体绑定。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;最后的最后，我想知道柳总和他的团队的小哥哥小姐姐们掉了多少头发。&lt;/p&gt;</description></item><item><title>Unity3D导入真实地理数据</title><link>https://ruajingjing.top/post/unity3d%E5%AF%BC%E5%85%A5%E7%9C%9F%E5%AE%9E%E5%9C%B0%E7%90%86%E6%95%B0%E6%8D%AE/</link><pubDate>Tue, 25 Dec 2018 16:49:04 +0000</pubDate><guid>https://ruajingjing.top/post/unity3d%E5%AF%BC%E5%85%A5%E7%9C%9F%E5%AE%9E%E5%9C%B0%E7%90%86%E6%95%B0%E6%8D%AE/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Unity3D导入真实地理数据" /&gt;&lt;p&gt;之前一直在折腾如何在Unity3D 中导入真实地形，第一个想法是用3DMax等工具读取 .dem 文件，然后导出为 .fbx 文件然后在Unity 中导入。原本尝试使用 91位图助手下载和处理高程数据，也可以在 3DMax 中建成地形模型，但是在导入 Unity3D 中总是出现问题。&lt;/p&gt;
&lt;p&gt;后来找到这篇文章，发现 Unity 自带导入地形的功能，而且非常好用。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://unity3d.college/2017/07/17/importing-real-world-terrain-unity-free-terrain-party/" target="_blank" rel="noopener"
 &gt;Importing Real World Unity Terrain Heightmap for free with terrain.party&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;主要原理是用 Terrian 中的Heightmap 功能。废话不多，进入正式步骤。&lt;/p&gt;
&lt;p&gt;操作系统：Xubuntu 18.04&lt;/p&gt;
&lt;p&gt;Unity3D 版本： Linux 2018&lt;/p&gt;
&lt;h2 id="step1-下载数据"&gt;Step1 下载数据
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://terrain.party/" target="_blank" rel="noopener"
 &gt;https://terrain.party/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;登录该网站-&amp;gt;找到目的地-&amp;gt;选择边界范围-&amp;gt;下载。&lt;/p&gt;
&lt;p&gt;&lt;img alt="打开网站选取区域" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity1.png"&gt;&lt;/p&gt;
&lt;p&gt;注意:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;中的 8km 为方框边长，可调范围在 8~60 km，&lt;/li&gt;
&lt;li&gt;拖动方框选择要绘制地形的区域，&lt;/li&gt;
&lt;li&gt;点击导出 ( Export )&lt;/li&gt;
&lt;li&gt;在弹出的窗口中输入项目名称，我一般以地名和方框大小值命名。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="step2-处理数据"&gt;Step2 处理数据
&lt;/h2&gt;&lt;p&gt;解压数据后，用 GIMP 打开图片，在 Windows 上据说用 Photoshap 也可以。一般打开第二个图片(Merged)。&lt;/p&gt;
&lt;p&gt;&lt;img alt="用PS或者GIMP打开.png" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity2.png"&gt;&lt;/p&gt;
&lt;p&gt;使用导出功能导出为 data 文件。&lt;/p&gt;
&lt;p&gt;&lt;img alt="导出文件" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity3.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="转格式" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity4.png"&gt;&lt;/p&gt;
&lt;p&gt;注意文件名的后缀要自己手动写 .data&lt;/p&gt;
&lt;p&gt;&lt;img alt="raw或者data" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity6.png"&gt;&lt;/p&gt;
&lt;p&gt;使用默认导出设置即可。&lt;/p&gt;
&lt;p&gt;&lt;img alt="不用动什么，直接点导出" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity7.png"&gt;&lt;/p&gt;
&lt;p&gt;然后，进入存放 .data 文件的目录。好了，到了秀一下操作的时候了。Unity 中要的是 .raw 文件，而我们现在得到的却是 .data 文件，怎么办？&lt;strong&gt;重命名一下即可 &lt;/strong&gt;，是的，重命名。因为 .data 和 .raw 是一种类型的数据，只是名字不同。&lt;/p&gt;
&lt;p&gt;&lt;img alt="改文件名" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity9.png"&gt;&lt;/p&gt;
&lt;p&gt;把图上的 .data 改成 .raw 即可。&lt;/p&gt;
&lt;h2 id="step3-导入模型"&gt;Step3 导入模型
&lt;/h2&gt;&lt;p&gt;Unity中新建一个地皮(Terrian)&lt;/p&gt;
&lt;p&gt;&lt;img alt="新建地皮" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity8.png"&gt;&lt;/p&gt;
&lt;p&gt;点击“螺母”的按钮进入设置&lt;/p&gt;
&lt;p&gt;&lt;img alt="导入数据" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity10.png"&gt;&lt;/p&gt;
&lt;p&gt;把上面的 长宽高 从 500 500 600 改做与 .raw 数据一致的。我一开始在网站上下载的就是 8km 的范围，所以这里应该填写 8000，高度值要改做2000(虽然不知道为啥，但是600的模型有问题)，所以这里就是改做 8000 8000 2000&lt;/p&gt;
&lt;p&gt;&lt;img alt="注意高宽，实际上不建议大于500x500，运行缓慢" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity13.png"&gt;&lt;/p&gt;
&lt;p&gt;然后点击右下角的 【 Import Raw 】 ，选择刚刚导出的 .raw 文件。&lt;/p&gt;
&lt;p&gt;&lt;img alt="刚刚改后缀名的那个" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity12.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="注意对其，多试几次，不然会是一片刺丛" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity11.png"&gt;&lt;/p&gt;
&lt;p&gt;确保这里的 X Y Z 也是8000 8000 2000， 这里 Y 对应的是 Height ，其值为2000。1081对应的 Width 和 Height 不要改，是 raw 数据的。&lt;/p&gt;
&lt;p&gt;确认无误后点击 【Import】&lt;/p&gt;
&lt;p&gt;&lt;img alt="多次尝试终于放对高宽了" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2018-11/TerrianUnity/terrianubity14.png"&gt;&lt;/p&gt;
&lt;p&gt;欧了！ 地图太大可能导入需要几分钟的时间才能完全导入。&lt;/p&gt;
&lt;h2 id="杂谈"&gt;杂谈
&lt;/h2&gt;&lt;p&gt;其实一开始提供下载的网站不是很完美，精度太小，但好处是简约免费。其实只要有能把 灰度图 转成 .raw 数据 的工具即可。我记得 Matlab 或者 Python 这类万能的语言有图像处理的功能，如果不想下载 GIMP 或者 Photoshape 也可以尝试一下。&lt;/p&gt;
&lt;p&gt;地形区域建议选择正方形，因为在处理数据过程中，数据会经历多次翻转，长方形的话可能会在导入时长短边对不上导致地形变形（是变得本地人都认不出来的那种）。&lt;/p&gt;</description></item></channel></rss>