VRML十年

今天想起了VRML,搜了一下,竟然发现百度百科上盗了我的作品图.

这作品(http://1vr.cn/?p=87)是2007年的了,今年是2017年.整十年,过去了.

知乎上有篇今年的帖子,”VRML 与HTML5 比较?”(https://www.zhihu.com/question/21271874),里面这样说:

看在有人终于给我点了一个赞的面子上,我顺便更新一下答案。VRML和HTML5最大的区别是”定位”的区别: VRML就如同它的名字一样,就是虚拟现实技术使用的标记语言,目标就是实现VR效果。我自己的使用感受是:落后于时代的建模语言。由于现在三维软件标准已经几近成熟,这种已死的技术就如同过去的OSI网络模型和TCP/IP模型之间的战斗一样没有悬念,也没有任何人会为它惋惜。HTML5实际上是之前的HTML技术的延续,是一种平台,一种载体,某种程度上来说,就是网页的基石;而广泛而言的h5技术,实际上是一堆技术的合称,(对于把flash叫h5的,我就笑笑)其中很自然有实现VR的部分,但你要说这就是HTML的目的,自然是不可能的。VRML和HTML虽然都是标记语言,但其使用频率和目标已经决定了两者的命运完全不同。————————————他们只有一个区别:VRML已经死了,而HTML5则刚刚出生。任何技术都有生命周期,由弱而强,从盛转衰。而在计算机科学这里,更新更是迅速,有多少妄想改变世界的想法最后就只是静静躺在互联网的深处,等着最后一块记住它的硬盘消磁。我实在不敢想象,如若这是人类历史的发展的话,会有多少文明从此湮灭于世。保持技术的多样性总是好的,就和人类基因多样化,物种多样化一样。如果真的都用一种语言,一种环境,计算机科学就快到头了。但我不建议拿出VRML来举例。这种行为叫做鞭尸。

十年,VRML.再见!

Unity使用IL2CPP编译Android应用时NDK环境的配置

用Unity编译APP,PlayerSettings里面Scripting Backend可以选择Mono2x和IL2CPP,但如果是在编译Android项目,Unity不仅仅需要Android sdk环境,也需要NDK这个环境,如果没有NDK环境,在编译时会弹出下面这样的提示框:

Invalid NDK version
Unable to detect NDK version,please pick a different folder.

点击Download会使用浏览器下载DNK需要的文件,是一个android-ndk-r10e-darwin-x86_64.bin文件.下载完成后,打开终端,并cd到bin所在目录,再输入:

chmod a+x android-ndk-r10e-darwin-x86_64.bin

赋予bin执行权限,再输入:

./android-ndk-r10e-darwin-x86_64.bin

以让bin执行,也就是解压它,解压完成后这个bin文件就没用了,把解压后的文件夹复制到你想存放文件的目录,不如放在Android SDK目录中,之后再次编译Unity,弹出Invalid NDK version时点击OK按钮

Unity 资源束(Asset Bundle)可视化编辑构建工具

Unity中的内容动态更新一般都使用AssetBundle来实现,相对于Unity4.x的AssetBundle(简称AB)时代,Unity5.x对AB的做了很大改进,创建AB方便了很多,不过里面的文件结构或者冗余还是不太容易.

.

所以Unity官方又开发了一个小工具”Unity Asset Bundle Browser tool”,旨在改变现在AB的工作流,这个工具是编辑器扩展脚本的形式存在的

可以从Github上获取最新的代码:

https://github.com/Unity-Technologies/AssetBundles-Browser

将代码放置于项目的Editor目录下即可使用.注:当前仅支持Unity5.6及更新的版本上使用.

到菜单”Window->AssetBundle Browser”中执行这个工具.

AB中的资源关联,资源尺寸,资源内容,资源共用等信息一目了然.删除添加编辑都可以操作了,很简单易用.

Github页面中也有简要使用说明.

Unity与苹果macOS 10.13 (High Sierra)的问题

现阶段是不建议升级更新到 macOS 10.13 High Sierra的.
但是如果像我一样不清楚带来的问题升级到了10.13,那么需要对应的升级Unity编辑器来修正这个问题,具体现象是编辑器打开任何项目,在Project视图都是空的,什么都没有,Unity编辑器无法读取项目资源文件.
原由苹果对机器的固态硬盘做了分区格式做了改变,之前是HFS文件系统,现在改为了APFS,即Apple File System.导致老版本软件不兼容了,比如旧版本的迅雷(不评价它善恶).
升级后,要解决Unity使用问题,有两种办法:
方案一:更新Unity编辑器,当前Unity有下面一些版本可以正常使用:
– 5.5.4 patch 5 及更新版本
– 5.6.3 patch 4 及更新版本
– 2017.1.1 patch 3 及更新版本
– 2017.2.0 RC 1 及更新版本

可以从https://unity3d.com/unity/qa/patch-releases下载需要的版本,虽然是patch版,但其实和全新安装没什么区别,并不是很小体积的补丁包

更低的版本,如5.4.x就没有补丁版了,可以用第二种办法解决.

方案二:使用移动硬盘或者新建一块分区来放置项目,用Unity打开这个分区上的项目来使用,只要不是APFS类型的分区,都可以正常使用.

相关链接:https://forum.unity.com/threads/unity-and-macos-10-13-high-sierra.474527/

将Macbook的音频用同轴输出到七彩虹C4相关

七彩虹C4这款播放器买了几年了,utf8歌名乱码及不能遍历文件夹播歌等问题影响了些许在使用上的便捷度.但它”老气”低调的外型并不影响它的Biger.

买了一条USB转同轴的线,准备让电脑的音频通过USB到同轴再到C4中,让C4做外置声卡的作用解析播放,使用过程中遇到些小问题,写在这里,也许有人也会遇到呢.

连接方式很简单,USB端插在电脑USB接口上,另外一端同轴插到C4的同轴输入孔即可,买同轴线要注意,因为C4的插座设计有些问题,要买明确支持C4同轴插座的线才好,如下图箭头指示:

在C4的菜单中找到音频输入设置,选择”SPDIF IN”,如图:

在电脑的音频输出中选择USB输出,如下图:

这时候电脑的音效应该就会经由C4并且在C4的耳机中体现了.而电脑音量调节就没有作用了,调节音量需要去C4上调整.

比如我用VOX播放器,没有声音,那么需要调整VOX播放器的音频输出选项,方便的可以选择”Same as System”,这样系统设置选择的哪个输出,播放器也就以哪个输出为准了.

Safari网页上看Flash视频如果没有声音,那么需要在Flash上右键选择设置,同样的选择对应的音频输出后即可,Flash这点比较二,没有VOX那样与系统同步选项.

如果Safari上无论怎么设置都没有音频输出,那么要看一下是否打开了关闭插件节省电量选项,可以尝试关闭它,如图:

总体来说音质有所增强,当然,这个是比较玄学的事情啦.目前耳机用的森海塞尔的大馒头通过转接头插到的C4的6.5mm耳机孔.

Unity中飘逸的头发或飘带实现

在Unity开发中,有些角色我们要赋予TA更多的细节让衬托真实度,比如女孩的长发飘飘,或者丝带,旗帜,虽然我们可以用动画clip来呈现,也可以用Spring Joint和Configurable Joint来设置创建丝带,绳子之类,但是设置起来我觉得挺麻烦的.

找来找去,在一位日本的Unity开发者博客上找到了一组脚本,实现飘逸的长发或飘带还是挺好用的.

这是Webplayer案例:http://rocketjump.skr.jp/unity-spring-test/

这是测试案例,用了Unity二次元角色:
http://rocketjump.skr.jp/download/SpringTestScene.zip

这是只含必须的脚本包:http://rocketjump.skr.jp/download/SpringScript.zip.

具体用法可参考测试案例中,下面只简要说明可能会遇到的问题,首先要在飘起来的模型中让美术构建骨骼及蒙皮,如要动起来的这部分含有动画,那么可以在fbx导入设置中将这部分动画取消动画的导入,因为我们用脚本来处理,不使用动画.

在要参与飘动的每根骨头中创建一个空的子对象(empty gameobject),并将子对象移动到当前所属骨头的末端,之后再给参与运动的每根骨头挂上Spring Bone脚本,里面的Child指定刚才我们创建的子对象,Bone Axis来描述末端相对与骨骼坐标点的方向,如empty gameobject在骨骼坐标y轴负方向上,那么BoneAxis添”0,-1,0″,Radius只半径,这里用来生成碰撞体,仅支持球形碰撞体,Stiffness Force是硬度,数值大像钢筋,数字小像丝带,DragForce是力衰减,数值大,整个模型动起来约像丝带,数值小整个模型动起来像多节棍.具体可调整各值观察结果.
之后在我们这个模型的父级添加SpringManager脚本,并把所有添加了Spring Bone脚本对象都拖拽到SpringManager数组字段中.播放拖动模型起始骨骼就可以看到效果了.
如我们制作角色头发飘动效果,那么我们还希望头发与角色身体发生碰撞,避免头发穿透角色身体,这就要创建Gameobject并赋予SpringCollider脚本,可以看到绿色球形Gizmo,通过调整它的直径来改变碰撞球的范围,将它放置在想要阻挡头发穿透的地方,并将Spring Bone中指定需要产生碰撞的SpringCollider对象(勾选debug后播放可以看到黄色球型Gizmo).

大概就是这样了,还是要实践出真知.

参考文献:http://rocketjump.skr.jp/unity3d/109/

转载请注明来自1vr.cn By XK

使用AndroidStudio为Unity5.*搭建安卓开发环境

使用Time capsule恢复了系统备份后,发现还是存在一些问题的,比如QQ聊天记录文件错乱,然后又发现了Finder侧边栏有异常,收藏栏会莫名其妙的消失,去Finder偏好设置里勾选项目,仍旧会出现这个问题,似乎配置文件变成了只读.最烦恼的Safari上传文件时打开文件选择窗口时侧边也是没有收藏栏的,瞒麻烦的.
后尝试删除相关配置文件重启后解决了问题,方法如下:
进入~/Library/Preferences目录,找到

com.apple.finder.plist
com.apple.sidebarlists.plist

这两个文件删除并重启系统即可修正这个问题,真是奇怪.
突然又想找Mac上类似之前在Windows上用的很爽的TC(total commander)软件,终于找到一个靠谱的,叫”Commander One”,推荐Mac用户试试这分栏式文件管理器,当然要自定义快捷键才用起来舒服,默认的键设几乎没法用.

之前Unity开发Android的环境都是手工搭建的,装eclipse又装sdk的,发布apk也没有问题就一直没更新环境,前几天才看到早就有androidstudio这么一套工具,闲着没事更新一下吧,当时用的Unity版本为5.5.0,结果怎么都提示找不到sdk:

折腾了许久才找到原因,是因为sdk tools的版本过新,而Unity5.5.0中是不支持v26.0.2版的,只能把sdk tools换成v25版本才可以,我最后用的是25.2.5这个版本.可以从网上单独下载这个版本,然后替换android sdk目录下的tool目录文件.

最后别忘记检查Unity的偏好设置中sdk路径指定是否正确,要指定到sdk的根目录,而不是sdk下面的子目录,也就是说不是tool等目录.

再Build就不会有问题了.

最近在看机械键盘,之前一直觉得机械键盘只为自己爽不顾他人感受,可竟然有点想反正大家都吵了,一起吧,看谁狠的意思.吐槽下新款苹果本子键盘和苹果二代蓝牙键盘,键程短的可以,为了追求薄而忽略了很多本应保留的东西,合适吗?!还好这两个设备目前我都没有买.

Mac中的bogon名字修改

前些天本子送到苹果天才吧修理,不知道被弄了什么法术,导致系统崩溃,回来后用时间胶囊恢复的系统数据,用着用着发现终端里的计算机名是bogon了,这是什么鬼?

于是网上搜了搜,大概是终端会向DNS服务器查询本地IP的什么解析,如果没查到就会显示计算机名,而DNS错误将保留地址反向的NS查询结果返回了bogon,而bogon本该用来标定虚假的IP地址,而非保留IP地址.所以计算机名就成了bogon了.

如果计算机名是bogon,那么只要在系统偏好设置里面打开找到”共享”,在此窗口的上方可以修改”电脑名称”.

如果是终端里显示bogon,像下面这样:

bogon:~ username$

可以直接用下面这个命令修改,将newhostname替换成想改的名字即可:

scutil --set HostName newhostname

执行后建议重启系统后再使用.