萌梦社区发展纲领


  • 网站研运

    萌梦社区作为一个技术路线的社区,在发展的过程中要找到适合自己的道路,总结以前社区运营的经验以及避免社区失败的案例,朝着一条稳健向上的道路发展。目前我们要形成一套纲领性的文件,以后要按照这个纲领前进,才能顺利地得到发展。

    • 1、我们是靠社群起家的,和大多数的社群一样,我们正在逐渐寻找自己可行的发展道路。我们认为,只有将社群落地,成为一个线下企业或者社会团体,才能够更加凝聚我们的心,才能得到更大的发展。

    • 2、我们这个社群对内要对我们成员提供优质的服务。这些服务包括目标指引、项目指引以及技术指引。我们认为目标指引是所有成员都必须接受的培训内容,因为只有将成员们的目标统一起来,才有利于进一步开展有意义的活动;项目指引是为制作我们的原创项目而提供的指引,包含了整个项目开发的全过程;技术指引指的是我们通过技术手段以及其他辅导手段,成员提供持续可依赖的技术辅导。

    • 3、对外,我们要和其它社群形成良好的关系。在Qt技术方向,我们要争取获得Qt中国的官方授权,得到他们的背书,这样我们发展会更加开阔一些;在网站方向,因为我们使用的是NodeBB作为网站建站的框架,我们也要想办法联合其它NodeBB的开发者,共同发展我们的论坛。为此,我们需要一些杰出的人才,来完成外联的工作。

    • 4、作为整个社群的核心,我们必须拥有一个能够指引方向,并且能够掌控大局的关键人物,他能够说服新成员加入这个集体,也能够在危机时刻承担领导责任,更能够深入一线,解决成员所遇到的难题。他在团队中扮演的是一个接口的角色,对内处理内部矛盾,对外建立良好关系。在整个社群内找到符合条件的核心角色后,将会采取投票的形式来任命之。

    • 5、作为社群,最终要有自己的核心竞争力。我们认为一个强大的品牌是我们制胜的武器。但我们必须意识到,打造一个品牌非一朝一夕所能实现,我们必须思维领先,脚踏实地,步步为营地将品牌的建设落实到位。

    我们希望,在不久的将来,我们即将迎来一次跨越式的发展,我们的规模、实力以及影响力得到进一步的提升,我们即将在这个舞台上成为崭露头角。


  • 网站研运

    @jcy 上文是拟定的初步草案。还需要大家一道努力一起修改完善才行。



  • @jcy

    做社群是要有基础的,现在的基础其实是基于 上海 Qt 开发群。而先行社群的载体是 qtdream,没有容量上限,但是 Q 群却有上限,所以要积极引导 Q 群的用户到 qtdream 发言。


  • 网站研运

    @qyvlik 嗯,了解了,和我的想法一致。对了,你们觉得我们发展的高级形态是什么样的?有现成的案例吗?



  • 我觉得是有必要引导用户到QtDream来,这里问题都能保留,有完整的讨论记录。这都是非常明显的优势。



  • @jcy 未来完整的形态其实很难说,不过建议3点:

    1. 论坛主体,首页不要太细化,比如分二次元入口Qt秘境,毕竟现在首页的二次元比重比较大,很容易受先入为主这种思想导致部分真实的技术人员流失(毕竟不是所有技术人员都喜欢二次元)。简单明了是王道。
    2. QtDream我个人喜欢的最大点是技术问答比较及时,回答率也比较高,但是有2个功能不是很好用,1是这个编辑器,2是技术问答好像没有历史搜索功能或同类联想功能?(还是我没找到?)
    3. 还有个点非常好,集合了个人博客和主要的几个项目一直在做,极大的提高的大家伙的积极性和参与度,但是有一点少了,技术块缺少入门或者小项目实操的部分文档及关联内容吧,其实个人感觉这部分反而是最吸引新人和保留人员的一个点

  • 网站研运

    我经过讨论,可能要改一改这些东西。诚然,这个是发展道路的问题,毕竟不是所有Qt开发者都喜欢二次元,强扭的瓜不甜。二次元是我喜欢的一个细分领域,可是这个细分领域接下来的形态如何?怎样带来价值?我也一直在探索当中。

    我们可以翻一翻技术宅社区的发展道路。一开始也是打算技术为主,后面技术成分不够,导致最后变成了对ACGN内容运营的社区了。虽然社区会员已经达到了百万级别,但是在商业化的过程中比较缓慢。

    我比较赞同的是选准一个细分领域,在这个细分领域做到第一,然后横向扩展,首先可以瞄准上下游的链条,然后逐渐扩展到自己不熟悉的领域。可是我也在探索,我瞄准的快速三维动画编辑以及实时交互这个领域是不是具有商业价值的,目前我能看到的是日本一个公司用类似的软件做CM(商业广告),究竟价值怎么样还有待观察。

    我赞同将Qt和二次元分离的做法。目前首页二次元化只是试运行阶段。我们以后会将Qt的内容多用其它方式进行呈现,给大家提供一个类似KDAB网站的体验,甚至更好。



  • @jcy 期待~~~


  • 网站研运

    经过为期八日的全国之旅,我基本对开发、社区以及产品的发展有了新的认识,我们觉得,现阶段可能将动漫这块儿和开发这块儿分开才有可能更加顺利地得到发展。如果动漫独大的话,我们可能会成为技术宅社区,如果技术独大的话,难免会走Qt其它社区的老路,所以不管怎么样,都是暂时的,我们希望将更多好的产品推出,让更多支持我们的人,得到我们优质的服务。


Log in to reply
 

最近的回复

  • 在USD安装好之后,我们就要研究如何编写USDView的插件了,因为我们的二次开发功能都是在USD上做的,所以我们要理解USDView的各种机制才能够达到我们研发的目标。这里介绍一下如何编写USDView的插件。

    USDView是USD项目中比较重量级的应用了,基于Qt(PySide,PySide2)和PyOpenGL的应用。底层渲染依然是Hydra。这是一款渲染影视的渲染框架。后端可以接入OpenGL以及英特尔提出的Embree。它在设计的时候也预留了插件的功能。它在官网有详细的教程解释。

    插件本身

    这里我在Linux下演示如何载入USDView的插件。我写好了一个USDView的插件,名叫TutorialPlugin。它由三个插件组成的:

    tutorialPlugin ├── __init__.py ├── plugInfo.json └── printer.py

    写法和官网的一致。这里我贴出来吧。
    init.py

    from pxr import Tf from pxr.Usdviewq.plugin import PluginContainer import printer class TutorialPluginContainer(PluginContainer): def registerPlugins(self, plugRegistry, usdviewApi): self._printMessage = plugRegistry.registerCommandPlugin( "TutorialPluginContainer.printMessage", "Print Message", printer.printMessage ) def configureView(self, plugRegistry, plugUIBuilder): tutMenu = plugUIBuilder.findOrCreateMenu("Tutorial") tutMenu.addItem(self._printMessage) Tf.Type.Define(TutorialPluginContainer)

    painter.py

    print("Imported printer!") def printMessage(usdviewApi): print("Hello, World!")

    plugInfo.py文件在Windows测试中,使用pluginfo.py也能被认识。果然Linux是大小写敏感的,Windows并不敏感。

    { "Plugins": [ { "Type": "python", "Name": "tutorialPlugin", "Info": { "Types": { "tutorialPlugin.TutorialPluginContainer": { "bases": ["pxr.Usdviewq.plugin.PluginContainer"], "displayName": "Usdview Tutorial Plugin" } } } } ] }

    最后就是自己编写USDView调用的脚本了。因为是Linux,所以脚本是Shell脚本。内容大概是这样的:

    #!/bin/sh export LD_LIBRARY_PATH=/usr/local/USD/lib64:$LD_LIBRARY_PATH export PYTHONPATH=$PYTHONPATH:/usr/local/USD/lib/python # 这里非常重要,目的是设置usdView的环境变量,让usdView能够顺利地载入插件 currentDir=$(cd `dirname $0`; pwd) export PXR_PLUGINPATH_NAME=$currentDir/tutorialPlugin /usr/local/USD/bin/usdview $currentDir/model/7_29_1.usda

    比较重要的是设置PXR_PLUGINPATH_NAME变量。为的是让USDView顺利地找到插件位置。大家也可以设置TF_DEBUG为PLUG_SEARCH_INFO来检查当PXR_PLUGINPATH_NAME变量设置了以后,究竟有哪些插件得到了载入。
    给一个效果图:
    21d97c31-58ef-41ed-92c3-c27aff391dcc-image.png ![0_1573535993045_在Linux运行带有插件的USDView.gif](正在上传 93%)

    注意其中Tutorial菜单,这就是我们载入的插件。
    如果你对我分享的资产、插件或者是脚本感兴趣,可以加入我创建的小组,在文件分享里找到它。
    上海USD研究小组

    read more
  • 就在不久前我分享了USD在Windows上的构建方法,其实我也一直没有放弃在开发领域最擅长的Linux中构建USD。不过,在Linux中要成功地构建USD,比Windows的要难不少。尤其是各种麻烦的依赖库,仍然要解决才行。之前一直在CentOS 7构建,没有成功,而且CentOS构建的话,相关的资料更少,坑更多,而Deepin是国产的Linux桌面系统,友好一些,这样可以少一些困难。目前成功地在Deepin Linux上顺利地编译成功了。

    那么,咱们开始在Linux构建USD吧。

    测试并且安装Python

    有些Linux发行版,默认安装了Python,有的则没。如果你安装了Python,可以测试一下,命令是:

    python --version

    如果报错,那么使用apt安装吧。

    sudo apt install python

    为了安装PyOpenGL等库,还是推荐安装pip。有关安装pip的资料还是挺多的,pip类似npm,是一个包管理器,非常方便,推荐安装。这里有一个获取pip的脚本。我发出来。获取pip的命令是:

    python -m get-pip.py

    拿到USD的代码

    毕竟是在github中获取的USD代码,那么最好安装git,并且设置github的账户以及公钥。然后熟练利用git命令进行如下的操作:

    git clone https://github.com/PixarAnimationStudios/USD

    获取USD依赖的库

    由于依然在github上获取相关的库,获取库的速度大家都知道比较慢,于是我将库上传到我创建的USD小组里了,大家感兴趣的话,可以加入这个QQ群(小组),获取相关的库,然后解压之。
    上海USD小组

    获取USD其它的依赖(包括cmake)

    由于Linux开源的特性,很多底层的库都要到包管理器中寻找,如果编译出错了。记得勤用apt来搜索相关的库。命令是:

    apt search cmake
    pip install pyside2

    值得注意的是,USD在19.11的时候,明确说不支持cmake2了,看来大家要在apt中安装cmake3了。

    编译

    USD在Linux的编译和Windows的差不多,差别在于一个是用Shell脚本,另外一个是用bat脚本。这里我将Shell脚本贴出来给大家参考:

    #!/bin/sh # 最后构建USD项目 baseDir=${baseDir:=$(cd `dirname $0`; pwd)} echo $baseDir pushd $baseDir sudo python $baseDir/USD/build_scripts/build_usd.py -j 4 -v --python --build-args=USD,"-DPYSIDE_USE_PYSIDE2=TRUE -DPYSIDE_BIN_DIR=/usr/local/lib/python2.7/dist-packages/PySide2 -DBOOST_LIBRARYDIR=" /usr/local/USD popd 编译可能遇到的问题 权限问题。这个是最常见的了。Windows的权限问题没有那么严重,而Linux是权限everywhere。于是安装USD的时候,它推荐的位置是/usr/local/USD,这个地方是要权限的。所以记得用sudo,没有设置密码的赶紧用passwd root设置密码了。 遇到找不到编译器的问题。很简单,没有安装编译器呗。Linux默认编译器是g++,所以一定要执行

    sudo apt install g++

    这样才能够解决找不到编译器的问题。同样的,如果想要以后对USD进行调试,那么gdb也是必不可少的,推荐一同安装。

    编译完成

    如果你到了这一步,那么非常恭喜,你已经克服了超多的难关,到达了胜利的彼岸。但是不是要测试一下是否成功地运行了USD呢?我们还是要运行一下USDView来测试一下的嘛。于是我们还是要写一段shell脚本来测试USDView的运行情况:

    #!/bin/sh export LD_LIBRARY_PATH=/usr/local/USD/lib64:$LD_LIBRARY_PATH export PYTHONPATH=$PYTHONPATH:/usr/local/USD/lib/python /usr/local/USD/bin/usdview /media/jiangyimin/Data/models/UsdSkelExamples/HumanFemale/HumanFemale.walk.usd

    由于要寻找库的路径,因此记得及时设置LD_LIBRARY_PATH环境变量。如果一切顺利的话,那么会出现这样的效果:Linux运行USDView

    read more
  • 记住了哦,USD不是咱们所说的美元哦,是迪士尼皮克斯工作室推出的一款动画全流程的工具,简单地说,是用来串流程的,USD的使用借鉴了脚本编程的一些思想,让动画的资产变得可配置,也变得可维护。让同时其提出的几个工具,使得它变成一个较为完整的工具链。
    USD的官方网站(开源)在这里。

    https://openusd.org

    接下来我将告诉大家如何在Windows下构建USD。

    安装Python

    首先呢,是安装USD的依赖项。USD的依赖项挺多,最重要的是Python,因为USD的构建脚本就是用Python写的。所以去Python官网下载Python吧,目前测试成功的是Python2.7。当然你也可以安装Python 3.5,只是我没有测试过,不清楚是否可用。Python的下载地址是:

    https://www.python.org/downloads

    一般来说,安装好了Python,它会给你设置环境变量,或者有一些教程让你们设定环境变量,不过呢,这里我不建议设定环境变量,这样让我们的所有软件运行环境都污染了(可能没有什么事),之后我会写一个脚本来教大家如何书写批处理来让简化操作,真正做到“即用即走”。

    下载Visual Studio 2017

    这不用强调了吧。目前VS2017是必备的软件了,而且有免费社区版,再也不用破解了,赶紧下载一个。安装在合适的位置就好了。

    安装Maya 2018

    一般来说,Maya每年都有发布一个版本,但是2018的格外稳定,推荐安装。为什么要安装Maya呢?因为Maya是一款几乎全能的DCC,可以导出很多模型到USD中,所以USD顺便构建了Maya的插件(这个插件名字叫usdMaya,不过核心代码转到了Autodesk里了,详见https://github.com/Autodesk/maya-usd,此插件除了PXR的USD,还有AL的USD),我也将Maya 2018放在了我们讨论小组群中,大家可以下载。
    USD研究小组.jpg
    我将Maya 2018安装到D:\Develop\Autodesk\Maya2018中。

    安装USD的其余依赖项

    由于USD的python脚本会使用curl或者是powershell的下载功能进行下载,但是由于很多依赖项是从github下载的,下载速度实在是太慢了,所以我将其余的依赖项打包好了,放在USD_dependencies文件夹中,供需要的朋友下载。USD的依赖项已经上传到我们讨论小组群群里了,大家可以下载。
    USD研究小组.jpg

    编写构建USD的脚本

    我的USD安装的位置是D:\Develop\USD,打算安装的位置是D:\Develop\USD_build_19_11,根据这两个路径开始编写构建USD的脚本:

    :: 构建USD的脚本 :: 设置编译器的很多环境变量 set Path=D:\Develop\Python27;^ D:\Develop\Python27\Scripts;^ D:\Develop\NASM;^ D:\Develop\Autodesk\Maya2018\bin;^ D:\Develop\cmake\bin;^ %Path% set PYTHONPATH=%PYTHONPATH%;D:\Develop\Autodesk\Maya2018\Python\Lib\site-packages;D:\Develop\Autodesk\Maya2018\Python\Lib\site-packages :: 复制pyside2-uic到pyside-uic.exe 中,使其造成能够找到pyside2-uic.exe的假象 copy D:\Develop\Autodesk\Maya2018\bin\pyside2-uic D:\Develop\Autodesk\Maya2018\bin\pyside2-uic.exe :: 使用pip安装PyOpenGL pip install PyOpenGL :: 复制本地build_usd_local.bat 到 目标的路径上 copy /Y %cd%\build_usd_local.py D:\Develop\USD\build_scripts call D:\Develop\VS2017\VC\Auxiliary\Build\vcvars64.bat :: 最后构建USD项目 python D:\Develop\USD\build_scripts\build_usd_local.py ^ -j4 ^ --build-args "USD,-DPYSIDE_USE_PYSIDE2=TRUE -DPYSIDE_BIN_DIR=D:\Develop\Autodesk\Maya2018\bin" ^ --maya --maya-location "D:\Develop\Autodesk\Maya2018\bin" ^ --materialx ^ D:\Develop\USD_build_19_11 :: 最后删除build_usd_local文件 del D:\Develop\USD\build_scripts\build_usd_local.py pause

    大家成功了吗?肯定有遇到很多问题,包括我遇到的一直卡住的Boost编译问题。大家遇到什么编译问题,可以在此留言,我会尽可能回答大家问题。

    成功编译USD后,可以编写插件来试试USDView,大家可以试试看吧,不过仍然要设置环境变量。USDView运行的脚本如下:

    set Path=^ D:\Develop\Python27;^ D:\Develop\USD_Build\lib;^ D:\Develop\USD_Build\bin;^ D:\Develop\USD_Build\third_party\maya\lib;^ D:\Develop\Autodesk\Maya2018\bin;^ %Path% set MAYA_PLUG_IN_PATH=%MAYA_PLUG_IN_PATH%;^ D:\Develop\USD_Build\third_party\maya\plugin set PYTHONPATH=%PYTHONPATH%;^ D:\Develop\USD_Build\lib\python;^ D:\Develop\Autodesk\Maya2018\Python\Lib\site-packages set MAYA_SCRIPT_PATH=%MAYA_SCRIPT_PATH%;^ D:\Develop\USD_Build\third_party\maya\lib\usd\usdMaya\resources;^ D:\Develop\USD_Build\third_party\maya\plugin\pxrUsdPreviewSurface\resources set XBMLANGPATH=%XBMLANGPATH%;^ D:\Develop\USD_Build\third_party\maya\lib\usd\usdMaya\resources @python "D:\Develop\USD_Build\bin\usdview" %cd%\7_29_1.usda

    USDView运行的截图是这样的:
    USDView运行效果

    看到最终结果,还是很有成就感的。

    read more
  • @天幸健 要么程序一启动就camera.start(),然后再camera.stop(),接着需要的时候再camera.start()。

    read more

关注我们

微博
QQ群